LED1616点阵显示实验.docx
- 文档编号:24050084
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:24
- 大小:407.33KB
LED1616点阵显示实验.docx
《LED1616点阵显示实验.docx》由会员分享,可在线阅读,更多相关《LED1616点阵显示实验.docx(24页珍藏版)》请在冰豆网上搜索。
LED1616点阵显示实验
单片机技术课程设计说明书
LED16*16点阵显示实验
专业
电气工程及其自动化
学生姓名
班级
学号
指导教师
完成日期
目录
1.概述2
1.1课题设计的背景2
1.2课程设计的要求3
2.系统方案设定3
2.1系统总体设计3
2.2AT89C51单片机概述4
2.2.1AT89C51单片机的结构4
2.2.2管脚说明4
2.2.3振荡器特性6
2.3驱动显示方式的选择6
2.4数据传输方式7
2.5显示屏控制部分8
3.系统硬件的设计8
3.1系统硬件选择8
3.216*16点阵显示器的设计9
3.3数据存储模块10
3.4数据存储电路设计10
4.系统软件的设计11
4.1系统主程序流程11
4.2数据移位传送模块13
4.3行扫描模块13
4.4串行通信模块13
4.5软件的程序实现13
5总结14
6.参考文献15
附录16
附录一LED16*16点阵控制程序清单17
附录二系统原理图22
LED16*16点阵显示实验
1.概述
1.1课题设计的背景
单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。
单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。
在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。
我们可以开发利用单片机系统以获得很高的经济效益。
更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。
例如,本文所要论述的通过单片机来控制LED点阵显示。
LED是发光二极管英文LightEmittingDiode的简称,是六十年代末发展起来的一种半导体显示器件,七十年代,随着半导体材料合成技术、单晶制造技术和P-N结形成技术的研究进展,发光二极管在发光颜色、亮度等性能得以提高并迅速进入批量化和实用化。
进入八十年代后,LED在发光波长范围和性能方面大大提高,并开始形成平板显示产品即LED显示屏。
LED电子显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上极为先进的显示媒体。
由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼佼者。
在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的发展过程。
随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。
近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发部和宣传等。
目前,对于那些需要显示的信息量不是很示器是比较经济适用的,它可以用单片机控制实现显示字符、数字、汉字和简单图形大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显,可以根据需要使用不同字号、字型。
本文详细介绍了一种低廉的16*16点阵LED显示屏的设计过程。
LED点阵显示屏的构成型式有多种,其中典型的有两种。
一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。
用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。
1.2课程设计的要求
设计目的:
利用单片机并行控制LED点阵显示;掌握单片机与LED点阵块之间接口电路设计及编程。
设计要求:
本文设计的LED点阵显示系统主要实现的功能是利用取模软件建立标准字库,编制程序实现点阵循环左移显示汉字。
系统由硬件和软件两大部分组成.其中硬件部分由AT89C52构成单片机最小应用系统。
2.系统方案设定
2.1系统总体设计
图2-1系统总体设计
如图2-1所示,本产品拟采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、电源、行驱动器、列驱动器、16*16LED点阵5部分组成。
2.2AT89C51单片机概述
2.2.1AT89C51单片机的结构
AT89C51是一种带4KB闪烁可编程可擦除只读存储器(FalshProgrammableandErasableReadOnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次写/擦循环,数据保留时间为10年。
他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
图2-2AT89C51引脚图
2.2.2管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
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:
来自反向振荡器的输出。
2.2.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.3驱动显示方式的选择
方案一:
静态驱动显示方式
同时控制各个发光点亮灭的方法称为静态驱动显示方式,即控制组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果。
16*16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,16*16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16*16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
方案二:
动态扫描显示方式
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16*16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
2.4数据传输方式
LED显示屏的数据传输方式主要有串行和并行两种。
方案一:
串行方式显示。
这种方式可同时显示4个16*16点阵汉字,字符或数字。
点阵显示屏每个单元由16个8*8点阵LED显示模块、行信号选择译码器74HCl38、驱动器74HC245、数据移位寄存器74HC595和行驱动器组成,如图1所示。
单元显示屏可以接收控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示屏可扩展至更多的显示单元,用于显示更多的内容。
如图2-3。
图2-3串行显示逻辑框图
此方案为点阵显示屏系统中比较常用的,所用器件也比较常用,容易买到。
但是它存在一个致命的缺点,就是刷新速度不够快。
如果要驱动64列点阵显示,通用51单片机会比较吃力,出现比较严重的闪烁停滞现象。
而使用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一行的列数据。
为了达到重叠处理的目的,列数据的显示就需要有锁存功能。
对于列数据准备来说,它应能实现串入并出的移位功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
方案二:
并行方式显示。
可以通过锁存器芯片来扩展10口,达到控制LED点阵的64个列线的目的。
方案中运用16片锁存器74HC573来组成8组双缓冲寄存器,驱动LED点阵的8组列线,用4/16译码器74HC595对LED点阵的16行进行扫描。
在送每一行的数据到LED点阵前,先把数据分别送到第一级的8个74HC573,然后再给第二级的8个74HC573送锁脉冲,数据一起输出到LED点阵列中。
而目前普遍采用串行控制技术,显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。
采用这种方式的驱动IC种类较多,不同显示单元之间的联线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也较为容易。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
而从控制电路到列驱动器的数据传输可以采用采用并行方式时,两者之间的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
2.5显示屏控制部分
方案一:
单机工作模式。
采用一个单片机控制实现所有功能,其中包括LED点阵显示屏的刷新显示、模式设定、时间读取、温度检测,以及与上位机的通信等。
只用一个单片机控制点阵显示屏可以使电路大大减化,软件设计方面也容易实现。
但是,将所有功能集成在一起,一片AT89S52单片机处理能力是不够的。
此时,单片机的CPU内部资源已显不足,会导致系统功能欠佳,达不到较好的性能。
方案二:
主从工作模式。
采用主从单片机工作方式来控制整个系统。
其中一个单片机用于控制LED点阵显示,另外一个单片机用于扩展键盘、串口与上位机通信、温度测量、时间读取等工作。
相对单机工作方式,主从工作模式的处理能力大大提高,并且分工明确,执行速度得到很大的提高。
虽然硬件电路以及软件设计方面要求相对高了一些,更涉及到主从单片机通信问题。
但是,为了更好地实现各项性能指标,本设计采用了这种方案。
综上所述,采用串行控制动态扫描方式。
3.系统硬件的设计
本系统采用AT89C52单片机作控制器。
整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。
为了简化显示屏电路,降低成本。
本系统在单片机部分不加字库存储器,而在PC机上编辑汉字和字符显示信息,并将其转换为相应的点阵显示数据。
然后通过串口送给单片机存储并进行显示处理。
3.1系统硬件选择
由图3-1可知此次设计的硬件选择如下:
AT89C51芯片、LED、74LS138、LED的驱动三极管、电阻等一些单片机外围应用电路组成。
图3-1系统硬件框图
3.216*16点阵显示器的设计
采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共2端),LED发光管的另一脚接通用I/O口,控制其亮灭。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
图3-2是一种8*8的LED点阵单色行共阳模块的内部结构图,其单点工作电压矾为1.8V,正向电流露为8~10mA。
当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某一行线为低电平时。
无论列线如何。
对应这一行的点全部为暗。
图3-2共阳8*8点阵显示器内部结构图
用四个8*8点阵显示可构成16*16点阵显示器,其连接方法如图3-3所示。
图3-316*16点阵显示器连接图
图中,将(A)和(B)的8列、(C)和(D)的8列分别对应相连,同时将(A)和(C)的8行、(B)和(D)的8行分别对应相连。
即可形成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16*16点阵显示器,可将这256个点称为一页,这样,显示字符时。
只要对一页中对应的亮灭进行控制即可。
3.3数据存储模块
采用串行EEPROM(如24C256等)存储LED显示屏要显示的信息。
串行EEPROM技术是一种非易失性存储技术,它几乎具有所有类型存储器的优点:
不挥发性、可更新性、高密度、低功耗和高性价比,非常适合应用于各类工业测控系统。
它克服了常用的2816、2817、2864等并行EEPROM器件价格高、体积大、可靠性低(这些器件如不采取措施,在上电、下电时常会丢失数据)等不足,在速度要求不是很高的情况下,该器件是最理想的选择。
3.4数据存储电路设计
数据存储电路由串行EEPROM24C256组成。
24C256是美国CATALYST公司出品的一个1-256K位的支持I2C总线数据传送协议的串行CMOSE2PROM,可用电擦除,可编程自定时写周期(包括自动擦除时间不超过10ms,典型时间为5ms)的串行E2PROM。
该芯片有两种写入方式,一种是字节写入方式,还有另一种页写入方式。
允许在一个写周期内同时对1个字节到一页的若干字节的编程写入。
24C256的引脚排列及引脚功能描述如图3-4和表3-1
图3-424C256的引脚排列图
表3-1引脚功能描述
该存储电路仅由芯片24C256组成,SCL为串行时钟引脚,用于产生器件所有数据发送或接收的时钟。
SDA为串行数据/地址,这是一个双向传输端,用于传送地址和所有数据的发送或接收。
当LED显示屏控制系统工作时,单片机89C51通过读SDA和SCL脚读取24C256中的内容,并将其显示于LED显示屏上。
也可以通过上位机(PC机)将编辑好的数据内容下载到24C256芯片内。
4.系统软件的设计
4.1系统主程序流程
显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
本系统中下位机(单片机89C51)的主要功能就是实现LED显示屏上字样的移位、显示、数据的读取等功能。
其主程序流程如图4-1所示。
4-1主程序流程
4.2数据移位传送模块
点阵屏的列驱动器74HC595为串入并出的移位寄存器,故显示单元的数据需从低位到高位一位一位传送进74HC595里,然后才能驱动点阵屏.
4.3行扫描模块
16*16的点阵屏若逐行扫描,时间可能会超出人眼反应时间,故行扫描采用一个程序周期扫描两行,即第一行和第八行同时扫描的方案,这样可减少时间,保证了点阵屏的正常扫描显示.
4.4串行通信模块
串行通信程序主要是实现与PC机的通信,当通信接收中断标志位RI被硬件置1时,中断开始,有数据从PC机传送到单片机,单片机软件清RI并接收数据,将数据暂存到片内高128字节的RAM里,当存满后,再将数据写进片外数据存储器W29EE011里。
延时一段时间后,继续接收从PC机发送过来的数据,重复之前的工作,直到所有数据接收完毕为止,中断跳出.
4.5软件的程序实现
编译、装载、连续运行程序,点阵显示模块应循环显示“单片机”字样。
具体程序见附录二程序清单。
5总结
虽然本设计只使用了一块16*16LED点阵,电路简单,但是已经包涵了LED显示屏的电路基本原理和基本程序,在设计的过程中应该使显示图形和文字稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
6.参考文献
[1]李忠国.单片机应用技能实训[M].北京:
人民邮电出版社,2006.
[2]先锋工作室.单片机程序设计实例[M].北京:
清华大学出版社,2003.
[3]张毅刚.单片机原理及接口技术[M].哈尔滨:
哈尔滨工业大学出版社,1990.
[4]何立民.单片机应用技术大全[M].北京:
北京航空航天大学出版社,1994.
[5]楼然苗.单片机课程设计指导[M].北京:
北京航空航天大学出版社,2007.
[6]丁元杰.单片微机原理及应用(第3版)[M].北京:
机械工业出版社,2006.
附录
附录一LED16*16点阵控制程序清单17
附录二系统原理图22
附录一LED16*16点阵控制程序清单
编译、装载、连续运行程序,点阵显示模块应循环显示“单片机”字样。
;16*16点阵显示程序清单如下:
ORG0000H
LJMPXB13
;==========点阵扫描子程序====================
X01A:
CLRA;清列值
MOV0EH,A;指向零列
X023:
MOVA,0EH;取列值
CLRC
SUBBA,#10H;减16(十进制数)
JCX0D2;末满16列继续扫描下一列
RET;本次扫描完毕返回主程序
X0D2:
MOV0F0H,#02H
MOVA,0EH
MULAB;当前列值与“2”进行十进制调正
MOV82H,A;调正结果送数据指针DPTR
MOV83H,0F0H
LCALLXB1F;取与当前列对应的扫描代码
MOV20H,A
;=====================
LCALLXB4E;扫描代码送高八位锁存器
;=====================
MOVA,0EH;取列值
MOV0F0H,#02H;当前列值与“2”进行十进制调正
MULAB
ADDA,#01H;调正结果加1送数据指针DPTR
MOVR7,A
CLRA
ADDCA,0F0H
MOV82H,R7
MOV83H,A
LCALLXB1F;取与当前列对应的扫描代码
;====================
PUSHDPH;扫描代码送低八位锁存器
PUSHDPL
MOVDPTR,#0FFE0H
MOVX@DPTR,A
;====================
MOVA,#01H;代码扫描从第一行开始
MOVR6,#00H
MOVR0,0EH;取与当前代码扫描对应的列值
INCR0;列指针加1
SJMPX083
X07E:
CLRC;当前代码扫描对应行的查找
RLCA;行高八位左移一位
XCHA,R6
RLCA;行低八位带进位左移一位
XCHA,R6
X083:
DJNZR0,X07E;不为当前代码扫描对应行返上继续调正
;====================
MOVDPTR,#0FFE2H;当前行码送高八位锁存器
MOVX@DPTR,A
MOVDPTR,#0FFE1H;当前行码送低八位锁存器
MOVA,R6
MOVX@DPTR,A
MOVR6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED1616 点阵 显示 实验