基于单片机的16 16LED点阵显示屏的设计_0

上传人:e****s 文档编号:280388929 上传时间:2022-04-21 格式:DOC 页数:10 大小:27KB
返回 下载 相关 举报
基于单片机的16 16LED点阵显示屏的设计_0_第1页
第1页 / 共10页
基于单片机的16 16LED点阵显示屏的设计_0_第2页
第2页 / 共10页
基于单片机的16 16LED点阵显示屏的设计_0_第3页
第3页 / 共10页
基于单片机的16 16LED点阵显示屏的设计_0_第4页
第4页 / 共10页
基于单片机的16 16LED点阵显示屏的设计_0_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于单片机的16 16LED点阵显示屏的设计_0》由会员分享,可在线阅读,更多相关《基于单片机的16 16LED点阵显示屏的设计_0(10页珍藏版)》请在金锄头文库上搜索。

1、基于单片机的16*16LED点阵显示屏的设计 随着单片机在各个领域的广泛应用,许多用单片机作控制驱动LED显示屏也应运产生。本系统设计使用单片机MCS-51控制扫描方法实现LED点阵显示器的字符的显示,介绍了用单片机进行显示系统开发的方法,单片机软件、硬件调试技术,还有点阵显示驱动扩展的一般方法。1.引言1.1 研究的目的、意义LED因其体积小,耗电量低,亮度及环保等优点而被广泛应用于公共场所的大屏显示上,LED点阵大屏可应用于户外广告,交通导航,大厅公告,比赛的多媒体实时显示等领域。本设计作品的用途正是在于实现大屏显示的核心功能,即汉字的显示,可实际应用于简单的显示系统中,如简单的排队叫号显

2、示屏,电梯显示屏等。通过此次设计将单片机软硬件结合起来对程序进行编辑,校验,锻炼实践能力和理论联系实际的能力。 1.2 本设计所要做的工作为了完成该设计实现,经过考虑论证,决定分为以下几个阶段进行:(1)对课题进行全面的分析,明确系统要实现的功能,大致了解要解决的问题,制定总的设计方案;(2)根据论证设计硬件系统并画出电路图,并根据电路图制电路板;(3)在硬件的根底上设计软件程序;(4)利用仿真器编译软件程序,进行调试仿真;(5)把调试成功的程序利用烧入器烧入到芯片中去;(6)把固化好程序的芯片插入到实际应用系统,投入到实际使用。2系统设计方案2.1系统构成框图1 3 硬件电路设计3.1 主要

3、器件介绍3.1.1 LED点阵LED点阵显示屏采用4个8*8共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图3.1所示。8*8的LED点阵为双色共阳模块,单点的工作电压为正向(Vf)=1.8v,正向电流(if)=8-10MA。静态点亮器件时(64点全亮)总电流为640mA。总电压为1.8v,总功率为1.15w.动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达80-160mA。2 图3.1点阵LED扫描法介绍点阵LED一般采用扫描式显示,实际运用分为三种方式:(1) 点扫描(2) 行扫描(3) 列扫描假设使用第一种方式,其扫描频率必须大于16*64

4、=1024HZ,周期小于1MS即可。假设使用第二和第三种方式,那么频率必须大于16*8=128HZ,周期小于7.8MS即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否那么LED亮度会缺乏。我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是假设将LED点阵的行列端口全部直接接入AT89S52单片机,那么需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P2口,至于列选扫描信号那么是由4-16线译码器74HC154来选择控制,这样一来列

5、选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。汉字扫描显示的根本过程是这样的:通电后由于电阻R1,电容C1的作用,使单片机的RST复位脚电平先高后低,从而到达复位;之后,在C2,C3,X1以及单片机内部时钟电路的作用下,单片机AT89S52按照设定的程序在接口输出与内部汉字对应的代码电平送至LED点阵的行选线,同时在P1.0,P1.1,P1.2,P1.3接口输出列选扫描信号,从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。 3.1.2锁存器74LS37374ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D

6、触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片,其内部结构图如图3.2所示。 3 图3.2 74ls37374HC154管脚图 其逻辑图如图3.4所示: 4 图3.4 74HC154逻辑图其功能表如表3.1所示: 说明: H高电平 L低电平 X任意 表3.1 74HC154功能表 53.2硬件设计思想及电路图3.2.1硬件设计思想由单片机进行处理,并将行列信号分别通过显示驱动输入点阵大屏,控制点阵的显示。1 单片机: 采用AT89S52单片机芯片作为中控,控制LED点阵显示。2显示:考虑到标准地显示一个汉字至少需要16*16LED点阵屏,而我们也只需要实现大屏显示的根

7、本功能,并不需要太大的显示屏,因此决定采用16x16 LED点阵屏显示汉字。3显示驱动:考虑到设计所需端口较多的问题,为减少资源占用,使用74HC154 416译码器作为列驱动芯片,采用74HC373串入并出8位锁存器作行驱动芯片。但由于两种芯片的最大输出电流均不够大虽然74HC373输出电流已经较大了,为让LED显示亮度够强,采用PNP型三极管来进行电流的放大,同时为保护芯片,我们又采用1K电阻来进行限流。3.2.2硬件电路图本设计16X16系统的制作主要在于扩展用户I/O口,最终系统实现的关键在于扫描电路的扩展及程序的编写。系统I/O口的扩展是采用了4-16译码器74HC154来实现的,7

8、4HC154作为16*16系统的列扫描脉冲产生电路,其地址线连接到AT89S52的P1口的低4位上。利用P2口为8个行数据端口传送数据。由于P口的驱动力不强,因此在P2的每个输出端都加上三极管,以加大驱动电流,提高点阵的显示亮度。设计原理图如图3.5所示:6 AT89S52单片机P1口与74HC154的输入端A,B,C,D连接,74HC154的16个输出端与1616LED的列线相连,P2口与行线相连。由于单片机端口输出的电流较小,缺乏以驱动LED。故在LED的每个列线上加上一个三极管,对电流进行放大,如图3.6。通过74HC154对1616LED进行逐列扫描,选中一列时通过P2口选中列即点亮行

9、上的LED,快速的逐列扫描即可实现文字信息显示。由上可知,可采用逐列扫描的方法实现LED的字符显示。图3.8列驱动电路与行驱动电路图 图3.9 点阵显示电路图4.软件设计4.1汉字的点阵显示原理及字库代码获取方法我们先以简单的汉字显示为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。如用8位的AT89S52单片机控制,由于单片机的总线为8位,一个字需要拆分为2个局部,如图4.1所示。 9 为了弄清楚汉字的点阵组成规

10、律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。通过列扫描方法首先显示左上角的第1列的上半局部,显示汉字“龙时,P2.4点亮,由上往下排列,为:P2.0灭,P2.1灭,P2.2灭P2.3灭,P2.4亮,P2.5灭,P2.6灭,P2.7灭。即二进制00001000,转换为十六进制为08h。上半部一列完成后,继续扫描下半部的一列,为了方便,我们仍设计成由上往下扫描,从图4.1可以看到,这一列全部为不亮,即为00000000,十六进制那么为00h。依照这个方法扫描16列,一共扫描32个8位,可以得出汉字“龙的扫描代码为:00H,08H,08

11、H,08H,08H,08H,0FFH,08H0FH,48H,28H,08H,08H,18H,08H,00H00H,00H,02H,06H,30H,0C4H,04H,08H0FCH,24H,44H,84H,04H,04H,3CH,00H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。本系统是设计龙岩学院字体的显示,使用这个方法可以分析出龙岩学院这几个字的代码。4.2 程序流程图软件程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如图4-2和图4-3所示。10 图4-2 主程序流程图11 12 4.3程序清单:COLUMN EQ

12、U P1 ;列扫描信号输出端口ROW EQU P2 ;显示信号输出端口LATCH_H EQU P3.0 ;上锁存信号输出端口LATCH_L EQU P3.1 ;下锁存信号输出端口SCANCODE EQU 0 ;扫描信号SPEED EQU 10 ;0.5s延迟S_TIME_H EQU 0FDH ;2.5ms扫描时间S_TIME_L EQU 0D0H ;2.5ms扫描时间ORG 00H ;程序从0地址开始JMP START ;跳至STARTORG 0BH ;TIMER0中断向量JMP TIMER0 ;跳至TIMER0中断子程序;= START:MOV IE,#10000010B ;设定TIMER0

13、中断MOV TMOD,#1 ;设定TIMER0为MODE1MOV SP,#60H ;移开堆栈指针SETB RS0 ;切换到RB1MOV R0,#20H ;上面局部开始存放地址MOV R1,#30H ;下面局部开始存放地址MOV R2,#16 ; 扫描16列MOV R3,#SCANCODE ;载入扫描码CLR RS0 ;切换回RS0MOV TH0,#S_TIME_H ;设定每列扫描时间MOV TL0,#S_TIME_L ;设定每列扫描时间SETB TR0 ;启动TIMER0MOV DPTR,#TABLE ;将常数指针指向TABLE地址MOV 41H,#4 ;4次加载字型MOV R0,#20H ; 上面局部开始存放地址MOV R1,#30H ;下面局部开始存放地址;= LOOP: CALL LOADING ;加载字型CALL DELAY ;稍等一下CLR CMOV A,DPLADD A,#32MOV DPL,AMOV A,DPHADDC A,#0MOV DPH,AMOV R0,#20H ; 上面局部开始存放地址MOV R1,#30H13DJNZ 41H,LOOP ;跳至LOOP形成一个循环一次写1字 JMP START ;跳至START形成一个循环;=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 经济/贸易/财会 > 经济学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号