1、电子电工课程设计LED电子电工课程设计 题目:LED汉字点阵显示系统设计成员:信息科学与工程学院电子信息系2010年7月5日1.设计任务.32方案论证与比较32.1 显示部分.32.2 数字时钟.32.3 温度采集部分.42.4 芯片选择.42.5 闹铃方式的选择.42.6 止闹方式的选择.42.7 串口通讯芯片的选择.42.8电源模块.43. 总体方案.53.1 工作原理.53.2 总体设计.54系统硬件设计64.1 AT89S52单片机最小系统.64.2 温度测量模块.64.3 时钟模块.74.4 键盘模块.84.5 LED点阵显示模块.84.6 电源的选择.94.7 PC机通讯.104.
2、8 整体电路.105系统软件设计.115.1 主程序流程.11 5.2 扫描子程序.125.3 时间程序.125.4 PC机串口通讯程序.145.5 亮度调节程序.155.6 温度程序.166设计总结.177参考资料.18附录.18 1任务设计1.自制一台简易16行*64列点阵显示的LED电子显示屏;2.LED显示屏亮度连续可调。3.实现信息的左右滚屏显示,预存信息的定时循环显示;4.实现实时时间的显示,显示屏数字显示: 时分秒(例如 183859);5.增大到10组(每组汉字8个或16个数字和字符)预存信息,信息具有掉电保护;6.实现和PC机通讯,通过PC机串口直接对显示信息进行更新(须做P
3、C机客户程序);7.室温的测量8.定时闹铃9.整点报时10.非接触止闹 2、方案论证2.1 显示部分: 动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素. 我们通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发
4、光二极管导通时间1m s 时, 显示亮度较好, 无闪烁感.。 2.2数字时钟本方案采用Dallas公司的专用时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。2.3 温度采集部分采用温度传感器DS18B20。DS18B20可以满足从-55摄氏度到+125摄
5、氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。2.4 芯片的选择选取串口输入,使用较少。所以我们选用串口输入。串口输入我们可以选用芯片有74HC595、74LS164、TPIC6B595。但是74HC595和74LS164两种芯片必须加驱动才能驱动LED,而TI 公司的DMOS 器件TPIC6B595 , 除具有TTL 和CMOS 器件中移位寄存器595 的逻辑功能外, 其最大的特点是驱动功率大, 可直接用作LED的驱动。2.5 闹铃方式的选择采用录音放音芯
6、片1420闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。采用录放音电路铃声可以自己预先设定一段自己喜欢的音乐,符合电器设备人性化的要求。且1420芯片可以分段录音,还具有语音报时功能。2.6 止闹方式的选择采取光电传感器,当用一物体遮挡光电传感光电传感器向单片机接口送出一个低电平,单片机立即向发音设备发出停止信号止闹。光电传感器价格便宜,线路简单,易于控制。2.7 串口通讯芯片的选择AT89S52串行口采用的是TTL电平,因此必须的有电平转换电路,可以选择1488,1489,MAX232A.采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。2.8 电源
7、模块 采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠 3、总体方案3.1 工作原理: 利用单片机AT89S52单片机作为本系统的中控模块。单片机可把由DS18B20、DS1302读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历的显示。点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。利用光电传感器来实现非接触止闹功能。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。3.2 总体设计设计总体框图如图14、系统硬件设计(单元电路设计及分析)4.1 AT8
8、9S52单片机最小系统:最小系统包括晶体振荡电路、复位开关和电源部分。图2为AT89S52单片机的最小系统。4.2 温度测量模块:温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55125,可编程为9位12位A/D转换精度,测温分辨率达到0.0625,采用寄生电源工作方式, CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。接口电路如图3所示。图3 DS18B20测量电路4.3 时钟模块时钟模块采用DS1302芯片,DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM
9、通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,其接线电路如图4图4 时钟电路4.4 键盘模块键盘、状态显示模块:为了使软件编程简单,本设计利用可编程芯片8255。接法如表1所示。PA口接按键,PC口则用于控制状态
10、显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。模块电路如图5图5 键盘电路 4.5 LED显示模块点阵数据串行输入, 器件为 移位寄存器TPIC6B595595, 门控和扫描信号常以16 点阵为一行进行并行处理。在点阵显示中以48个L ED 点阵构成一个L ED 显示单元, 采用行共阳列共阴的编排方式。其驱动分为行列两部分, 分别来自于行、列移位寄存器, 行数据是扫描数据, 16 行中每次只有一行被驱动, 采用逐行扫描方式, 列数
11、据则为汉字的点阵码。对于字符和图形显示也可以用点阵处理, 其显示原理和方法相同.电路如图6 图6 LED显示电路4.6电源选择: 200W/5V的直流稳压电源更加安全电路图如图7 图7 电源电路4.7 PC机通讯 MAX232是标准的串口通信接口,对于一般的双向通讯,只需要使用串行输入口RXD(第3脚)、串行输出TXD(第2脚)和地线(第7脚)。图8 串口通讯4.8整体电路系统整体电路如下:图9 整体电路5、系统软件设计5.1主程序如图105.2显示子程序流程如图 11开始查找显示汉字数据放入RAM中将数据串行传入TPIC6B595行扫描32行是否扫完返回图11 显示子程序流程5.3 显示时间
12、子程序流程如图12开始DS1302初始化从DS1302中读数据,并放入RAM调用显示子程序显示时间图12 时间子程序流程图5.4 与PC串口通讯程序 开始串口通讯初始化等待PC机发联络信号是否接受到信号将接受到的数据放到指定区域数据发送是否完毕返回图13 串口通讯程序5.5 LED亮度调节开始键盘扫描“亮度”键是否按下LED显示当前亮度等级键盘扫描“+”键按下“”键按下内部RAM中2AH单元所存数据加1内部RAM中2AH单元所存数据减1返回NY图 14 LED亮度调节5.6温度测量流程图如图15开始DS18B20初始化从DS18B20中读出数据,放入RAM在LED点阵中显示温度返回 图15 温
13、度测量程序流程图6、设计总结我们一致选择控制类题目A(LED点阵),从基本方案的制定,在到硬件电路的选择,到制作电路制作。在此期间我们遇到很多困难,几乎没有说过一次好觉,尽管很艰苦,但是我们各自分工,相互协作,一次又一次品尝到了解决问题的喜悦,最终完成了要求的全部功能,并加入了一些创新的部分。在竞赛中我们发现了自己知识的不足,通过四天三夜的奋斗,也可以说四天三夜的学习,我们学到了很多东西,最重要的是我们学会了一种精神永不放弃。在以后的时间里面我们会用这种精神去学习,更上一层楼。7、参考资料 1基于单片机结构的智能系统设计与实现 沈红卫 编 电子工业出版社2单片机原理与接口技术 黄惠媛 编 海洋
14、出版社3单片微型计算机原理及应用 张毅坤 陈善久 编 西安电子科技大学出版社48051单片机实践与应用 吴金戌 沈金阳 郭庭吉 编 清华大学出版社附录:例:整屏四个字一起显示的程序SER EQU P1.0 ; TPIC6B595 第3脚OE EQU P1.1;TPIC6B595 第8脚RCK EQU P1.2;TPIC6B595 第12脚MR EQU P1.3;TPIC6B595 第9脚SRCLK EQU P1.4;TPIC6B595 第13脚ORG 0000HLJMP MAINORG 0100H;*主程序*MAIN: MOV SP,#70HSETB OE MOV 2BH,#00HMOV 27
15、H,#00HSTART: ;初始化寄存器RAM单元MOV R0, #30HMOV R1,#64H ;30H6FH单元清零MOV A, #00HST: MOV R0,A INC R0 DJNZ R1,ST;2Dh-寻址偏址 ;整屏四个字一起显示LOOP:MOV DPTR,#TAB;赋查表初值MOV R3,#56PLAY: MOV 2DH,#00H MOV 2FH,#10HGG: LCALL LINE16;扫描显示一次MOV 2DH,#00HDJNZ 2FH,GGMOV A,DPLCLR CADD A, #16MOV DPL ,AMOV A, DPHADDC A ,#00HMOV DPH, ADJ
16、NZ R3,PLAYSJMP STARTLINE16: MOV 2BH,#16;扫16行,2BH放后还剩几行FF: LCALL LINE1;扫描显示一行子程序DJNZ 2BH,FF;扫描行直到16行扫完再转RETLINE1:LCALL MSTR;将显示的内容移入内存单元 LCALL SEND;发送串口子程序 LCALL XH;选通行子程序 RETMSTR: ;显示内容移入内存单元 MOV R0,#30H MOV R4,#9 MOV A,2DH;BB: MOVC A,A+DPTR MOV R0,A INC R0 MOV A,2DH ADD A,#16;加16移到下一行 MOV 2DH,A DJN
17、Z R4,BB MOV A,2DH SUBB A,#143 MOV 2DH,A RET;$发送数据到串口子程序$SEND:MOV R0,#30H MOV R5,#8 ;一行有8个字节,如每次显示字数不同要作相应改动 SETB OE SETB MR CLR SRCLK CLR RCK SETB P1.6 SETB P1.7LQ: CLR C MOV R2,#8 MOV A,R0 ; CPL A ;TPIC6B595应该不用这一步 LCALL DD1;调用显示一个字节的子程序 INC R0;指向下一个显示单元 DJNZ R5,LQ RETDD1: CLR SRCLK;清串行CP端 RLC A; M
18、OV SER,C SETB SRCLK ;触发串行CP端 DJNZ R2,DD1;每个字节移8次够了向下执行 RET;选通行子程序XH: CLR RCK ;将输出CP变成低电平为上升沿做准备 NOP SETB RCK CLR P1.6 ;CLR P1.7 MOV A,27H MOV P0,A CLR OELCALL DE25MSINC A SETB OE SETB P1.6MOV A,27H ANL A,#0F0H SWAP A ADD A,#01H SWAP A MOV 27H,ACLR MR SETB MR RETDE25MS: MOV R5,#09H DEL2: MOV R6,#0FH DEL3: MOV R7,#01H DJNZ R7,$ DJNZ R6,DEL3 DJNZ R5,DEL2 RETTAB:字库END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1