引 言 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。 本设计是4个16×16点阵LED电子显示屏的设计。整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏能显示4个汉字,采用16块8 x 8点阵LED显示模块来组成4个16x16点阵显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。 目 录
第一章 16*16点阵LED电子显示屏设计功能要求设计一个能显示4个16*16点阵图文LED显示屏,要求能显示图形或文字,显示图形或文字应稳定、清晰,图形或文字显示有静止、左移或右移等显示方式。 从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。16x16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。 动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
第二章16*16点阵LED电子显示屏的设计方案2.1 显示模块方案论证四个8×8的点阵构成一个16×16的点阵。行和列的交叉处有一个LED,共由256个LED构成,如果LED的阳极与行相连,而阴极与列相连,那么只要给该LED对应的行以高电平,列以低电平,那么对应的LED就发光。 2.2 数据传输方案论证采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个行驱动器。显示数据通常储存在单片机的储存器中,按8位一个字节的形式顺序排放。显示时,要把一行中各列的数据都传送到相应列的驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image001.giffile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image003.jpg数目多。当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。 解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图2-2为显示屏电路实现的结构框图。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image004.jpg 图2-2 显示屏电路结构框图 第三章16*16点阵LED电子显示屏软硬件的设计3.1 单片机系统及外围电路高的刷新频率,时期显示更稳定。单片机的串口与列驱动器相连,用来显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。P0口和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。16×16点阵显示屏的硬件原理图如图3-1。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image006.jpg 图3-1 16x16的点阵显示屏的硬件原理图3.2 行驱动器由于4点阵显示器有16行,为充分利用单片机的接口,本电路中加入了一个4-16线译码器74LS154,其输入是一个16进制码,解码输出为低态扫描信号,单片机P1口第四位输出的行号经4/6线译码器74LS154译码器后生产16条行选通讯信号线,再经过驱动器驱动对应的线。一条行线上要带动16列*4的LED器件5mA电流计算,128个LED同时发光时,需要640mA的电流,选用三极管8550作为驱动管可满足要求。 3.3 列驱动器列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。如图3-3是集成电路74HC595的结构图。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image007.gif 图3-3 74HC595结构图将8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全 部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。
第四章16*16点阵LED电子显示屏系统程序设计显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。 从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。 4.1 显示驱动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下: 刷频率(帧频)=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image009.gif×file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image011.gif溢出率=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image009.gif×file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image014.gif (4-1) 其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。 然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图4-1为显示驱动程序流程图。
| | file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image015.gif |
图4-1 显示驱动程序流程图4.2 系统主程序本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。 系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“上天下地”这4个汉字及一个图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。 单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。图4-2系统主程序流程图。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image016.gif file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image017.gif
图4-2 系统主程序流程图
4.3 单片机汇编程序 ORG 0000H LJMP START ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI START: MOV 20H,#00H MOV A,#0FFH MOV P1,A MOV P2,A MOV P3,A MOV P0,A CLR P1.6 MOV TMOD,#01H MOV TH0,#0FCH MOV TL0,#18H MOV SCON,#00H MOV IE,#82H MOV SP,#70H LCALL DIS1 MAIN: MOV DPTR,#TAB LCALL MOVDISP MOV DPTR,#TAB LCALL MOVDISP1 AJMP MAIN MOVDISP:MOV R1,#6 DISLOOP:MOV R3,#100 DISMOV:MOV R2,#00H SETB TR0 WAITMOV:JBC 00H,DISMOV1 AJMP WAITMOV DISMOV1:DJNZ R3,DISMOV MOV A,#128 ADD A,DPL MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A DEC R1 MOV A,R1 JZ MOVOUT AJMP DISLOOP MOVOUT:RET MOVDISP1:MOV R1,#255 DISLOOP1:MOV R3,#10 DISMOV2:MOV R2,#00H SETB TR0 WAITMOV1:JBC 00H,DISMOV3 AJMP WAITMOV1 DISMOV3:DJNZ R3,DISMOV2 INC DPTR INC DPTR DEC R1 MOV A,R1 JZ MOVOUT1 AJMP DISLOOP1 MOVOUT1:RET DIS1: MOV R3,#5AH DIS11: MOV R2,#00H MOV DPTR,#TAB SETB TR0 WAIT11:JBC 00H,DIS111 AJMP WAIT11 DIS111: DJNZ R3,DIS11 RET INTT0: PUSH ACC MOV TH0,#0FCH MOV TL0,#18H MOV A,#97 ADD A,DPL MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A MOV A,#0 MOVC A,@A+DPTR MOV SBUF,A WAIT: JBC TI,GO AJMP WAIT GO: MOV A,DPL SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,@A+DPTR MOV SBUF,A WAIT1: JBC TI,GO1 AJMP WAIT1 GO1: MOV R0,#03H MLOOP:MOV A,DPL SUBB A,#31 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,@A+DPTR MOV SBUF,A WAIT2: JBC TI,GO2 AJMP WAIT2 GO2: MOV A,DPL SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,@A+DPTR MOV SBUF,A WAIT3: JBC TI,GO3 AJMP WAIT3 GO3: DJNZ R0,MLOOP SETB P1.7 NOP SETB P1.6 NOP NOP CLR P1.6 MOV A,R2 ORL A,#0F0H MOV R2,A MOV A,P1 ORL A,#0FH ANL A,R2 MOV P1,A CLR P1.7 INC R2 INC DPTR INC DPTR MOV A,R2 ANL A,#0FH JNZ GO4 SETB 00H MOV A,DPL SUBB A,#32 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A CLR TR0 GO4: POP ACC RETI TAB:DB FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF DB FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF DB FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF DB FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF DB FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FC07,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,0000 DB 0000,FDFF,FDFF,FDFF,FDFF,FDFF,0000,FDFF,FDFF,FDFF,FBFF,F78F,EFBF,DFDF,BFEF,7FF0 DB 0000,FDFF,FDFF,FDFF,FDFF,F8FF,FDBF,FDDF,FDCF,FDF8,FDFB,FDFF,FDFF,FDFF,FDFF,FFFF DB EFF7,EFF7,EFB7,EFB7,EFB7,EE00,EFB6,01B6,EFB6,EFB6,EBB4,E7BF,EFBF,DFBF,BFBE,7F80 END
第五章 总结本文设计的是4个16*16的LED图文显示屏,能够在目测的条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等优点。虽然本设计只使用了一块16*16LED点阵,电路简单,但是已经包涵了LED显示屏基本原理个基本程序。 在此次设计中通过查阅大量的相关资料,详细了解LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚的了解LED显示屏与其他显示屏相比较的那些优点,明确了研究目标。遗憾的是由于软件自身的缺陷原因无法完成设计的仿真试验,无法直观看到程序的可行性,对于程序中存在的问题无法直接暴露出来。 通过这次课程设计,重新学习并进一步复习了89C51:熟练掌握word软件的使用。进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力但从中也发现自己存在一些不足之处:对知识的积累还不够,有些问题自己不能够独立解决,对实验操作还要进一步熟练,只有这样才能让自己在在不断的学习中提高自己。
参考文献[1] 郭建江.单片机技术与应用.东南大学出版社. [2] 诸昌钤 编著 :《LED显示屏系统原理及工程技术》.成都:电子科技大学出版社 [3] 张志良 主编 :《单片机原理及控制技术》.北京:机械工业出版社,2005 [4] 李光飞 编著 :《单片机课程设计实例指导》.北京:北京航空航天出版社, [5] 吴金戍,沈庆阳,郭庭吉编著.8051单片机实践与应用.北京:清华大学出版社. [6] 马忠梅,单片机外围电路设计 —北京:北京航空航天大学出版社 2005 [7] 胡汉才,单片机原理与接口技术[M] 北京:清华大学出版社,1995,6
|