点阵式汉字显示屏设计课程实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机课程设计》
题目:点阵式汉字显示屏设计
系别:计算机与信息工程学院
专业:物联网工程
班级:15物联网
学号:**********
******
指导老师:***
完成日期:2017年5月31日
目的:设计一个可以显示1234的显示电路,并利用单片机实现。
要求:系统主要由下列部分组成:显示电路、驱动电路、控制电路和按键电路。由于行数较多,使用译码器74HC154可以节约单片机的I/O口,再经反相器74HC04驱动到相应的行线,实现行驱动电路;列驱动电路:选择8片74HC595作为16×64点阵LED显示器的数据锁存器。(可显示汉字“努力学习单片机”等内容)
单片AT89C51的Pl.0~Pl.3和Pl.7脚接芯片74HC154的A~D和El脚,实现行控制;P2.4~P2.7接按键,实现显示方式控制;单片机的Pl.6Pl.7、P3.0和P3.1接芯片74HC595的MR、STCP、DS和STCH引脚,实现列控制。
硬件原理图:
1.写移位寄存器74LS595:WRITE_595
移位寄存器74LS595在这里实现的功能就是将IO口:HC595_DAT(P1.7)的写入移位寄存器,串行转并行。
从图二的时序图可以清楚看出程序只需往SER(程序定义为HC595_DAT,括号内为程序定义,下同)管脚写一位的数据,并通过SRCLK (HC595_SCK)的每个上升沿,就可以依次把一位的数据写到数码管的a,b,c,…管脚,可以想象为了输出8位的数据给数码管,必须依次把显示码的八位依次写进移位寄存器即可。
图2 74LS595时序图图 3 程序流
程图
程序说明:
;实现的功能:把RAM"30H"(范围0:F)(TAB_NUM)内容查表得到显示码,输出到HC595_DAT(P1.7)并写入移位寄存器,串行转并行
//入口条件:RAM"30H"。(TAB_NUM)
只要调用此程序,就可以把TAB_NUM内容输出到数码管的管脚a,b….
2.静态显示
静态显示的思想比较简单,是验证上一个程序WRITE_595能否成功的方式。同时作为键值显示的子程序。
基本的思想就是把想要显示的数字写进TAB_NUM,调用WRITE_595程序,然后设置P0低4位(数码管的位选管脚)全高,就可以显示了。
3.动态显示
动态显示的算法思想就是每次只显示一位的数码管,其余数码管的位选关闭,不断的轮训,利用余辉就可以是4位数码管显示不同的数字。
程序说明:
;实现的功能:把TAB_NUM1,2,3,4的数输出到P0口显示
//标号:DONGTAI1 功能:动态显示0-F子程序
只要往TAB_NUM1,2,3,4里面写要显示的4个字节数据,就可
以分别显示到对应的数码管。
图5 轮训示意图图6 动态显示流程
图
数码管程序资源说明
占用资源意义或数量
TAB_NUM,TAB_NUM1,TAB_NUM2,TAB_NUM3,TAB_NUM4
存放显示的数字(ram 里面的30H-34H)
HC595_SCK,HC595_RCK,HC595_RST,HC595_DAT
595控制端口
(P0.4- P0.7)
SEG0 ,SEG1,SEG2 ,SEG3((P0.0- P0.3))数码管位选端口
4.LED点阵显示器的扫描驱动
LED显示屏驱动电路的设计应与所用控制系统相配合。驱动通常分为动态扫描型及静态锁存型驱动二大类。本文以动态扫描型驱动电路的设计为例来进行分析。动态扫描型驱动方式是指显示屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作,来使每行LED的点亮时间占总时间的1/16。只要每行的刷新速率大于50 Hz,利用人眼的视觉暂留效应,人们就可以看到一幅完整的文字或画面。
AT89S52单片机有四个I/O口(P0、P1、P2、P3),每个I/O 口有8位,如果都采用并行输出,显然不能满足要求,因此,本设计
中的行扫描驱动采用并口输出,而场扫描驱动采用串口输出。
1 行扫描驱动
由于16x64点阵显示器有16行,为充分利用单片机的接口,本电路中加入了一个4-16线译码器74LS154,其输入是一个16进制码,解码输出为低态扫描信号,它们的管脚示意图如图4所示。把74LS154的G1和G2引脚接地,然后以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出,即会有16路输出。
如果一行64点全部点亮,则通过74LS154的电流将达640 mA,而实际上,74LS154译码器提供不了足够的吸收电流来同时驱动64
个LED同时点亮,因此,应在74LS154每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大,本文选用的是达林顿三极管TIP127。这样,74LS154某一输出脚为低电平时,对应的三极管发射极为高电平,从而使点阵显示器的对应行也为高电平。
2 场扫描驱动
本系统场扫描驱动电路的设计可用串入并出的通用集成电路74HC595来作为数据锁存。74HC595是一个八位串行输入三态并行输出的移位寄存器,其管脚见图4所示,其中SI是串行数据的输入端,RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟,Q'H
是串人数据的输出,G是对输人数据的输出使能控制,QA~QH为串入数据的并行输出。从SI口输入的数据可在移位寄存器的SCK脚上升
沿的作用下输入到74HC595中。并在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,这样,当G为低电平时,数据便可并行输出。为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口
P1.4~P1.7来分别输出串行数据、移位时钟SCK、存储信号RCK和并行输出的使能信号G。
为了消除电源电压的波动及行扫描管压降(第一行点亮的点
数不同,将引起管压降的变化,从而影响通过LED管的电流)的变化对LED显示屏亮度的影响,设计时可采用列恒流驱动电路,可选用三极管8550和外围元件构成列恒流驱动电路,并通过调整100 kΩ可调电阻使三极管处于放大状态,同时将集电极电流调整为10 mA,从而使点亮对应点阵时通过LED的电流不变。
3 扫描显示工作过程
将8片74HC595进行级连,可共用一个移位时钟SCK及数
据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全部移入74HC595中,此时还将产生一个数据
锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,
使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大
或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭
就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,
同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二
行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。