资源描述
题 目: LED点阵书写显示屏
__________________________________________________________
专 业:
班 级:
学 号:
姓 名:
指导老师: 郑 思 凡
答辩日期:二〇〇九年三月二日
题目: LED点阵书写显示屏
——硬件电路部分
同组人及分工:
摘要:
本设计主要是制作一个基于32×32点阵LED模块的书写显示屏,其系统结构如图1所示。在控制器的管理下,LED点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下;当光笔触及LED点阵模块表面时,先由光笔检测触及位置处LED点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的LED是否点亮至人眼可见的显示状态(如图1中光笔接触处的深色LED点已被点亮),从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。
图1 LED点阵书写显示屏系统结构示意图
关键词(主题词): LED点阵 书写显示屏 扫描 光笔 软硬件设计方案 单片机 控制器 擦除 显示功能 点阵模块
一、设计目的
(1)在“点亮”功能下,当光笔接触屏上某点LED时,能即时点亮该点LED,并在控制器上同步显示该点LED的行列坐标值(左上角定为行列坐标原点)。
(2)在“划亮”功能下,当光笔在屏上快速划过时,能同步点亮划过的各点LED,其速度要求2s内能划过并点亮40点LED。
(3)在“反显”功能下,能对屏上显示的信息实现反相显示(即:字体笔画处不亮,无笔画处高亮)。
(4)在“整屏擦除”功能下,能实现对屏上所显示信息的整屏擦除。
(5)在“笔画擦除”功能下,能用光笔擦除屏上所显汉字的笔画。
(6)在“连写多字”功能下,能结合自选的擦除方式,在30s内在屏上以“划亮”方式逐个写出四个汉字(总笔画数不大于30)且存入机内,写完后再将所存四字在屏上逐个轮流显示。
(7)在“对象拖移”功能下,能用光笔将选定显示内容在屏上进行拖移。先用光笔以“划亮”方式在屏上圈定欲拖移显示对象,再用光笔将该对象拖移到屏上另一位置。
(8)当环境光强改变时,能自动连续调节屏上显示亮度。
(9)当光笔连续未接触屏面的时间超过1~5min时(此时间可由控制器设定),能自动关闭屏上显示,并使整个系统进入休眠状态,此时系统工作电流应不大于5mA。
二、 课题实现方案:
2.1硬件实现总体框图
主控制器
单片机
AT89S52
液晶显示
电路模块
光笔信号输入电路
按键输入
点阵显示
电路
扩展芯片
驱动电路
系统框图
2.1.1 主控制器
单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 。
2.1.2 显示电路
点阵显示电路基于16个共阳的点阵LED模块构成的32*32的电子点阵显示屏及其驱动电路组成的,用来显示光笔的轨迹。液晶显示电路是由12864的液晶模块及其驱动电路组成的,用来显示坐标和菜单的功能。
2.1.3温度传感器
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:
² 独特的单线接口仅需要一个端口引脚进行通信;
² 多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
² 无须外部器件;
² 可通过数据线供电,电压范围为3.0~5.5V;
² 零待机功耗;
² 温度以9或12位数字;
² 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
² 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
一、 主要电路模块的实现方案比较及选择
3.1 单片机最小应用系统
单片机最小系统
3.1.1单片机本身就是一个最小应用系统,由于晶振,开关等器件无法集成到芯片内部,这些器件又是单片机工作所必须的器件,因此单片机与晶振电路及由开关,电阻,电容等构成复位电路就是单片机的最小应用系统。
3.1.2加热控制
加热控制部分采用开关控制有效功率,如图所示:
加热控制原理图
该部分电路主要有两个作用:弱电(HT46R24系统)和强电 (Ac220v)的隔离;对强电的控制。图中Moc3061是带过零检测的光电耦合器,Kl是功率双向可控硅BTA12,RL是加热丝,J1为单片机控制口,J2接AC220V。当J1为“1”时,Moc3061工作,其过零电路使内部的双向可控硅在过零后马上导通,从而使功率双向可控硅Kl导通,此时电热丝对水加热;当J1为“0”时,MOC3061不工作, 从而使功率双向可控硅KI截止,电热丝停止对水加热。
BTA12的主要参数如下:
通态电流IT(RMS)=12A
浪涌电流ITSM=120A
正向耐压VDRM>600V
反向耐压VRRM>600V
触发电流IGT(Ⅰ/Ⅱ/Ⅲ/Ⅳ)<25/25/25/50mA(C),50/50/50/100mA(B)
通态压降VTM<1.55V(17A)
PCB图如图所示:
图6 加热控制PCB图
3.2 数字温度传感器DS18B20应用
3.2.1数字温度传感器DS18B20简介
数字温度传感器DS18B20 是支持“一线总线”接口的数字温度传感器。一总线独特且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20 的测量温度范围为-55℃~+125℃,现场温度直接与“一线总线”的数字方式传输,明显提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如环境控制,设备或过程控制,测温类消费电子产品等,与前一代产品不同,新的产品支持3-5.5V的电压范围,使系统设计更加灵活,方便,而且新一代产品更便宜,体积更小,DS18b20可由程序设定9-12位的分辨率,精度为±0.5℃,可选更小的封装方式,更宽的电压适应范围。分辨率设定及用户设定的报警温度存储在内部EEPROM中,掉电后依然保存,ds18b20的性能是新一代产品中最好的,性价比也非常出色。
DS18B20的引脚图及测温实验原理图(图3)
3.2.2. DSl820工作过程及时序
初始化 RoM 操作命令存储器操作命令处理数据
1初始化
单总线上的所有处理均从初始化开始
2 ROM 操作命令
总线主机检测到 DSl820 的存在 便可以发出 ROM 操作命令之一 这些命令如
指令 代码
Read ROM(读 ROM) [33H]
Match ROM(匹配 ROM) [55H]
Skip ROM(跳过 ROM] [CCH]
Search ROM(搜索 ROM) [F0H]
Alarm search(告警搜索) [ECH]
3 存储器操作命令
指令 代码
Write Scratchpad(写暂存存储器) [4EH]
Read Scratchpad(读暂存存储器) [BEH]
Copy Scratchpad(复制暂存存储器) [48H]
Convert Temperature(温度变换) [44H]
Recall EPROM(重新调出) [B8H]
Read Power supply(读电源) [B4H]
4 时序
(1)初始化时序
初始化时序(图4)
主机总线 to 时刻发送一复位脉冲(最短为 480us 的低电平信号) 接着,在 tl 时刻释放总线并进入接收状态DSl820 在检测到总线的上升沿之后,等待 15-60us 接着DS1820在t2时刻发出存在脉冲(低电平持续 60-240 us)。
(2)写时间隙
主机使用时间隙(times lots)来读写 DSl8B20 的数据位和写命令字的位
写“1”和写“0”的波形
写‘0’和写‘1’时序(图5)
(3)读时间隙
图(6)主机总线to时刻从高拉至低电平时总线只须保持低电平l 7us 之后在 t1 时刻将总线拉高产生读时间隙,在t1时刻后 t 2 时刻前有效ts距 to为15us 也就是说 ts时刻前,主机必须完成读位并在 t o 后的60us ~120 us内释放总线 。
读时序(图6)
读位子程序(读得的位到 C 中)
(5)温度的字节转化
温度的字节转(图7)
DSl8B20 中还有用于贮存测得的温度值的两个8位存贮器RAM编号为0 号和1号。 1 号存贮器存放温度值的符号 ,如果温度为负( ℃),则 1 号存贮器 8 位全为1 ,否则全为 0 。0 号存贮器用于存放温度值的补码, MSB(最低位)的 1 表示 0.5 将存贮器中的二进制数,求补再转换成十进制数并除以 2 就得到被测温度值(-550℃ ~ +125℃ )。
3.2.3四段共阳数码管的内部结构及工作原理
(1)4段共阳数码管
4段共阳数码管内部结构图(图8)
四段共阳数码管6,8,9,12脚为公共端接高电平,3,5,10,1,2,4,7,11为段选码引脚,低电平有效。
(2)DS18B20的使用流程图
DS18B20的使用流程是上电后先初始化检测DS18B20是否存在,如果否就返回继续检测。如果检测到则运行内部读写温度命令,并将DQ线置位,送温度数据到单片机。
DS18B20的使用流程图(图9)
二、 系统电路图
系统仿真图(图10)
系统整体硬件电路包括,传感器数据采集电路,数码管显示电路,发光二极管模拟加热电路,单片机主板电路等
三、 系统的软件设计
5.1程序流程图
开始
初始化
获取键值?
按键判断设定温度模块
输入温度处理模块
LED亮表示模拟加热
Y
开始控制?
判断高于实际温度?
Y
N
调用LED显示模块显示设定值
终止
N
通过单片机最小系统AT89S51来整体控制,由数字温度传感器DS18B20来采集数据送入单片机通过单片机的综合处理,采用4段共阳数码管来显示。当实际水温低于预设水温是P3.6口置“1”使发光二极管点亮表示通电加热。当实际水温高于预设水温是二极管灭表示断电不加热。调节预设水温按键可以预设水温,是水温保持在人们预想的范围内。按健复位电路是手动复 位,使用比较方便,在程序运行时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。
5.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,并将实际温度和预设温度作比较,并控制是否通电加热。
5.2温度采集子程序
5.2.1 ds18b20初始化子程序
PUSH B ;保存 B 寄存器
PUSH A ;保存 A寄存器
MOV A,#4 ;设置循环次数
CLR P1.0 ;发出复位脉冲
MOV B,#250 ;计数 250 次
DJNZ B,$ ;保持低电平 500us
SETB Pl.0 ;释放总线
MOV B,#6 ;设置时间常数
CLR C ;清存在信号标志
WAITL: JB Pl.0,WH ;若总线释放,跳出循环
DJNZ B,WAITL ;总线低 等待
DJNZ ACC,WAITL;释放总线等待一段时间
SJMP SHORT
WH: MOV B,#111
WH1: ORL C,P1.0
DJNZ B,WH1 ;存在时间等待
SHORT: POP A
POP B
RET
5.2.2写温度子程序
WRBIT:
PUSH B ;保存 B
MOV B,#28 ;设置时间常数
CLR P1.0 ;写开始
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
N0P ;1us
MOVPl.0,C ;C 内容到总线
WDLT: DJNZ B,WDLT;等待 56Us
POP B
SETB Pl.0 ;释放总线
RET ;返回
PUSH B :保存 B
MOV B #8H ;设置写位个数
WLOP: RRC A ;把写的位放到 C
ACALL WRBIT ;调写 1 位子程序
DJNZ B WLOP ;8 位全写完?
POP B
RET
5.3.3读温度子程序
RDBIT:
PUSH B ;保存 B
PUSH A ;保存 A
MOV B,#23 ;设置时间常数
CLR P1.0 ;读开始 图5的 t0 时刻
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
SETB Pl.0 ;释放总线
MOV A,P1 ;P1 口读到 A
MOV C,EOH ;P1.0 内容 C
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
RDDLT: DJNZ B,RDDLT ;等待 46us
SETB P1.0
POP A
POP B
RET
读字节子程序(读到内容放到 A中)
RDBYTE:
PUSH B ;保存 B
RLOP MOV B,#8H ;设置读位数
ACALL RDBIT ;调读 1 位子程序
RRC A ;把读到位在 C 中并依次送给 A
DJNZ B,RLOP ;8 位读完?
POP B ;恢复 B
RET
四、 数字PID控制的基本原理
(1)、PID温度控制子程序
比例
积分
微分
被控对象
+
+
+
+
—
r(t)
e(t)
u(t)
c(t)
PID算法原理框图
PID算法的输出形式为一PWM波形,使电炉在一周期内开通的时间可调,使水温稳定在设定值。P1D算法的表达式为:
其中,k表示第k次采样,r(k)为设定温度,c(k)为实际水温,M(k)为电炉功率控制量,误差为e(k)=r(k)一c(k)。然而普通PID算法中引入积分环节的目的是消除静态误差,提高控制精度,但在过程的启动,结束和大幅度的增减时,短时间系统输出会有很大的偏差,会造成PID运算的积分积累,引起系统较大的超调和震荡,温度对象变化比较缓慢且带有纯滞后环节,如果采用单纯PID控制,当由较大扰动或大幅改变定值时,会产生较大的偏差,因此,本系统在PID环节的设计上采用可根据测量值与设定值偏差的变化,设置不同的积分系数项。
实验结果和随机误差分析
1、 测试范围:40℃~90℃
2、 测试方法:从40℃开始测,每隔10℃测一组数据,数据通过串口发送到计算机上(1s发送3.5个数据),用matlab进行数据处理。
3、 ,其中为起始温度。
4、 ,其中N表示第N个数时,系统进稳态。
5、 三个指标(超调量、调节时间、稳态误差)的测量数据如表2:
6、 随机误差分析:
① 误差来源:传感器的精度影响;环境温度的影响;其它元器件的精度。
② 误差计算:系统的误差主要取决于传感器的精度,本系统所选的传感器精度
为±0.09℃,所以不确定度为
起始温度℃
设定
温度℃
指标
第n次测量
平均值
1
2
3
4
5
40
50
(℅)
2.1
1.8
2.0
1.7
1.8
1.9
(min)
5.6
5.2
5.4
5.0
5.3
5.3
(℃)
0.08
0.07
0.08
0.06
0.07
0.07
50
60
(℅)
2.5
2.3
2.6
2.6
2.5
2.5
(min)
6.1
6.0
6.3
6.2
6.1
6.1
(℃)
0.07
0.05
0.06
0.05
0.04
0.06
60
70
(℅)
3.4
3.2
3.5
3.4
3.3
3.4
(min)
6.2
6.3
6.2
6.1
6.2
6.2
(℃)
0.05
0.04
0.04
0.04
0.03
0.04
70
80
(℅)
3.8
3.5
3.7
3.9
3.6
3.7
(min)
6.5
6.5
6.6
6.8
6.5
6.6
(℃)
0.05
0.06
0.06
0.07
0.06
0.06
80
90
(℅)
3.5
3.5
3.6
3.5
3.4
3.5
(min)
6.4
6.3
6.4
6.5
6.5
6.4
(℃)
0.07
0.07
0.06
0.08
0.07
0.07
1、 当温度设定值为50时,实际测试温度变化曲线如下:
附图1 40 ℃~50 ℃环境温变化曲线
串口发送数据时序
五、 结论
1.测量水温,精度为1℃,范围为0-99℃。
2.二个三段数码管实时分别显示实际水温和预设水温。
3.仿真运行后,上方的LED数码管显示可预设水温的控制点,下方LED显示实际水温,当实际水温低于预设水温时发光二极管亮表示通电电加热,当实际水温高于预设水温时发光二极管灭表示断电停止加热。
六、 总结与体会
本系统中,我主要负责硬件电路的设计与制作。在设计与制作的过程中难免遇到问题,出现问题后,我首先是找到问题的所在,用自己有限的知识去试着分析问题,尽可能地先通过自己来解决问题,实在解决不了的,再通过请教老师、同学或查阅资料等途径来解决,在这分析问题、解决问题的过程中我不仅很大程度上弥补了遗忘的知识,而且还学到了很多新的知识,这让我的专业知识水平有了很大的提高。
通过这次课程设计,我深刻地认识到要设计完成一个完整的系统并不是一件容易的事情。
首先要对系统要求进行分析,制定可行性方案并确定最终方案,然后电路设计仿真分析,做出实际硬件,最后整机调试(包括硬件和软件),其中的每个环节都是至关重要的。
在学习了《单片机原理及接口技术》专业课程之后,为了将所学专业理论知识更好地应用到实际生活中,培养动手能力是理论联系实践的最好方法。发现问题到解决问题。本设计应用了硬件AT89S52单片机芯片模块及结合软件编程的程序设计借助Keil软件调试和模拟仿真实现显示功能。在设计过程中由于知识的欠缺而导致设计无法快速的完成设计,但经过老师的指导还有同学的共同协助下克服重重的困难最终完成了毕业设计要求的效果。
在整个设计的过程中全部是由自己动手完成,虽然硬件PCB布板、焊接工艺比起工厂机器的成匹生产还有一定的差距,在生产数量与工作效率还有相当远的差异,但最关键的还是要弄清楚产品设计的工作原理与生产的意义,正所谓:“换汤不换药”只有真正的学好了电子应用基础,才能为以后长远的发展打下坚实的基础。因此不论以后遇到多么复杂的电路、或新产品的开发也可以以一遍 应万遍。
通过实验提高对单片机的认识;同时在焊接、布局、电路检查能力、软件调试等进一步熟悉和掌握单片机的结构及工作原理。而且更进一步掌握以单片机为核心的电路设计的基本方法和技术,了解表关于电路参数的计算方法,逐步掌握模块化程序设计方法和调试技术。
七、致 谢
在整个毕业设计的过程中要感谢的人很多。在大三的下学期就已经结束了大专三年的所有课程。在大三的下学期作为毕业班的学生虽然不用再与学弟学妹一样得去教室上课,不用在放学铃响后跟他们挤食堂。可是作为毕业生的我们任务更加繁重,我们要一边找工作还要一边做毕业设计。三年的学习成效就汇集在这个毕业设计之中,是最能体现专业知识结晶的体现。
在这个毕业前的日子是最特殊的时期这将是从校园过渡到社会工作关键时候。正因为这样我们才感觉到不习惯。毕业设计又具有一定的设计难度,单靠自己一个人来完成确实有一定的难度!但正因为我们在大学里生活了三年这里有我们的同班同学、老师,还有认识的朋友……,在做毕业设计时的材料收集和修改论文的完成期间,在指导老师及同学的帮助下最终完成毕业设计。在此我向他们致以深深的谢意。
参考文献
1、 单片机初级教程,北京航空航天出版社,张迎新著,2006
2、 彭建英 谢国庆.水温智能控制系统的设计,2005
3、 黄玮 叶劲松. 单片机水温控制系统,1999
4、 柯南. 非常电路板设计Protel 99之Schematic .北京:中国铁道出版社, 2000
5、 柯南. 非常电路板设计Protel 99之PCB .北京: 中国铁道出版社, 2000
6、 江世明, 刘先任. 基于DS18B20的智能温度测量装置[J]. 邵阳学院学报(自然科学版) , 2004,(04)
7、 王瑞更. 高精度多点温度数据采集系统[J]. 河北工业科技 , 2008,(05)
8、 戚俊, 李季, 陈结祥. DS18B20在大功率激光二极管恒温制冷系统中的应用[J]. 量子电子学报 , 2002,(02)
2004,(02)
9、 李洁, 卢建中. 基于DS18B20的温度检测系统在蔬菜大棚中的应用[J]. 科技广场 , 2008,(03)
10、 刘刚, 凌云. 基于1-Wrie总线和VB的多点温度监控系统[J]. 江西科学 , 2004,(03)
11、 郭兆正, 王东. DS18B20在花棚温度监测中的应用[J]. 渤海大学学报(自然科学版) , 2004,(04)
12、 肖忠, 陈怡. DS18B20组建小型测温网络研究[J]. 广州大学学报(自然科学版) , 2005,(02)
13、 杨焕峥. 温度测量与显示[J]. 中国科技信息 , 2005,(01)
展开阅读全文