基于单片机的LED显示屏的动态显示Word格式.docx
《基于单片机的LED显示屏的动态显示Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的LED显示屏的动态显示Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
8255芯片的工作方式是在微机原理介绍的。
三极管和74LS154的工作原理也分别在模拟和数子电路里介绍过。
通过本设计不仅把以前学过的知识重新温习,而且在查阅课外资料时还有好多芯片都是以学过的芯片为基础,并且在其基础上改进和完善的。
通过这次毕业设计使我在学校学习的理论知识和实际应用有机地结合起来,同时也能培养我独立思考、勇于创新的科学态度和钻研精神,为我将要踏上工作岗位做一次提前的锻炼。
2系统总体分析
2.1显示部分
显示部分是本次设计最核心的部分,我先对LED8*8点阵显示进行选择然后再其改基础上扩展成LED16*16。
对于LED8*8点阵显示有以下两种方案:
静态显示,将一帧图像中的每一个二极管的状态分别用0和1表示,若为0,则表示LED无电流,即暗状态;
若为1则表示二极管被点亮。
若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画。
对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。
动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。
动态显示方式,可以避免静态显示的问题。
但设计上如果处理不当,易造成亮度低,闪烁问题。
因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。
动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。
通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感。
由于静态显示方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。
而动态显示可以避免静态显示的问题,只是在设计时应注意合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。
且动态显示易于制作和理解,又能巩固所学知识,达到毕业设计的目标。
我采用动态显示。
2.3电源模块选择
采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。
点阵系统要悬挂在墙上,电池总量大,使用会有较大安全隐患。
采用一片LM7805三端稳压器,耗电电流为100Ma左右的电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。
基于以上分析,我决定采用采用LM7805三端稳压器电源作为系统电源。
2.4工作原理
利用单片机进行LED汉字显示平设计与制作是利用单片机控制技术,编写程序,通过程序控制LED的显示,显示所要显示的内容。
技术线路为通过程序控制AT89C51芯片输出高低电平,高低电平控制分别控制LED的亮和灭,最终达到所要显示的内容。
在显示电路中,主要靠按键来实现各种显示要求的选择与切换。
本设计介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。
同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
我们把行列总线接在单片机的IO口,然后把扫描代码送入总线,就可以得到显示的汉字了。
但是若将LED点阵的行列端口全部直接接入89C51单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。
因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74LS154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。
考虑到P0口必需设置上拉电阻,我们采用4.7kΩ排电阻作为上拉电阻。
2.5总体设计
有上述工作原理,我画出来该系统的框图。
设计总体框图如图:
图2-1系统框图
3系统硬件设计
本设计采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74LS154)、16×
16LED点阵5部分组成,如图所示。
图3-1硬件电路图
3.1AT89C51芯片的介绍
AT89C51是一种带4kB闪烁可编程可擦除只读存储器(FalshProgrammableandErasableReadOnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL公司高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次写/擦循环,数据保留时间为10年。
他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
其主要参数及引脚图及其功能如下:
主要性能参数:
1)与MCS-51产品指令系统完全兼容
2)4k字节可重擦写Flash闪速存储器
3)1000次擦写周期
4)全静态操作:
0Hz—24MHz
5)三级加密程序存储器
6)128*8字节内部RAM
7)32个可编程I/O口线
8)低功耗空闲和掉电模式
9)6个中断源
图3-2AT89C51引脚图
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储器单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏极开路双向1/0口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在Flash编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高.
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接出4TTTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口管脚被外部拉底,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在Flash编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在Flash编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用做对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用做外部存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H—FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET:
当/EA端保持高电平时,此间内部程序存储器。
在Flash编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2: