资源描述
1 LED电子显示屏原理
1.1 L ED电子显示屏概述
LED电子显示屏(Light Emitting Diode Panel)是由几百--几十万个半导体发光二极管构成像素点,按矩阵均匀排列构成。运用不同半导体材料可以制造不同色彩LED像素点。当前应用最广是红色、绿色、黄色。而蓝色和纯绿色LED开发已经达到了实用阶段。 LED显示屏是一种通过控制半导体发光二极管亮度方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息显示屏幕。
LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块构成。图文显示屏可与计算机同步显示中文、英文文本和图形;而条幅显示屏则合用于小容量字符信息显示。LED显示屏由于其像素单元是积极发光,具备亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等长处。因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业公司管理和其他公共场合。
LED显示屏发展前景极为辽阔,当前正朝着更高亮度、更高气候耐受性、更高发光密度、更高发光均匀性,可靠性、全色化方向发展。
1.2 LED显示屏动态显示原理
LED点阵显示系统中各模块显示方式: 有静态和动态显示两种。静态显示原理简朴、控制以便,但硬件接线复杂,在实际应用中普通采用动态显示方式,动态显示采用扫描方式工作,由峰值较大窄脉冲电压驱动,从上到下逐次不断地对显示屏各行进行选通,同步又向各列送出表达图形或文字信息列数据信号,重复循环以上操作,就可显示各种图形或文字信息。
点阵式LED中文广告屏绝大某些是采用动态扫描显示方式,这种显示方式巧妙地运用了人眼视觉暂留特性。将持续几帧画面高速循环显示,只要帧速率高于24帧/秒,人眼看起来就是一种完整,相对静止画面。最典型例子就是电影放映机。在电子领域中,由于这种动态扫描显示方式极大缩减了发光单元信号线数量,因而在LED显示技术中被广泛使用。
以8×8点阵模块为例,阐明一下其用法及控制过程。图1中,水平线Y0、Y1……Y7叫做行线,接内部发光二极管阳极,每一行8个LED阳极都接在本行行线上。相邻两行线间绝缘。同样,竖直线X0、X1……X7叫做列线,接内部每列8个LED阴极,相邻两列线间绝缘。
在这种形式LED点阵模块中,若在某行线上施加高电平(用“1”表达),在某列线上施加低电平(用“0”表达)。则行线和列线交叉点处LED就会有电流流过而发光。例如,Y7为1,X0为0,则右下角LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
图1: (8×8)点阵LED显示模块构造原理及引脚图
LED点阵显示屏单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5x7点阵显示屏用于显示西文字母.5×8点阵显示屏用于显示中西文,8x8点阵可以用于显示简朴中文文字,也可用于简朴图形显示。用多块点阵显示屏组合则可构成大屏幕显示屏,但此类实用装置常通过PC机或单片机控制驱动。
1.3 Proteus简介
Proteus软件是英国Labcenter electronics公司出版EDA工具软件(该软件中华人民共和国总代理为广州风标电子技术有限公司)。它不但具备其他EDA工具软件仿真功能,还能仿真单片机及外围器件。它是当前最佳仿真单片机及外围器件工具。虽然当前国内推广刚起步,但已受到单片机兴趣者、从事单片机教学教师、致力于单片机开发应用科技工作者青睐。Proteus是世界上知名EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品完整设计。是当前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一设计平台,其解决器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,它也支持IAR、Keil和MPLAB等各种编译器。
Proteus软件具备其他EDA工具软件(例:multisim)功能。这些功能是:
(1)智能原理图设计(ISIS)
(2)完善电路仿真功能(Prospice)
(3)独特单片机协同仿真功能(VSM)
(4)实用PCB设计平台
2 硬件设计
2.1 总体设计思路
设计思路如图2:
图2: 总体思路框图
2.2 设计论证
图文显示普通有静态和动态显示两种方案,静态方案虽然设计简朴,但其使用管脚太多,如本设计中16x16点阵共有256个发光二极管,显然单片机没有这样多端口,如果我采用锁存器来扩展端口,按8位锁存器来计算,16x16点阵需要256/8=32个锁存器。这个数字很庞大,由于咱们仅仅是16x16点阵,在实际应用中显示屏往往要大得多,这样在锁存器上花成本将是一种很庞大数字。因而在实际应用中显示屏几乎都不采用这种设计,而采用此外一种称为动态扫描显示办法。
动态扫描意思简朴地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(例如16行)同名列共用一套驱动器。详细就16x16点阵来说,把所有同1行发光管阳极连在一起,把所有同1列发光管阴极连在一起(共阳极接法),先送出相应第一行发光管亮灭数据并锁存,然后选通第1行使其燃亮一定期间,然后熄灭;再送出第二行数据并锁存,然后选通第2行使其燃亮相似时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,重复轮回。当这样轮回速度足够快(每秒24次以上),由于人眼视觉暂留现象,就可以看到显示屏上稳定图形了。
采用扫描方式进行显示时,每一行有一种行驱动器,各行同名列共用一种驱动器。显示数据普通存储在单片机存储器中,按8位一种字节形式顺序排放。显示时要把一行中各列数据都传送到相应列驱动器上去,这就存在一种显示数据传播问题。从控制电路到列驱动器数据传播可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器线路数量大,相应硬件数目多。当列数诸多时,并列传播方案是不可取。
采用串行传播办法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济。但是,串行传播过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行各列数据都以传播到位之后,这一行各列才干并行地进行显示。这样,对于一行显示过程就可以分解成列数据准备(传播)和列数据显示两某些。对于串行传播方式来说,列数据准备时间也许相称长,在行扫描周期拟定状况下留给行显示时间就太少了,以致影响到LED亮度。
解决串行传播中列数据准备和列数据显示时间矛盾问题,可以采用重叠解决办法。即在显示本行各列数据同步,传送下一列数据。为了达到重叠解决目,列数据显示就需要具备所存功能。通过上述分析,就可以归纳出列驱动器电路应具备功能。对于列数据准备来说,它应能实现串入并处移位功能;对于列数据显示来说,应具备并行锁存功能。这样,本行已准备好数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行列数据,而不会影响本行显示。
2.3系统硬件选取
由图2可知本次设计硬件选取如下:
AT89C52单片机1个,锁存器74LS373芯片1片,非门74LS04芯片1片,4线-16线译码器741454芯片2片,移位寄存器74LS595芯片2片,最后需要构成16*32点阵MATRIX-8X8-RED芯片4片以及电源和地。
2.4 电路设计原理图
本设计电路设计原理图如图3所示:
图3:16*32 LED点阵设计电路原理图
由于proteus里没有现成16*32点阵芯片,因此我选取4片MATRIX-8X8-RED芯片拼成一块16*32点阵芯片。
3 软件设计
显示屏软件模块涉及:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示程序重要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计规定显示。软件设计中,显示屏软件系统分为两层;第一层是底层显示驱动程序,第二层是上层系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其她控制信号,配合完毕LED显示屏扫描显示工作。显示驱动器程序由定期器T0中断程序实现。系统应用程序完毕系统环境设立(初始化)、显示效果解决等工作,由主程序来实现。
3.1 显示驱动程序设计
显示驱动程序在进入中断后一方面要对定期器T0重新赋初值,以保证显示屏刷新率稳定,1/16扫描显示屏刷新率(帧频)计算公式如下:
刷频率(帧频)=1/16×T0溢=1/16×f/12(65536-t)
其中f位晶振频率,t为定期器T0初值(工作在16位定期器模式)。
然后显示驱动程序查询当前燃亮行号,从显示缓存区内读取下一行显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新行号,重新打开显示。显示驱动程序(显示屏扫描函数)流程图如图4所示:
图4:显示驱动程序流程图
3.2 系统主程序设计
本设计系统软件能使系统LED显示屏各点亮度均匀、充分,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。
系统主程序开始后来,一方面是对系统环境初始化,涉及设立串口、定期器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;接着向上滚动显示“--------”这几种中文及一种图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,因此可以设立系统程序不断循环执行上述显示效果。
单元显示屏可以接受来自控制器(主控制电路板)或上一级显示单元模块传播下来数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因而显示板可扩展至更多显示单元,用于显示更多显示内容。如果想变化些事内容,先用字模产生字代码,将用这段代码覆盖本来代码,即可显示你想要内容。
系统主程序流程图如图5所示:
图5:系统主程序流程图
3.3 源程序
;主程序如下:
ORG 0000H
SJMP START ;程序开始从START执行
ORG 0030H ;程序从0030H单元开始存储
START :MOV 60H ,#0 ;60H单元清0,60H单元用于软件延时时计数
MOV 61H ,#0 ;61H单元清0,61H单元用于软件延时时计数
D0: MOV R0,#165 ;中文字幕往左滚动一次需要读取数据165次
MOV DPTR,#TABLE1 ;字模表1首址赋指针
ACALL DISPLAY ;调用显示子程序
MOV R0 ,#256 ;英文某些往左滚动显示完一次需读取数据256次
MOV DPTR,#TABLE2 ;字模表2首址赋指针
ACALL DISPLAY ;调用显示子程序
AJMP D0 ;重复显示
;显示程序如下:
DISPLAY:MOV R2 ,#10 ;每屏字幕扫描显示10次
LOOP0: MOV R3 ,#32 ;总共扫描32列
CLR P3.2 ;移位寄存器74LS595锁存信号无效(为0)
MOV R5,#00H ;列序号送寄存器,从第0列开始显示
SCAN1: MOV R1,#00H ;偏移量初值为0
LOOP1: MOV R4,#2 ;每列显示数据有两字节,每次发送一字节,发两次
LOOP2: MOV A,R1 ;偏移量寄存器内容送A
MOVC A,@A+DPTR ;取字模数据送A
MOV SBUF,A ;A中内容送串行口输出
JNB TI,$ ;检查数据与否已发送完,没发送完,继续等待
CLR TI ;发送完毕,清串行口中断标志
INC R1 ;偏移量加1
DJNZ R4,LOOP2 ;还没发送完两字节,继续发送
NOP
SETB P3.2 ;移位寄存器74LS595数据锁存信号有效(为1),锁存单片机送出数据
CLR P3.3 ;移位寄存器74LS595输出容许信号有效,将锁数
据输出
NOP
NOP
MOV P1 ,R5 ;列编号送P1口,使该列显示数据
MOV 60H ,#5 ;开始软件延时,60H单元置初值5
DL1: MOV 61H ,#20 ;61H单元置初值20
DL2: DJNZ 61H ,DL2
DJNZ 60H ,DL1 ;软件延时,让一列数据显示维持一点时间
INC R5 ;列编号加1
CLR P3.2 ;移位寄存器74LS595锁存信号无效(为0)
SETB P3.3 ;移位寄存器74LS595输出容许信号无效(为1)
DJNZ R3,LOOP1 ;32列还没扫完,继续扫描
DJNZ R2,LOOP0 ;每屏字幕没扫完10次,继续
INC DPTR ;指针加1
INC DPTR ;指针加1,使显示字幕往左移动
DJNZ R0,DISPLAY ;R0不为0,继续读取数据扫描显示
RET ;子程序返回
TABLE1:
;黑屏
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;天
DB 02H,01H,42H,01H,42H,02H,42H,04H,42H,08H,42H,30H,42H,0C0H,7FH,00H,
DB 42H,0C0H,42H,30H,42H,08H,42H,04H,0C2H,02H,46H,03H,02H,02H,00H,00H
;道
DB 02H,00H,42H,02H,22H,04H,33H,0FH,00H,04H,20H,02H,0AH,0FDH,6DH,25H,
DB 35H,25H,25H,25H,25H,25H,65H,25H,0AFH,0FDH,24H,03H,00H,02H,00H,00H
;酬
DB 4FH,0FEH,48H,0A4H,7FH,24H,48H,24H,7FH,
DB 24H,48H,0A4H,0DFH,0FFH,48H,02H,
DB 02H,0CH,0FFH,0F0H,02H,00H,3FH,0FCH,
DB 02H,00H,0FFH,0FFH,00H,00H,00H,00H
;勤
DB 40H,02H,47H,0A2H,0F4H,0AAH,54H,0AAH,
DB 5FH,0FEH,54H,0AAH,0F4H,0AAH,47H,0A3H,
DB 48H,02H,08H,0CH,0FFH,0F0H,08H,02H,
DB 08H,01H,1FH,0FEH,08H,00H,00H,00H
TABLE2:
;h
DB 00H,00H,00H,00H,30H,04H,7FH,0FCH,
DB 0FFH,0FCH,03H,04H,03H,00H,03H,00H
DB 03H,00H,03H,00H,03H,04H,03H,0FCH,01H,
DB 0FCH,00H,04H,00H,00H,00H,00H
;n
DB 00H,00H,00H,00H,03H,04H,03H,0FCH,
DB 03H,0FCH,03H,04H,03H,00H,03H,00H
DB 03H,00H,03H,00H,03H,04H,03H,0FCH,
DB 01H,0FCH,00H,04H,00H,00H,00H,00H
;i
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,
DB 00H,00H,04H,03H,04H,1BH,0FCH
DB 1BH,0FCH,1BH,0FCH,00H,04H,00H,04H,00H,
DB 00H,00H,00H,00H,00H,00H,00H
;e
DB 00H,00H,00H,00H,01H,0F0H,03H,0F8H,
DB 06H,0CCH,0CH,0CCH,0CH,0CCH,0CH,0CCH
DB 0CH,0CCH,0CH,0CCH,0CH,0CCH,06H,0CCH,
DB 03H,0C8H,01H,0C0H,00H,00H,00H,00H
4 Proteus仿真
本课程设计仿真运用proteus仿真环节如下:
(1)选取设计图纸到小
(2)选用仿真所需元器件
选用元器件方式是,单击元器件放置按钮“P”。
(3)把元器件放到图纸适当位置,进行布线。
(4)编辑窗口连接端子
(5)分别对各元器件属性值进行设立,单击按钮,进行电气检测,查看接线与否合理,阐明硬件电路已经顺利完毕。
(6)双击单片机,将用伟福编译成功程序烧进单片机。单击proteus中play进行仿真。
本课程设计电路仿真图如图7所示:
图7:16*32点阵显示仿真图
附中文仿真效果图:
附字母仿真效果图:
5 心得体会
通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己实际动手能力和独立思考能力。在设计过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样问题,同步在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢固。在设计中遇到了诸多专业知识问题,最后在熊教师辛勤指引下,终于游逆而解。本次课程设计,学到了诸多课内学不到东西,例如独立思考解决问题,浮现差错随机应变,和与人合伙共同提高,都受益非浅。同步,在陈教师身上咱们学也到诸多实用知识,在此咱们表达感谢!同步,对给过我协助所有同窗和各位指引教师再次表达忠心感谢!
6 参照文献
1、张义和 陈敌北编著《例说8051》人民邮电出版社
2、周越主编《单片机技术实验实训教程》中华人民共和国水利水电出版社
3、周越主编《单片机应用技术》中华人民共和国水利水电出版社
4、李全利编《单片机原理及应用技术》高等教诲出版社
5、李忠国 陈刚编著《单片机应用技能实训》人民邮电出版社
6、赵建领编著《Protel电路设计与制版宝典》电子工业出版社
7、郭振民 丁红主编《电子设计自动化EDA》中华人民共和国水利水电出版社
8、周润景《Proteus在MCS-51&ARM7系统中应用》电子工业出版社
展开阅读全文