《简易电子广告屏的设计.doc》由会员分享,可在线阅读,更多相关《简易电子广告屏的设计.doc(21页珍藏版)》请在三一办公上搜索。
1、简易电子广告屏的设计摘 要 本设计是基于单片机(AT89C51)为核心部件的1616 LED电子广告屏设计。该电子屏可以显示文字,采用4块88点阵LED显示模块来组成1616点阵显示模式。主要介绍了LED点阵显示的硬件设计电路思路、硬件电路各个部分的功能及原理、相应的程序设计等方面的内容,以74HC595作为列驱动器,以三极管作为行驱动器,LED数码管作为字模显示用,具有体积小、硬件少、电路结构简单及易实现等优点。关键词 单片机AT89C51; LED显示屏; 点阵显示1 绪论1.1 课题研究的背景LED(Light Emitting Diode),发光二极管,简称LED,是一种能够将电能转化
2、为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极使整个晶片被环氧树脂封装起来。LED显示屏是一种通过控制半导体发光二极管的亮度的方式来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。由于其像素单元是主动发光的,具有容易控制、低压直流驱动、组合后色彩表现丰富、视角广、工作电压低、功耗小、使用寿命长等优点,因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。LED显示屏可分为单色显示屏、彩色显示屏和彩色灰度显示屏。其中单色
3、显示屏采用标准88单色发光二极管矩阵模块标准组件,一般为红色,可实现各种文字、数据及两维图形。缺点是色彩单调。彩色显示屏采用标准88双基发光二极管矩阵模块,每一像素内有红、绿两个发光二极管,可发出红、绿、黄三种颜色。还可以和各种数据设备连接,实时显示动态数据和广告,具有较好的信息显示效果,是目前使用较为广泛的LED显示屏。彩色显示屏采用标准88双基发光二极管矩阵模块,彩色灰度显示屏层次丰富,表现力极佳,可以显示照片、三维图形、动画、图像及视频等内容,表现效果细腻丰富、逼真感人1。随着近些年来科技的飞速发展,单片机的应用不断深入,以单片机为核心部件的控制系统也是多种多样。利用功能越来越丰富的单片
4、机和操控越来越简单的外部设备,可以实现点阵电子显示屏更加丰富的功能。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全面化方向发展。1.2 课题研究的意义随着生活水平的提高,时代的不断进步,LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,具有众多优势,在市场中得到了广泛的应用,主要应用领域有:信号指示应用,信号照明是LED单色光应用比较广泛也是比较早的一个领域;显示应用,主要包
5、括指示牌、广告牌、大屏幕显示;照明应用,主要有便携灯具,汽车用灯,特殊照明;背光照明,应用于普通电子设备功能显示背光源、笔记本电脑背光源、大尺寸超大尺寸显示器背光源以及投影仪用光源。显然,LED显示已成为城市亮化、现代化和信息化社会的重要标志2。本次课题主要是设计1616的点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。2 系统总体设计方案2.1 方案设计原理 LED阵显示器是由一串发光或不发光的点状显示器按矩阵的方式排列组成的,其发光体是LED发光二极管。只要让某些LED点亮,就可组成数字、字母、图形、汉字等。LED驱
6、动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行发光管的阳极连在一起,把所有同一列发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;直到第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形3。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单
7、片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用串行方式。因为,并行方式从控制电路到列驱动器的线路数量大,相应的硬件数目多。2.2 系统框图本设计用单片机、点阵显示屏等设计1616点阵LED电子显示屏。显示电路采用动态扫描方式进行显示,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器74HC154给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描。另一方面根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列点燃相应的L
8、ED,未接通的列所对应的LED熄灭。当一行的扫描持续时间结 束后,下一行又以同样的方法进行显示。系统的整体方案设计图如图2-1所示。单片机74HC1541616点阵LED74HC595时钟电路复位电路 图2-1 系统电路框图3 系统硬件设计硬件电路大致上由LED显示模块、单片机系统及外围电路、列驱动电路、行驱动电路四部分组成。3.1 单片机部分3.1.1 单片机AT89C51的简介AT89C51是MCS-51系列单片机的典型产品,它是一种带4KB闪烁可编程可擦除只读存储器的低电压、高性能的CMOS 8位微处理器。AT89C51单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(R
9、AM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线4。内部结构如图3-1所示。时钟电路ROM并行接口定时器RAMCPU串行接口中断系统P1 P2 P3 P4TXD RXDINTO INT1T0 T1图3-1 AT89C51单片机内部结构示意图各部分说明如下:(1) 中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。由运算器和控制器构成,其中包括若干特殊功能寄存器(SFR)。(2) 数据存储器(RAM) 片内
10、为128B,片外最多可外扩为64KB。片内128B的RAM以高速RAM的形式集成在单片机内,加快单片机运行速度,降低功耗。(3) 程序存储器(ROM)它用来存储程序。AT89C51片内集成有4KB的Flash存储器,如果片内程序存储器容量不够,片外最多可外扩程序存储器至64KB。(4) 定时/计数器AT89C51有两个16位定时器/计数器,以实现定时或计数产生中断用于控制程序转向。定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。两个定时器/计数器都具有定时器和计数器两种工作模式,4种工作方式(方式0、方式1、方式2、方式3)。特殊功能
11、寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态5。(5) 并行输入输出(I/O)口AT89C51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。(6) 中断系统AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。3.1.2 AT89C51的主要特性与MCS-51兼容4KB可编程闪烁只读存储器寿命:1000次写/擦循环数据保留时间:10年全静态工作:024Hz三级程序存储器锁定1288位
12、定时/计数器32位可编程I/O线两个16位定时/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.1.3 AT89C51单片机系统及外围电路 AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。 AT89C51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的断电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在断电模式下,保存RAM的内容并且冻结振荡器,禁止所用
13、其他芯片功能,直到下一个硬件复位为止。单片机的串口TXD、RXD与列驱动器相连,用来显示数据,P3口低4位与行驱动器相连,送出行选信号;P0口空着,在有必要的时候可以扩展系统的ROM和RAM。单片机、晶振电路、复位电路以及电源构成单片机最小系统,晶振电路与单片机相连构成时钟电路,它向单片机提供一个基准的震荡定时信号,复位电路使CPU及系统各部件处于确定的初始状态,并从初态开始工作,电源电路为后面的电路提供+5V的电压。AT89C51最小系统结构如图3-2所示6。 图3-2 AT89C51最小系统结构图各引脚功能如下:(1) 电源 VCC 供电电压 GND 接地(2) 时钟电路引脚XTAL1:接
14、外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。(3) 控制线1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。 ALE功能:用来锁存P0口送出的低8位地址,从而实现数据与低位地址的复用。 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。2) PSEN:外ROM读选通信号,低电平有效。3) RST/VPD:复位/备用电源。 RST(Reset)功能:复位输入。当振荡器复位器件
15、时,要保持RST脚两个机器周期的高电平时间。 VPD功能:在Vcc掉电情况下,接备用电源。4) EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:当EA保持低电平时,则在此期间访问外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,则在此访问外部存储器。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加12V编程电源Vpp7。(4) I/O线AT89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P0口(P0.0P0.7):漏极开路的8位准双向口,每脚可吸收
16、8个TTL门电流。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第8位。在Flash存储器编程时,P0口作为原码输入口,当flash存储器进行检验时,P0口输出原码, P0口外部被拉高。P1口(P1.0P1.7):准双向I/O口,具有内部上拉电阻,P1口缓冲器能接收输出4个TTL门电流。在flash存储器编程和检验时,P1口作为第8位地址接收。P2口(P2.0P2.7):准双向I/O口,具有内部上拉电阻,P2口输出地址的高8位。在flash存储器编程和检验时接收高8位地址信号和控制信号。P3口(P3.0P3.7):准双向I/O口,具有内部上拉电阻,可接收输出4个TTL门电流。P3口
17、除了作为一般的I/O口使用之外,每个引脚都具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 (5) P3口第二功能P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0(低电平有效)P3.3 INT1 外部中断1(低电平有效)P3.4 T0 定时计数器0P3.5 T1 定时计数器1P3.6 WR 外部数据存储器写选通(低电平有效)P3.7 RD 外部数据存储器读选通(低电平有效)3.2 列驱动器部分列驱动电路由集成电路74HC595构成,硅结构的CMOS器件,兼容低电压TTL电路。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位
18、寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的8。3.2.1 74HC595的引脚图及功能图3-3 74HC595引脚结构图74HC595的外形及内部结构如图3-3所示,它是带锁存功能的传入并出的移位寄存器,为三态输出,引脚功能如表3-1所示。 表 3-1 引脚功能符号引脚描述QAQH15,17并行数据输出GND8地QH19串行数据输出,芯片级联信号SRCLR10主复位(低电平)SRCLK11移位寄存器时钟,上升沿有效RCLK12锁存寄存器时钟输入,上升沿有效CE13输出使能,低电平有效SER14串行数据输入VCC16电源3.2
19、.2 74HC595构成的驱动电路及原理74HC595的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SER是串行数据的输入端。引脚SRCLK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SER的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCLK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚CE是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。SRCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SRCLK和RCLK两个信号是互相独立的,所以
20、能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QAQH,最高位QH1可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH1受输出锁存器的打入控制,所以还从输出锁存器前引出QH1,作为与移位寄存器完全同步的级联输出。具体的连接过程如下:74HC595的14管脚接芯片AT89C51的P3.0,11管脚接P3.1,10管脚接P2.5,12管脚接P2.6,QH1与级联的芯片16管脚相连。74HC595的驱动电路图如图3-4所示。图3-4 74HC595构成的电路图3.3 行驱动器部分单片机P3口低4位输出的行号经一个线译码器74HC154译码后生成16条行选通信号线,再经过驱动器
21、驱动对应的行线。一条行线上要带动16列的LED进行显示,按每一LED器件20 mA电流计算,16个LED同时发光时,需要320 mA电流,选用三极管作为驱动管可满足要求。当选通端G1、G2均为低电平时,译码器处于工作状态,可将地址输入端(A、B、C、D)的二进制编码在一个对应的输出端以低电平译出。否则,译码器被禁止,所有的输出端被封锁在高电平。Y0Y15为译码输出端,输出是低电平有效,即在选通时,每输入一个二进制代码将使对应的一个输出端为低电平,而其它输出端均为高电平的无效信号。连接过程:74HC154的输入端A、B、C、D分别与芯片AT89C51的P3.0、P3.1、P3.2、P3.3管脚相
22、连,输出端Y0Y15与电阻相连。系统的行驱动电路如图3-5 所示9。图3-5 74HC154的引脚图3.4 LED显示模块将LED像素模块按照实际需要大小拼装排列成矩阵,配以专用显示驱动电路、直流稳压电源、软件、框架以及外装饰灯,即构成一台LED显示屏,用来显示文字、图形、动画、行情、视频、录像等各种信息的显示屏幕。LED显示屏是将发光二极管按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描按列控制,也可以按列扫描按行控制。LED显示屏现多采用多88点阵显示单元拼接而成。本文就是使用采用4块88点阵LED显示模块来组成1616点阵10显示模式,以满足汉字显示的要求。汉字显示的
23、原理:我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。用8位的AT89C51单片机控制, 由于单片机的总线为8位,一个字需要拆分为2个部分。 一般我们把它拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。汉字显示图如图3-6所示。图3-6 汉字的显示图在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00p07口。方向为p00到p07 ,显示汉字“大”时,p
24、05点亮,由上往下排列,为p0.0灭,p0.1灭,p0.2灭p0.3灭, p0.4灭, p0.5亮,p0.6灭,p0.7灭。即二进制00000100,转换为16进制为 04h。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h。这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h。依照这个方法,继续进行下面的扫描,一共扫描32个8位, 可以
25、得出汉字“大”的扫描代码为:04H,00H,04H,02H,04H,02H,04H,04H,04H,08H,04H,30H,05H,0C0H,0FEH,00H,05H,80H,04H,60H,04H,10H,04H,08H,04H,04H,0CH,06H,04H,04H,00H,00H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。因为本系统所设计的LED显示屏只能显示一个或几个汉字,如果想要显示多个汉字,就需要多个88点阵模块组成多个1616点阵,当然还需要多个列驱动器级联,这样可以显示更多的文字。3.5 通信系统设计AT89C51单片机具有
26、全双工串行UART通道,支持单片机进行数据的串行传输。除了单片机要与PC机制定通信协议确定发送速率外,还需要解决的问题就是信号电平的问题。RS-232C标准规定了PC机发送数据总线TXD和接收数据总线RXD采用EIA电平,即传送数字“1”时传输线上的电平在-3V-15V之间;传送数字“0”时,传输线上的电平+3V+15V之间。但单片机串行口采用正逻辑TTL电平,即数字“1”时为+5V,数字“0”时为-5V,所以单片机与计算机不能直接相连进行通信,必须将RS-232C与TTL电平进行转换。在通用的电平转换芯片中MAX232系列的芯片以集成度高,+5V电源工作,只需外接5个小电容即可完成电平之间的
27、转换,在该显示系统中,操作人员可以通过它改写程序来控制显示屏显示的汉字等等,电路如图3-7所示。 图3-7 通信系统设计电路图4 系统程序的设计显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示文字、图像或其他信息。根据软件分层次设计的原理,可把显示屏的软件系统分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作,显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现11。4.1 显示
28、驱动程序 显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,116扫描显示屏的刷新率(帧频)计算公式如下:刷新率(帧频)=1/16T0溢出率 =1/16fosc/12(65536to) (4-1) 其中fosc为晶振频率12,to为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。显示驱动程序流程图如图4-1所示,程序见附录1。进入中断
29、定时器赋初值切换显示数据读取行号并增1送新行号、打开显示送新行显示数据消隐退出中断图- 显示驱动程序流程图4.2 显示主程序系统的主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后LED显示屏进入开机状态,转入正常的显示。然后以“上滚屏”效果显示图形,由于单片机没有停机指令,所以可以设置系统程序不断地循环执行上述显示效果13。单元显示屏可以接收来自控制器14(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。系统主程序流程图
30、如图4-2所示,程序见附录1。开始系统初始化循环扫描显示上滚屏显示效果图4-2 系统主程序的流程图5 结论本设计是基于单片机(AT89C51)为核心部件的室内用的1616LED电子广告屏的点阵显示,主要介绍了LED汉字显示屏的硬件电路设计、软件设计等方面的内容,以74HC595作为列驱动器,以三极管作为行驱动器,LED数码管作为字模显示用15。该系统可以实现文字或图像的显示,结果证明,显示屏的各点亮度均匀,文字或图形显示稳定,而且本次设计具有体积小、硬件少、电路结构简单及易实现等优点,对于各种领域的应用具有积极作用。由于时间紧促和自己能力有限,此系统可能存在一些有待探讨和改善的地方,例如会存在
31、广告屏显示的内容或方式与设计的不同的问题。通过这次毕业设计,得到了一次专业知识、专业技能分析的锻炼,同时在单片机的基本原理、单片机应用系统开发过程等方面有了很大的提高,为日后的发展打下了良好的基础。参考文献1 王莹.LED产业的发展概况J.电子世界产品,2009(10):14-21.2 陈丽.浅谈简易LED电子广告牌的M.江苏射阳中等专业学校,2011.3 李仁青.点阵式LED电子显示屏的制作M.电子制作,2002:26-41.4 张振荣,晋明武等.MCS-51单片机原理及应用技术M.北京:人民邮电出版社,2000:64.5 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,2004:4
32、9-70.6 刘坤,郑锋等.51单片机应用系统典型模块开发大全M.北京:中国铁道出版社,2011: 500. 7 邱丽芳,彭志刚.单片机原理与应用M. 北京:人民邮电出版社,2009:5-8.8 周国雄,晏密英.单片机应用系统设计精讲M.北京:中国铁道出版社,2011:80.9 童诗白.华成英.模拟电子技术基础M.北京:高等教育出版社,2006:310 靳桅.基于51系列单片机的LED显示屏开发技术M.北京:北京航天航空大学出版社,2009:12-5111 郭天祥.单片机C语言教程M.北京:电子工业出版社,2012:10-20. 12 刘曙光.LED电子显示屏真彩实现技术J.现代电子技术,20
33、01: 2-813 Nigel Piercy.Market-led Strategic Change.Butterworth-HeinemannJ.2002:11-3514 Steve Winder.Power Supplies for LED Driving.Newnes,M2008: 26-4115 Jacob Millman.ElectronicsJ.McGraw-Hill Pub.Co,2005: 4-21Design of Simple Electronic Advertising ScreenBi Jianlong(College of Physics and Electronic
34、 Information, Dezhou University, Dezhou,253023)Abstract This design is based on single chip microcomputer (AT89C51) as the core component of 16 * 16 LED electronic advertising screen design. The electronic screen can display various characters, using the four 8 by 8 lattice LED display module to for
35、m a 16 x16 dot matrix display mode. Mainly introduces the hardware of LED dot matrix display the function of each part of the design idea, hardware circuit and the principle and the corresponding program design content, with 74 HC595 are needed as the column driver, triode as line drive, LED seven s
36、egment digital tube as the font display use, has small volume, less hardware, circuit structure is simple and easy to implement, etc.Keywords Single chip microcomputer AT89C51; LED display; Dot matrix display 致谢本次论文设计是在我的指导老师曹东燕老师的悉心指导下完成的,在论文完成之际,我要真诚的感谢曹老师对我的鼓励和不懈的支持,在设计的过程中,曹老师在各个方面都给了我无致的教诲和无限的帮
37、助,特别是她严谨的治学态度、深厚的学术素养使我受益匪浅,在此表示我深深的谢意。其次,感谢物理系所有的老师,感谢他们在这四年里对我的关心和悉心栽培,使我掌握了很多知识和各方面的技能,此外,还要感谢在论文设计的过程中同学们对我无言的帮助。最后,感谢我的母校德州学院四年来对我的培养和无限的帮助。再次表示衷心的感谢:谢谢您们! 附 录附录1 程序 *; * *; * 单个1616点阵电子屏字符显示器 *; * AT89C51 12 MHz晶振 *; * 2014.5. 20 LRM *; *;显示字用查表法,不占内存,字符用16 16共阳LED点阵,;效果:向上滚动显示20个字,再重复循环。;Rl:查
38、表偏址寄存器,B:查表首址,R2:扫描地址(从00OFH)。;R3:滚动显示时控制移动速度,单字显示可控制静止显示的时间。;*; 中断入口程序 ;*;ORG 0000H ;复位地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTT0执行ORG 0013H ;外中断1中断程序入口RETI ORG 001BH ;定时器T1中断程序入口RETIORG 0023H ;串行中断程序入口地址RETIORG 002BH ;定时器T2中断入口地址RETI;*; 初始
39、化程序 ;*;*; 主程序 ;*;START: MOV 20H, #00H ;清标志,OOH为第16行开始扫描标志,01 为1帧 ;扫描结束标志MOV A, #0FFH ;端口初始化MOV P1, A MOV P2, AMOV P3, AMOV P0, ACLR P1.6 ;串行寄存器输入打入输出控制位MOV TMOD, #01H ;使用TO作16位定时器,行扫描用。MOV TH0, 0FCH ;1 ms初值(12 MHz)MOV TL0, #18HMOV SCON, #00H ;串口0方式传送显示字节MOV IE, #82H ;T0中断允许,总中断允许MOV SP, #70HMAIN: LC
40、ALL DIS1 ;显示准备,黑屏,1.5sMOV DPTR, #TAB LCALL MOVDISP ;向上滚动显示一页(8个字)INC DPHLCALL MOVDISP ;向上滚动显示一页(8个字)INC DPHLCALL MOVDISP ;向上滚动显示一页(8个字)AJMP MAIN;*; 单字显示子程序 ;*;显示表中某个字DIS1: MOV R3, #5AH ;静止显示时间控制(16 ms *#=1. 6 s)DIS11: MOV R2, #00H ;一帧扫描初始值(行地址从00OFH)MOV DPTR, #TAB ;取表首址MOV R1, #00H ;查表偏址(显示第一个字)SETB
41、 TR0 ;开扫描(每次一帧)WAIT11: JBC 01H, DIS111 ;为1,扫描一帧结束AJMP WAIT11DIS111: DJNZ R3, DIS11RET;*; 扫描程序 ;*;1ms刷新一次,每行显示1sINTT0: PUSH ACCMOV TH0, #0FCH ;l ms初值重装MOV TL0, #18HJBC 00H, GOEND ;16行扫描标志为1,结束INC R1 ;取行右边字节偏址MOV A, R1 MOVC A, A+DPTR ;查表MOV SBUF, A ;串口0方式发送WAIT: JBC T1, GO ;等待发送完毕AJMP WAITGO: DEC R1 ;
42、取行左边字节偏址MOV A, R1MOVC A, A+DPTRMOV SBUF, AWAIT1: JBC T1, GO1AJMP WAIT1GO1: SETB P1.7 ;关行显示,准备刷新NOP ;串口寄存器数据稳定SETB P1.6 ;产生上升沿,行数据打人输出端NOPNOPCLR 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 R1 INC R1 ;下一行数据地址MOV A, R2ANL A, #0FHJNZ GO2SETB 00H ;R2为10H,现为末行扫描,置标志 GO2: POP ACC RE