LED大屏幕电子显示.docx
- 文档编号:5356964
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:32
- 大小:374.70KB
LED大屏幕电子显示.docx
《LED大屏幕电子显示.docx》由会员分享,可在线阅读,更多相关《LED大屏幕电子显示.docx(32页珍藏版)》请在冰豆网上搜索。
LED大屏幕电子显示
河南理工大学
计算机科学与技术学院
课程设计报告
2009—2010学年第一学期
课程名称单片机原理及仿真
设计题目LED屏幕电子显示器
学生姓名李晓宝
学号320909010223
专业班级计本09-02
指导教师李泉溪
2009年1月1日
第一部分
概述……………………………………………………...2
第二部分
1.设计任务………………………………………………..2
1.1基本要求………………………………………………………….........2
1.2显示部分…………………………………………………………...….2
1.3数字时钟…………………………………………………………...….2
1.4温度采集部分……………………………………………………...….3
1.5芯片选择……………………………………………………………....3
1.6闹铃方式的选择………………………………………………………3
1.7止闹方式的选择………………………………………………………3
1.8串口通讯芯片的选择…………………………………………………4
2.总体设计…………………………………………....…4
2.1工作原理…………………………………………………………..…4
2.2总体设计………………………………………………………......…4
3.硬件设计……………………………………………...5
3.1AT89S52单片机最小系统……………………………………...….5
3.2温度测量模块……………………………………………………….5
3.3时钟模块…………………………………………………………….6
3.4键盘模块…………………………………………………………….6
3.5LED点阵显示模块…………………………………………………7
3.6电源的选择………………………………………………………….8
3.7PC机通讯…………………………………………………………...9
3.8整体电路…………………………………………………………….9
4.软件设计………………..……………………………10
4.1主程序流程…………………………………………………………10
4.2扫描子程序…………………………………………………………11
4.3时间程序……………………………………………………………11
4.4PC机串口通讯程序………………………………………………..15
4.5亮度调节程序………………………………………………………16
4.6温度程序……………………………………………………………16
5.设计总结……………………………………………..17
6.参考文献……………………………………………..17
附录……………………………………………………………17
一.概述
显示屏控制器的硬件电路部分主要由三个部分组成:
外部存储器的扩展、串行通信接口和LED点阵显示驱动及接口电路。
由于AT89C52需要把芯片从线路板上抠下来放到编程器上烧写程序,之后再放回去,极不方便。
而AT89S52就不用,它可以在线路板上预留一个10芯的插座,用不了10芯好像6芯就够了,之后不用抠下芯片就可以编程,非常方便。
所以本系统设计---LED屏幕显示系统,是以AT89S52单片机为核心的,另外,它由键盘显示、录放音模块、光电开关、温度采集、定时闹铃、LED屏幕显示等功能模块组成,实现了数字时钟,单片机与PC机串行通信,按键计数控制,温度采集检测及16*32点阵LED显示数字的功能。
其中,本系统对数字时钟和屏幕显示进行了重点设计。
此外,还扩展了单片机外围接口、非接触式止闹、滚动屏幕显示、语音报时等功能。
本系统大部分功能由软件来实现,吸收了硬件软件化的思想,使电路简单明了,系统稳定性大大提高。
本系统成功的实现了要求的基本功能,而且还扩展了一定的创新功能。
设计任务
1.1基本要求
一台简易16行*32列点阵显示的LED电子显示屏和控制器;扩展键盘和相应的接口实现多功能显示控制,显示屏显示数字和字母亮度适中,应无闪烁;显示屏通过按键切换显示数字和字母;显示屏能显示4组特定数字或者英文字母组成的句子;显示屏亮度能连续可调;实现信息的左右滚屏显示;实现实时时间的显示,显示屏数字显示:
时∶分∶秒(例如18∶38∶59);增大到10组(每组汉字8个或16个数字和字符)预存信息,信息具有掉电保护;实现和PC机通讯,通过PC机串口直接对显示信息进行更新;实现的功能包括:
温度的测量,定时闹铃,整点报时,非接触止闹。
其中数字时钟在设计上采用硬件计数与软件计数相结合的方式,并且定时器T0采用了中断方式,优先级最高。
然后通过开关的闭合与关断来控制闹钟的校时,整点报时等功能。
采用二十四小时制计时。
接入发光二极管来模拟整点报时。
以及对闹钟的随时校时。
数字钟由采用24小时制计时,利用6个LED显示器来显示时分秒,随时对时间进行调整,使用P1端口的P1.0端口线实现整点报时功能;使用P3端口的P3.0来实现闹钟功能。
(1)24小时制时间显示。
(2)可随时进行时间校对。
(3)整点报时。
(4)闹钟功能,并且要求在设置起闹时间的时候,不影响时钟的正常走时。
1.2显示部分
显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:
方案一:
静态显示,将一帧图像中的每一个二极管的状态分别用0和1表示,若为0,则表示LED无电流,即暗状态;若为1则表示二极管被点亮。
若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画面。
对于静态显示方式方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。
方案二:
动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。
动态显示方式方式,可以避免静态显示的问题。
但设计上如果处理不当,易造成亮度低,闪烁问题。
因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。
动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感.。
鉴于上述原因,本设计采用方案二;
1.3数字时钟
数字时钟是本设计的重要的部分。
根据需要,可利用两种方案实现。
方案一:
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。
该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。
且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
方案二:
本方案采用Dallas公司的专用时钟芯片DS1302。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。
1.4温度采集部分
由于现在用品追求多样化,多功能化,所以我们决定给系统加上温度测量显示模块,方便人们的生活,使该设计具有人性化。
方案一:
采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于1摄氏度的信号是不适用的。
方案二:
采用温度传感器DS18B20。
DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。
基于DS18b20的以上优点,本设计选取DS18b20来测量温度。
1.5芯片的选择
方案一:
采取并口输入,占用大量I/O口资源;
方案二:
选取串口输入,使用较少。
所以我们选用串口输入。
串口输入我们可以选用芯片有74HC595、74LS164、TPIC6B595。
但是74HC595和74LS164两种芯片必须加驱动才能驱动LED,而TI公司的DMOS器件TPIC6B595,除具有TTL和CMOS器件中移位寄存器595的逻辑功能外,其最大的特点是驱动功率大,可直接用作LED的驱动。
综合以上比较,本设计选取TPIC6B595来驱动LED点阵。
1.6闹铃方式的选择
方案一:
采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。
采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。
方案二:
采用录音放音芯片1420闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。
采用录放音电路铃声可以自己预先设定一段自己喜欢的音乐,符合电器设备人性化的要求。
且1420芯片可以分段录音,还具有语音报时功能。
基于录音放音芯片1420的以上优点,本设计采用录放音设备闹铃。
1.7止闹方式的选择
一般钟表都具有闹钟功能,到设定时间,便自动启动闹钟,发出音乐提醒人们,再由人按下止闹按钮停止闹钟工作。
一般每天只能设置一次闹钟、并要由人按下按钮止闹,使用不是很方便。
智能处理器应用可改变这种状况,一天可按自己需要设置闹钟的开关、多次闹钟设置并可用非接触方式止闹。
方案一:
采取远程红外遥控止闹,遥控器发出特定红外信号时,单片机接受到信号,向发音设备发出停止信号止闹。
红外遥控止闹控制距离远,但是价格昂贵,增加了制造成本。
方案二:
采取光电传感器,当用一物体遮挡光电传感光电传感器向单片机接口送出一个低电平,单片机立即向发音设备发出停止信号止闹。
光电传感器价格便宜,线路简单,易于控制。
本设计采用光电传感器止闹。
1.8串口通讯芯片的选择
AT89S52串行口采用的是TTL电平,因此必须的有电平转换电路,可以选择1488,1489,MAX232A.采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。
电源的选择
方案一:
采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。
点阵系统要悬挂在墙上,电池总量大,使用会有较大安全隐患。
方案二:
采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。
本设计采用方案二;
2、总体设计
2.1工作原理:
利用单片机AT89S52单片机作为本系统的中控模块。
单片机可把由DS18B20、DS1302读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历的显示。
点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。
利用光电传感器来实现非接触止闹功能。
在显示电路中,主要靠按键来实现各种显示要求的选择与切换。
2.2
总体设计
3、硬件设计
3.1AT89S52单片机最小系统:
最小系统包括晶体振荡电路、复位开关和电源部分。
图2为AT89S52单片机的最小系统。
图2最小系统电路图
3.2温度测量模块:
温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位A/D转换精度,测温分辨率达到0.0625℃,采用寄生电源工作方式,CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。
接口电路如图3所示。
图3DS18B20测量电路
3.3时钟模块
时钟模块采用DS1302芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW,其接线电路如图4
图4时钟电路
3.4键盘模块
键盘、状态显示模块:
为了使软件编程简单,本设计利用可编程芯片8255。
接法如表1所示。
PA口接按键,PC口则用于控制状态显示所用LED点阵。
每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。
当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。
模块电路如图5
3.5LED显示模块
点阵数据串行输入,器件为移位寄存器TPIC6B595595,门控和扫描信号常以16点阵为一行进行并行处理。
在点阵显示中以4×8个LED点阵构成一个LED显示单元,采用行共阳列共阴的编排方式。
其驱动分为行列两部分,分别来自于行、列移位寄存器,行数据是扫描数据,16行中每次只有一行被驱动,采用逐行扫描方式,列数据则为汉字的点阵码。
对于字符和图形显示也可以用点阵处理,其显示原理和方法相同.电路如图6
图6LED显示电路
3.6电源选择:
200W/5V的直流稳压电源更加安全电路图如图7
图7电源电路
3.7PC机通讯
MAX232是标准的串口通信接口,对于一般的双向通讯,只需要使用串行输入口RXD(第3脚)、串行输出TXD(第2脚)和地线(第7脚)。
MAX232逻辑电平的规定如表2.
表2逻辑电平表
逻辑值
电平幅值(v)
0
3+~+15
1
3-~-15
图8串口通讯
3.8整体电路
图9整体电路
4、软件设计
4.1主程序如图10
4.2显示子程序流程如图11
4.3显示时间子程序流程如图12
图12-1时间子程序流程图
图12-2校时子程序流程图
图12-3T0中断服务程序流程图
4.4与PC串口通讯程序如图13
4.5LED亮度调节如图14
图14LED亮度调节
4.6温度测量流程图如图15
图15温度测量程序流程图
5、设计总结
学了两周的课程设计,在这期间,出现了很多问题,但我得到了很多同学的帮助,通过请教他们和查阅资料而找到了解决这些问题的方法。
首先是,程序编完后,要对代码仔细逐行的进行检查。
检查代码的错误后,建立自己的代码检查表,对经常容易出错的地方进行反复检查,另外还要检查代码是否符合编程的规范,
对各个子程序进行测试。
我采用的方法是:
用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,然后看看它是否按预期的情况输出结果。
测试过以后,如果代码需要修改,还要再次对代码进行检查,因为这次设计的电路板中出现的问题都是我以前从未接触到的,通过看文档资料的方式本以为可行,但还是忽略了比较隐蔽的东西,结果导致设计有很多缺陷,比如说复位端电平没有考虑到与单片机的相反,再有就是没有注意到存储器块擦写的某种特性等等。
后来我决定采用模拟多通道的方式来重新规划整个的程序响应结构,结果发现通过这种方式大大提高了系统的性能。
不过在这次设计过程中,我也学到了很多东西,基本了解了整个系统开发的流程。
例如,在进行整个设计之前,应该先根据需求分析对单片机进行选型,然后对各个硬件模块进行测试。
在画PCB电路板的时候,要注意基本的布板原则,滤波电容不能靠近芯片的电源脚和地脚。
在进行搭试点阵块的时候,因为电压过高,容易导致点阵块损坏。
最后说一下自己单片机这门课程的感受,要必须理论联系实际才能对单片机有更深刻的感悟,而这次设计恰恰给我提供了一个深入学习、探索的机会,成为课堂教学的有益补充,使我更加深入地了解单片机的基本原理、单片机应用系统开发过程,以及常用的编程设计思路技巧,为以后成为应用型人才打下了坚实的基础。
6、参考文献
[1]《单片机原理及应用仿真》李泉溪编北京航空航天大学出版社
[2]《基于单片机结构的智能系统设计与实现》沈红卫编电子工业出版社
[3]《单片机原理与接口技术》黄惠媛编海洋出版社
[4]《单片机应用技术》周平伍云辉编电子科技大学出版社
[5]《8051单片机实践与应用》吴金戌沈金阳郭庭吉编清华大学出版社
[6]《单片机语言C51典型应用设计》刘文涛编人民邮电出版社
附录:
SEREQUP1.0;TPIC6B595第3脚
OEEQUP1.1;TPIC6B595第8脚
RCKEQUP1.2;TPIC6B595第12脚
MREQUP1.3;TPIC6B595第9脚
SRCLKEQUP1.4;TPIC6B595第13脚
ORG0000H
LJMPMAIN
ORG0100H
;**************************主程序**********************************
MAIN:
MOVSP,#70H
SETBOE
MOV2BH,#00H
MOV27H,#00H
START:
;初始化寄存器RAM单元
MOVR0,#30H
MOVR1,#64H;30H~6FH单元清零
MOVA,#00H
ST:
MOV@R0,A
INCR0
DJNZR1,ST
;2Dh------寻址偏址;整屏四个字一起显示
LOOP:
MOVDPTR,#TAB;赋查表初值
MOVR3,#56
PLAY:
MOV2DH,#00H
MOV2FH,#10H
GG:
LCALLLINE16;扫描显示一次
MOV2DH,#00H
DJNZ2FH,GG
MOVA,DPL
CLRC
ADDA,#16
MOVDPL,A
MOVA,DPH
ADDCA,#00H
MOVDPH,A
DJNZR3,PLAY
SJMPSTART
LINE16:
MOV2BH,#16;扫16行,2BH放后还剩几行
FF:
LCALLLINE1;扫描显示一行子程序
DJNZ2BH,FF;扫描行直到16行扫完再转
RET
LINE1:
LCALLMSTR;将显示的内容移入内存单元
LCALLSEND;发送串口子程序
LCALLXH;选通行子程序
RET
MSTR:
;显示内容移入内存单元
MOVR0,#30H
MOVR4,#9
MOVA,2DH;
BB:
MOVCA,@A+DPTR
MOV@R0,A
INCR0
MOVA,2DH
ADDA,#16;加16移到下一行
MOV2DH,A
DJNZR4,BB
MOVA,2DH
SUBBA,#143
MOV2DH,A
RET
;***********************发送数据到串口子程序********************************
SEND:
MOVR0,#30H
MOVR5,#8;一行有8个字节,如每次显示字数不同要作相应改动
SETBOE
SETBMR
CLRSRCLK
CLRRCK
SETBP1.6
SETBP1.7
LQ:
CLRC
MOVR2,#8
MOVA,@R0
;CPLA;TPIC6B595应该不用这一步
LCALLDD1;调用显示一个字节的子程序
INCR0;指向下一个显示单元
DJNZR5,LQ
RET
DD1:
CLRSRCLK;清串行CP端
RLCA;
MOVSER,C
SETBSRCLK;触发串行CP端
DJNZR2,DD1;每个字节移8次够了向下执行
RET;下面是选通行子程序
XH:
CLRRCK;将输出CP变成低电平为上升沿做准备
NOP
SETBRCK
CLRP1.6
;CLRP1.7
MOVA,27H
MOVP0,A
CLROE
LCALLDE25MS
INCA
SETBOE
SETBP1.6
MOVA,27H
ANLA,#0F0H
SWAPA
ADDA,#01H
SWAPA
MOV27H,A
CLRMR
SETBMR
RET
DE25MS:
MOVR5,#09H
DEL2:
MOVR6,#0FH
DEL3:
MOVR7,#01H
DJNZR7,$
DJNZR6,DEL3
DJNZR5,DEL2
RET
TAB:
字库
END
;程序中的一些存储单元的的定义:
20H-22H:
时、分、秒单元。
40H-42H:
校时或闹钟校时
;期间的时、分、秒单元。
50H-51H:
起闹时间的时、分单元。
79H-7EH:
显示缓冲区,与6
;个LED显示器相对应。
用户标志位F0:
校时标志当F0=1,表示校时;当F0=0,表示闹
;钟不校时。
位7FH:
闹钟校时标志,当7FH=1,表示闹钟校时,当7FH=0,表示闹钟不校
;时
*****************************数字时钟子程序*********************************
ORG0000H;程序开始
LJMPMAIN;转到住程序
ORG0003H
SETBPSW.5;拥护定义F0
RETI;中断返回
ORG000BH
LJMPCLOCK;转到始终子程序
ORG0013H
SETB7FH;定义闹钟校时
RETI
ORG0030H
MAIN:
MOVSP,#60H;栈起始地址为60H
MOVTMOD,#01H;T0定时器,工作方式1
MOVIE,#87H
SETBPT0
MOVTL0,#0B7H;设置定时器初值
MOVTH0,#3CH
MOV20H,#00H;时单元赋初值
MOV21H,#00H;分单元赋初值
MOV22H,#00H;秒单元赋初值
MOV23H,#00H
MOV50H,#06H;起闹时间的时单元赋初值
MOV51H,#28H;起闹时间的分单元赋初值
MOV52H,#00H
CLRPSW.5;0→F0
CLR7FH;0→起闹时间
SETBTR0
SETBIT0
SETBIT1
CLRP3.0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 大屏幕 电子 显示