《基于单片机的LED点阵显示课程设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的LED点阵显示课程设计.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 LED电子显示屏原理1.1 L ED电子显示屏概述 LED电子显示屏Light Emitting Diode Panel是由几百-几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。利用不同的半导体材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色。而蓝色和纯绿色LED的开发已经到达了实用阶段。 LED显示屏是一种通过控制半导体发光二极管的亮度的方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形;而条幅显示屏那么适用于小容量的字
2、符信息显示。LED显示屏因为其像素单元是主动发光的,具有亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等优点。因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。 LED显示屏的开展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向开展。 1.2 LED显示屏动态显示原理 LED点阵显示系统中各模块的显示方式: 有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从
3、上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式LED汉字广告屏绝大局部是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。 以88点阵模块为例,说明一下其使用方法及控制过程。图1中,水平线Y0、Y1Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的
4、阳极都接在本行的行线上。相邻两行线间绝缘。同样,竖直线X0、X1X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。 在这种形式的LED点阵模块中,假设在某行线上施加高电平用“1表示,在某列线上施加低电平用“0表示。那么行线和列线的交叉点处的LED就会有电流流过而发光。比方,Y7为1,X0为0,那么右下角的LED点亮。再如Y0为1,X0到X7均为0,那么最上面一行8个LED全点亮。 图1: (88)点阵LED显示模块结构原理及引脚图 LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号如5x7点阵显示器用于显示西文字母58点阵显示器用于显示中西文,8x8点阵可
5、以用于显示简单的中文文字,也可用于简单图形显示。用多块点阵显示器组合那么可构成大屏幕显示器,但这类实用装置常通过PC机或单片机控制驱动。 1.3 Proteus简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件该软件中国总代理为广州风标电子技术。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路
6、协同仿真,一键切换到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独特的单片机协同仿真功能VSM4实用的PCB设计平台 2 硬件设计2.1 总体设计思路设计思路如图2: 图2: 总体
7、思路框图2.2 设计论证 图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是1616的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的本钱将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。 动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行比方16行的同名列共用一套驱动器。具体就16
8、16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起共阳极的接法,先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快每秒24次以上,由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。 采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存
9、在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备传输和列数据显示两局部。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少
10、了,以致影响到LED的亮度。 解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了到达重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位存放器就可以准备下一行的列数据,而不会影响本行的显示。2.3系统硬件选择 由图2可知此次设计的硬件选择如下: AT89C52单片机1个, 锁存器74LS373芯片1片,非门74LS04芯片1片
11、,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 软件设计 显示屏软件模块包括:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底
12、层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置初始化、显示效果处理等工作,由主程序来实现。3.1 显示驱动程序设计 显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率帧频计算公式如下: 刷频率帧频=1/16T0溢=1/16f/1265536-t 其中f位晶振频率,t为定时器T0初值工作在16位定时器模式。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显
13、示数据,并通过串口发送给移位存放器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新翻开显示。显示驱动程序显示屏扫描函数流程图如图4所示: 图4:显示驱动程序流程图 3.2 系统主程序设计 本设计的系统软件能使系统LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。 系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出效果显示图形,停留约几秒;接着向上滚动显示“-这几个汉字及一个图形,然后以“卷帘入效
14、果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。 单元显示屏可以接收来自控制器主控制电路板或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。如果想改变些事内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。 系统主程序流程图如图5所示:图5:系统主程序流程图3.3 源程序 ;主程序如下: ORG 0000H SJMP START ;程序开始从START执行 ORG 0030H ;程序从0030H单元开始存放
15、 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
16、 , #10 ;每屏字幕扫描显示10次LOOP0: MOV R3 , #32 ;总共扫描32列 CLR P3.2 ;移位存放器74LS595锁存信号无效为0 MOV R5,#00H ;列序号送存放器,从第0列开始显示SCAN1: MOV R1,#00H ;偏移量初值为0LOOP1: MOV R4,#2 ;每列显示数据有两字节,每次发送一字节,发两次LOOP2: MOV A,R1 ;偏移量存放器内容送A MOVC A,A+DPTR ;取字模数据送A MOV SBUF,A ;A中内容送串行口输出 JNB TI,$ ;检查数据是否已发送完,没发送完,继续等待 CLR TI ;发送完毕,清串行口中断标
17、志 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单元置初值5DL1: MOV 61H , #20 ;61H单元置初值20DL2: DJNZ 61H , DL2 DJNZ 60H , DL1 ;软件延时,让一列数据的显示维持一点时间 INC R5 ;列编号加1
18、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,00
19、H ;天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
20、,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,00HTABLE2:;hDB 00H,00
21、H,00H,00H,30H,04H,7FH,0FCH,DB 0FFH,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH,01H,DB 0FCH,00H,04H,00H,00H,00H,00H ;nDB 00H,00H,00H,00H,03H,04H,03H,0FCH,DB 03H,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH,DB 01H,0FCH,00H,04H,00H,00H,00H,00H ;iDB 00H,00H,00H,00H
22、,00H,00H,00H,00H,00H,DB 00H,00H,04H,03H,04H,1BH,0FCHDB 1BH,0FCH,1BH,0FCH,00H,04H,00H,04H,00H,DB 00H,00H,00H,00H,00H,00H,00H ;eDB 00H,00H,00H,00H,01H,0F0H,03H,0F8H,DB 06H,0CCH,0CH,0CCH,0CH,0CCH,0CH,0CCHDB 0CH,0CCH,0CH,0CCH,0CH,0CCH,06H,0CCH,DB 03H,0C8H,01H,0C0H,00H,00H,00H,00H4 Proteus仿真 本课程设计仿真利用pro
23、teus仿真步骤如下: 1选择设计图纸的到小 2选取仿真所需的元器件 选取元器件的方式是,单击元器件放置按钮“P。 3把元器件放到图纸的适宜位置,进行布线。 4编辑窗口连接端子 5分别对各元器件的属性值进行设置,单击按钮,进行电气检测,查看接线是否合理,说明硬件电路已经顺利的完成。 6双击单片机,将用伟福编译成功的程序烧进单片机。单击proteus中的play进行仿真。本课程设计电路仿真图如图7所示: 图7:16*32点阵显示仿真图附汉字仿真效果图:附字母仿真效果图:5 心得体会 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起
24、来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。在设计中遇到了很多专业知识问题,最后在熊老师的辛勤指导下,终于游逆而解。此次课程设计,学到了很多课内学不到的东西,比方独立思考解决问题,出现过失的随机应变,和与人合作共同提高,都受益非浅。同时,在陈老师的身上我们学也到很多实用的知识,在此我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!6 参考文献 1、张义和 陈敌北编著?例说8051?人民邮电出版社 2、周越主编?单片机技术实验实训教程?中国水利水电出版社 3、周越主编?单片机应用技术?中国水利水电出版社 4、李全利编?单片机原理及应用技术?高等教育出版社 5、李忠国 陈刚编著?单片机应用技能实训?人民邮电出版社 6、赵建领编著?Protel电路设计与制版宝典?电子工业出版社 7、郭振民丁红主编?电子设计自动化EDA?中国水利水电出版社 8、周润景?Proteus在MCS-51&ARM7系统中的应用?电子工业出版社仅供学习参考