单片机控制LED点阵显示器_第1页
单片机控制LED点阵显示器_第2页
单片机控制LED点阵显示器_第3页
单片机控制LED点阵显示器_第4页
单片机控制LED点阵显示器_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 1 引言自单片机出现至今,单片机技术已走过了近20年的发展路程。纵观20年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片

2、机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在单片机在农业上也有了很多的应用。综上所述,我们可以把单片机的发展历史划分为四阶段:第一阶段(19761978年):低性能单片机的探索阶段。以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。主要用于工业领域。第二阶段(19781982年):高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。这类单片

3、机的应用范围较广,并在不断的改进和发展。第三阶段(19821990年):16位单片机阶段。16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征。例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等。第四阶段(1990年):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。LED就是light emitting diode ,发光二极管的英文缩写,简称LED。它是一种通过控制半导体发

4、光二极管的显示方式,其大概的样子就是由很多个通常是红色的发光二极管组成,靠灯的亮灭来显示字符。用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕LED电子显示屏是随着计算机及相关的微电子、光电子技术的迅猛发展而形成的一种新型信息显示媒体。它利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,在短短的十来年中,迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED显示屏主要包括发光二极管构成的阵列、驱动电路、控制系统及传输接口和相应的应用软件等,其中驱动电路设计的好坏,对LED显

5、示屏的显示效果、制作成本及系统的运行性能起着很重要的作用。所以,设计一种既能满足控制驱动的要求,同时使用器件少、成本低的控制驱动电路是很有必要的。本文就常规型驱动电路的设计作些分析设计出电路图。LED显示屏驱动电路的设计,与所用控制系统相配合通常分为动态扫描型驱动及静态锁存型驱动二大类。以下就动态扫描型驱动电路的设计为例为进行分析:动态扫描型驱动方式是指显示屏上的“4行、8行、16行”等发光二极管共用一组列驱动寄存器。通过行驱动管的分时工作,使得每行LED的点亮时间占总时间的1x,只要每行的刷新速率大于50 Hs,利用人眼的视觉暂留效应、人们就可以看到一幅完整的文字或画面。常规型驱动电路的设计

6、一般是用串入并出的通用集成电路芯片如74HC595或MCNu94等作为列数据锁存,以小功率NPN三极管如8050为列驱动,而以PNP三极管如TIP127等作为行扫描管。2 单片机简介2.1单片机的发展历史及其分类电子计算机的发展经历了从电子管、晶体管、集成电路到大规模集成电路共四个阶段,即通常所说的第一代、第二代、第三代和第四代计算机。现在广泛使用的微型计算机是大规模集成电路技术发展的产物,因此它属于第四代计算机,而单片机则是微型计算机的一个分支。从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展:一个是向着高速度、大容量、高性能的高档微机方向发展;而另一个则

7、是向稳定可靠、体积小和价格廉的单片机方向发展。但两者在原理和技术上是紧密联系的。单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O口电路等主要微型机部件,集成在一块芯片上。虽然单片机只是一块芯片,但从功能和组成上,它已具有了计算机的属性,为此它称为单片微型机。单片机有很多的特点,主要表现在:体积小、功耗低、价格廉、控制功能强、应用现场环境恶劣等等。MCS-51是一个单片机系列产品,具有多种芯片型号。具体说,按其内部资源配置的不同,MCS-51可分为两个子系列和4种类型,如表2-1所示:表2-1 MCS-51系列单片

8、机分类资源配置子系列片内ROM形式片内ROM容量片内RAM容量定时器/计数器中断源无ROMEPROME2PROM51子系列80318051875189514KB128B2×16552子系列80328052875289528KB256B3×166按资源配置数量,MCS-51系列分为51和52两个子系列,其中51子系列是基本型,而52子系列则是增强型,以芯片型号的最末位数字的“1”和“2”作标志。52作为增强型子系列,由于资源数量的增加,使其芯片的功能也有所增强。例如片内ROM容量从4KB增加到8KB,片内RAM单元数从128字节增加到256字节,定时器/计数器的数目从2个增加

9、到3个,中断源从5个增加到6个等。单片机内部程序存储器(ROM)的配置共有:不含有内部程序存储器(写为“无”或“ROM less”)、掩模型只读存储器(写为“ROM”或“Mask ROM”)、紫外线擦除可编程只读存储器(写为“EPROM”或“Otp ROM”)、电擦除可编程存储器(写为“E2PROM”或“Flash ROM”)4种类型,所对应的(51子系列)芯片名称依次为:80631、8051、8751和8951。到目前为止,尽管计算机科学和技术得到了充分的发展,但计算机的体系结构仍然没能突破有计算机的开拓者、数字家约翰.冯.诺曼最先提出来的经典体系结构框架,即一台计算机是由运算器、控制器、存

10、储器、输入设备以及输出设备共五个基本部分组成的。微型机是这样,单片机也不例外。图2-1 MCS-52 单片机系统结构框图因此我们要从计算机五个基本组成部分的观点来理解单片机的系统结构,所不同的只是单片机是把那些作为控制应用所必需的内容,包括运算器、控制器、少量的存储器、最基本的输入/输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。2.2单片机的结构特点1.片内的RAM采用寄存器结构形式,这样可以提高存取的速度;2.在存储器结构上,严格的将程序存储器ROM和数据存储器RAM在空间上分开;3.它的引出管脚一般都设计成多功能的;4.增加了一个全双工的串行接口,以扩充I/O口和外

11、接同步输入和输出设备;5.有21个特殊功能寄存器;6.有丰富的指令系统,内部设置了可以位寻址的位地址空间。 2.3 MCS-52单片机芯片内部逻辑结构1.中央处理器(CPU)中央处理器简称CPU,是单片机的核心,完成运算和控制操作。按其功能,中央处理器包括运算器和控制器两部分电路。2.运算器电路运算电路时单片机的运算部件,用于实现算术和逻辑运算。运算电路以ALU为核心,基本的算术和逻辑运算均在其中进行,包括加、减、乘、除、增量、减量、十进制调整、比较等算术运算,与、或、异或等逻辑运算,左、右、移位和半字节交换等操作。运算和操作结果的状态由状态寄存器(PSW)保存。3.控制器电路控制电路时单片机

12、的指挥控制部件,保证单片机各部分能自动而协调地工作。单片机执行指令是在控制电路的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到系统的各个部件去进行相应的操作。这就是执行一条指令的全过程,执行程序就是不断重复这一过程。4.内部数据存储器内部数据存储器包括RAM(256 x8)和RAM地址寄存器等。80C52芯片中共有256个RAM单元。5.内部程序存储器内部程序存储器包括ROM(8Kx8)和程序地址寄存器等。80C52共有8KB掩膜ROM,用于存放程序和原始数据。因此称之为程序存储

13、器,简称“内部ROM”。6.定时器/计数器出于控制应用的需要,80C52共有三个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。7.并行I/O口MCS-52共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。8.串行口MCS-52单片机有一个全双公的串行口,以实现单片机和其它数据设备之间的串行数据传送。该串行口功能较强,即可作为全双工异步通信收发器使用,也可作为同步移位器使用。9.中断控制系统MCS-52单片机的中断功能较强,以满足控制应用需要。80C52共有6个中断源,全部中断分为高级和低级共两个优先级别。10.时钟电路MCS-52

14、芯片的内部有时钟电路,但石英晶体和微调电容需外接,时钟电路为单片机产生时钟脉冲序列,典型的晶振频率为12MHZ。11.位处理器单片机主要用于控制,需要有较强的位处理功能,因此位处理器是它的必要组成部分,在一些书中常把位处理器称为布尔处理器。位处理器以状态寄存器中的进位标志位C为累加器,可进行置位、复位、取反、等于“0”转移、等于“1”转移且清“0”以及C可寻址位之间的传送、逻辑与、逻辑或等位操作。位处理操作也是通过运算器实现的。必须特别指出,位处理器是单片机的重要内容,因为它是单片机实现控制功能的保证。12.总线上述这些部件都是通过总线连接起来,才能构成一个完整的单片机系统。总线结构减少了单片

15、机的连线和引脚,提高了集成度和可靠性。从上述内容可以看出,虽然MCS-52只是一个芯片,但“麻雀虽小五脏俱全”,作为计算机应该具有的基本部件在单片机中几乎都包括,因此,实际上它已经是一个简单的微型计算机系统了,应当按计算机系统的概念来理解单片机。 3 硬件系统设计3.1将要实现的功能要求设计一个室内用32×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。3.2方案论证从理论上说,不论图形还是文字,只要控制组成这些图形或文字的各个点所在位置相对应的LED期间发光,就可

16、以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。32×16的点阵共有512个发光二极管,显然单片机没有这么多端口,按8位的锁存器来计算,32×16的点阵需要512/8=64个锁存器。这个数字很庞大,因为我们仅仅是32×16的点阵,在实际应用中的显示屏往往要大得多,在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。具体就32×16点阵来说,把所有

17、同1行的发光二极管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;.第32行之后,又重新燃亮第行。反复轮回。当这样的轮回速度足够快(每秒次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形了。采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按位一个字节的形式顺序排放。显示时要把一行中个列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方

18、式时,从控制电路到列驱动器的线路数量很大,相应的硬件数目很多。当列数很多时,并行传输的方案是很不可取的。采用串行输出的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重

19、叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能,对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图3-1为显示屏电路实现的结构框图。列驱动器单 片 机电源 LED显示点阵 行驱动器 图3-1 显示屏电路框图3.3系统硬件电路的设计硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。单片机采用89S

20、52或其兼容系列的芯片,采用24MHZ或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口与行驱动器相连,送出行选信号;P3口则用来发送控制信号。P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。32×16点阵显示屏的硬件原理图如图3-2所示:图3-2 32×16点阵显示屏的硬件原理图单片机P1口输出的行号经74LS154译码后产生32条行选通信号线,再经过驱动器驱动对应的行线。一条行线上要带动16列的LED进行显示,按每一LED期间20mA电流计算,16个LED同时发光,需要320mA电流,选用三极管8550作为

21、驱动管可满足要求。3.4主要芯片介绍3.4.1正向驱动器74LS245及其应用74LS245是正向驱动器,他具有8位同步数据通信总线,其功能为:1.输入缓冲及抗噪声干扰。2.2方式同步数据总线通信。3.输入两极高速终止效果。4.ESD大于3500V。图3-3 74LS245它具备两种工作方式,我们可以通过控制他DIR 及E管脚的逻辑电平从而控制其工作方式如表3-1所示: 表3-1真值表INPUTOUPUTEDIRLL总线B流向总线ALH总线A流向总线BH×隔离状态H:代表高电平L:代表低电平×:代表忽略工作方式一:管脚E为低电平而管脚DIR为高电平时,数据输出方向是由A口流

22、向B口。工作方式二:管脚E和管脚DIR均为高电平时,数据输出方向是由B口流向A口。在本电路中选取了其工作方式一,也就是将数据从A口经放大在B口输出。从表3可知74LS245的工作电压为4.55.5V,正常工作温度为-55125度。本文选用74LS245来替代三极管放大作用,在功能相同的情况下一方面节省了线路版空间,使元件更加整齐。另一方面,使电路的焊接工作带来很大便利。表3-2符号参数最小典型最大单位VCC支持电压544.555.5V744.7555.25TA元件运行温度范围54-5525125度7402570I OH最大输出电流54.74-3mA54-1274-15I OL最小输出电流541

23、2mA74243.4.2 416线译码器 功能:1.74154进行高速缓存和解码处理的译码器。2.将4位编码转变为彼此互斥的16位编码。3.通过不同输入控制16位编码数据输出的分配实现其复用功能。4.输入半导体单一化系统设计。5.高电压,低阻抗输出。6.完全适用于绝大多数的TTL及MSI电路。图3-4 74LS154管脚图通过对其管脚图及真值表进行观察不难看出,G1,G2为74LS154的片选端,也就是说当G1和G2同为低电平时74154,可以正常工作。除此之外的另外3种情况74154的16位输出均为高电平。74154的情况下,当A,B,C,D输入都为低电平时,其16位输出中0脚的输出为低电平

24、其他各脚均为高电平,当A为低电平,B,C,D分别为高电平时,1管脚输出为低电平而其他管脚均为高电平按此规律如图3-4所示,当A,B,C,D输入都为高电平时,其16位输出中的15脚输出为低电平其他各脚均为高电平。利用它的扩展功能,能够解决89C51在本电路中口线不足的难题。74LS154是本电路的重要元器件之一。表3-3 74LS154真值表输入输出G1G2DCBA0123456789101112131415LLLLLLLHHHHHHHHHHHHHHHLLLLLHHLHHHHHHHHHHHHHHLLLLHLHHLHHHHHHHHHHHHHLLLLHHHHHLHHHHHHHHHHHHLLLHLLH

25、HHHLHHHHHHHHHHHLLLHLHHHHHHLHHHHHHHHHHLLL HH LHHHHHHLHHHHHHHHHLLLHHHHHHHHHHLHHHHHHHHLLHLLLHHHHHHHHLHHHHHHHLLHLLHHHHHHHHHHLHHHHHHLLHLHLHHHHHHHHHHLHHHHHLLHLHHHHHHHHHHHHHLHHHHLLHHLLHHHHHHHHHHHHLHHHLLHHLHHHHHHHHHHHHHHLHHLLHHHLHHHHHHHHHHHHHHLHLLHHHHHHHHHHHHHHHHHHHLLH××××HHHHHHHHHHHHHHH

26、HHL××××HHHHHHHHHHHHHHHHHH××××HHHHHHHHHHHHHHHH3.4.3 32×16 LED数码显示屏32×16 LED数码显示屏是由8块8×8LED数码管分两排拼凑而成,数码管为共阳极,是由64个发光二极管组合而成,以4×4的内部结构图为例,如图3-5所示:图3-5 4×4的LED内部结构图当0.1.2.3四列中其中任何一列选通(为低电平)那么那一列所在的四行A.B.C.D如有高电平输入,它所对应的二极管就会导通。所以按照这种原理,就可

27、以用单片机的P1口经过两个74LS154扩展出32位低电平选通端,再通过单片机的P3口输出高低电平将发光二极管导通,通过逐列扫描法拼凑出想要实现的字符。一般地,发红光的LED每段流过5MA的平均电流,就可以有较满意的亮度,7MA电流会更亮些,10MA以上也不会再亮多少。但长期运行于10MA以上会缩短其寿命。最大电流平均值不得超过30MA。LED显示器允许的反向最大值为5V,此时的反向电流一般小于10UA。小尺寸的LED显示器每段只有一个发光二极管,其正向压降约为1.5V。一般最大不大于2V。大尺寸的LED显示器每段可能由数个发光二极管串联,每段压降也要增大。3.4.4系统核心单片机部分- AT

28、89S52单片机AT89S52有内部RAM,可以作为各种数据区使用,内部闪电存储器存放LED电子显示屏的控制程序。 AT89系列单片机是ATMEL公司生产的。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52和8751/52。它物美价廉,深受用户欢迎。与87C51相比,AT89系列的优越性在于,其片内闪电存储器的编程与擦除完全用电实现;数据不易挥发,可保存10年;编程/擦除速度快,全4K字节编程只需时3s,擦除时间约用10ms;AT89系列了实现在线编程;也可借助电话线进行远距离编程。AT89S52是一种低功耗、高性能内含8K字节闪电存

29、储器(Flash Memory)的16位CMOS微控制器。这种器件系以ATMEL高密度不挥发存储技术制造,与工业标准MCS-51指令系统和引脚完全兼容。片内闪电存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如,MP-100这样一种经济型的编程器,它支持通用EPROM等各种存储器、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列52单片机的编程。ME5103和ME5105仿真器支持AT89系列所有器件的调试、仿真和编程。AT89S52的结构框图如图3-6所示: P0.0 P0.7 P2.0 P2.7 图3-6 AT89S52结构框图AT89C52具有下列主

30、要性能:1.8KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)2.全静态工作:0Hz24MHz3.三级程序存储器保密4.256 X 8字节内部RAM5.32条可编程I/O线6.3个16位定时器/计数器7.6个中断源8.可编程串行通道片内时钟振荡器另外,AT89S52是用静态逻辑来设计的,其工作频率可下降到0 Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停

31、,只保存片内RAM中的内容,直到下一次硬件复位为止。主电源引脚1.Vcc 电源端2.GND 接地端外接晶体引脚XTAL1和XTAL21.XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。2.XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。3.控制或与其它电源复用引脚RST、ALE/PROG、/PSEN和/EA/Vpp(1)RES 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使

32、单片机复位。(2) ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定

33、禁止ALE位无效。(3) /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89C51/LV51由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(4) /EA/Vpp 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000H FFFFH),则/EA端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存/EA端的状态。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。在Flash存储器编

34、程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。输入/输出引脚 P0.0P0.7、P10.P1.7、P2.0P2.7 和P3.0P3.71.P0端口(P0.0P0.7) P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。2.P1端口(P1.0P1.7) P1是一个带有内部上拉电阻的8

35、位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序验证时,P1接收低8位地址。3.P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的

36、外部数据存储器(如执行MOVX DPIR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序验证期间,P2也接收高位地址和一些控制信号。4.P3端口(P3.0P3.7) P3 是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在AT89S5

37、2中,P3端口还用于一些专门功能,这些兼用功能见表3-4Flash存储器的编程和程序校验:AT89S52单片机内部有一个8K字节的Flash PEROM。这个Flash存储阵列通常是处于已擦除状态(既存储单元的内容为FFH),随时可对它进行编程。编程接口可接收高电压(12V)或低电压(Vcc)的允许编程信号。低电压编程方式可很方便地对AT89S52内的用户系统进行编程;而高电压编程方式则可与通用的EPROM编程器兼容。表 3-4 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中断1) P3

38、.4T0 ( 定时器0的外部输入) P3.5T1 (定时器1的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通) 在对Flash编程和程序验证时,P3还接收一些控制信号。图3-7AT89S52的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的PEROM程序存储器写入任何一个非空字节,都必须用片擦除方式将整个存储器的内容清除。对Flash存储器编程编程前,必须按照表5和图7建立好地址、数据和相应的控制信号。编程单元的地址加在P1端口和P2端口的P2.0P2.3(11位地址为0000H0FFFH),数据从P0端口输入。引脚P2.6、

39、P2.7和P3.6、P3.7的电平选择见表2。/PSEN应保持低电平,而RST应保持高电平。/EA/VPP是编程电源的输入端,按要求加入编程电压。ALE/PROG端输入编程脉冲(应为负脉冲信号)。编程时,采用420 MHz的振荡器。对AT89S52编程的步骤如下:1.在地址线上输入要编程单元的地址。2.在数据线上输入要写入的数据字节。3.激活相应的控制信号。4.在采用高电压编程方式时,将/EA/VPP端的电压加到12V。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加一个ALE/PROG编程脉冲。改变编程单元的地址和要写入的数据,重复步骤ae,直到全部文件编程完毕。每个字节写入周期

40、是自动定时的,通常不大于1.5ms。数据查询方式图 3-8 Flash编程方式AT89S52单片机用数据查询方式来检测一个写周期是否结束。在一个写周期期间,如果想读出最后写入的哪个字,则读出数据的最高位(P0.7)是原来写入字节最高位的反码。写周期一旦完成后,有效的数据就会出现在所有输出端上,这时可开始下一个写周期。一个写周期开始后,可在任何时间开始进行数据查询。 图3-9 Flash编程 图 3-10 程序的校验图3-11 Flash编程和校验的波形(高电平编程方式)4 软件设计显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可

41、把显示屏的软件系统分为两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。4.1刷新频率的计算及驱动程序流程图进入中断 定时器赋初值读取行号并增1送新行显示数据 消隐 切换显示数据送新的行号、打开显示 退出中断图4-1 显示驱动程序流程图显示驱动程序在进入中断后首先要对定时

42、器T0重新赋初值,以保证显示屏刷新频率的稳定,1/16扫描显示屏的刷新频率(桢频)计算公式如下:刷新率(帧频)=1/16×T0溢出率 =1/16×f(osc)/12×(65536-t0)其中f(osc)为晶振频率,t0为定时器T0处值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图9显示驱动程序(显示屏扫描函数)流程图4.2系统主程序流程图 开始

43、系统初始化“卷帘出”系统效果“上滚屏”显示效果“右跑马”显示效果“卷帘入”显示效果图4-2 系统主程序流程图系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示两个汉字,停留约1s;接着向上滚动显示“预祝第八届挑战杯圆满成功 欢迎各位领导莅临指导模块式多功能实现装置”32个汉字,停留约1s;再向右跑马显示“预祝第八届挑战杯圆满成功 欢迎各位领导莅临指导模块式多功能实现装置”32个汉字,然后以“卷帘入”效果隐去汉字。由于单片机没有停机指令,所以可以设置系统程序不断地循环执行上述显示效果。图4-2系统主程序的流程图。5 调试及性能分析LED显示屏硬

44、件电路只要期间质量可靠,引脚焊接正确,一般无需调试即可正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示效果刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率以及对应的定时器T0初值。表5-1 显示屏刷新率(帧频)与T0初值关系表(24MHz晶振)刷新率/Hz255062.57585100120T0初值0xEC780xF63C0xF8300xF97E0xFA420xFB1E0xFBEE从理论上来说,24HZ以上的刷新率就能够看到连续稳定的显示,刷新率越高,显示越稳定,同时刷新率越高,显示驱动程序占用的CPU时间越多。实验表明,在目测条件下刷

45、新率40HZ以下的画面看起来闪烁较严重,刷新率50HZ以上的基本觉察不出画面闪烁,刷新率程序自行分析。这个方案设计的32×16点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形和文字。结论本设计报告主要介绍了用单片机实现的汉字显示屏的软件设计方法。系统介绍了该电路的硬件构成和软件工作过程,系统以AT89S52为核心,主要采用中断控制系统,结合所学的单片机的知识,实现系统的功能要求。设计中很好的使软、硬件相结合,虽然还存一些问题但产品基本上达到了设计的要求。在设计过程中

46、,通过大量的查阅资料,认真研究教材,并向指导老师请教很多问题,我也深知自己的毕业设计还不是很完美,存在一定的不足,但是整个过程使自己对单片机有了更为深刻的理解,在做软件时,仔细的分析硬件电路,画出程序流程图,培养了我的耐性和刻苦钻研的精神。参考文献1 何立民.MCS-51系列单片机应用系统设计与接口技术 .北京航空航天大学出版社,19902 任涛等.闪速存储器数据及应用简明速查手册.电子工业出版社,19973 何立民.单片机应用技术选编.北京航空航天大学出版社,20004 张毅刚等.MCS-51单片机应用设计.哈尔滨工业电子出版社,19965 邬宽明.单片机外围器件实用手册.北京航空航天大学出

47、版社,19986 张凯.LED介绍完全手册.北京航空航天大学出版社,20007 张友德等.单片微型机原理应用与实验,复旦大学出版社,19968 李广弟等.单片机基础,北京航天大学出版社,20079 何立民,单片机高级教程M,北京航天大学出版社,200010 谭浩强,C程序设计,清华大学出版社,199911 谭浩强,C程序设计题解与上机指导,清华大学出版社,199212 张基温等,C语言程序设计教程,高等教育出版社,199213 张齐,杜群贵.单片机应用系统设计技术基于C语言编程M.北京:电子工业出版社,200414 15 附录1:原理图附录2:程序源代码: 以下程序是32×16点阵电

48、子显示屏的源程序,分别采用C语言及汇编语言编写。C程序在Keil uVision2 V2.30(C51.exeV7.0)环境下调试通过。-*/双点阵字符显示 上移动、左移动、逐子移动#include<reg51.h>#include<intrins.h>#define N 32#define DAT P1#define ADDR P3/ P1口接DATA P10接高位-P17接低位/ P3接JP1 P30接U1_/G / P3接JP1 P31接U2_/G/ P3接JP1 P30接A/ P3接JP1 P30接B/ P3接JP1 P30接C/ P3接JP1 P30接D /

49、P3接JP1 P36接U3_/E / P3接JP1 P37接U4_/E code unsigned char aN*32=0x00,0x00,0x23,0x00,0x2B,0x06,0x2F,0xFE,0x3F,0xFC,0x33,0x80,0x23,0x82,0x60,0x03,0x2F,0xF6,0x2C,0x0C,0x3F,0xF8,0x2F,0xC8,0x2C,0x0C,0x2F,0xF6,0x60,0x06,0x00,0x00,/预0x00,0x00,0x08,0x60,0x08,0xC0,0x69,0xFE,0x2F,0xFE,0x0C,0xC2,0x00,0x46,0x3F,0x

50、0C,0x23,0xF8,0x23,0xE0,0x23,0x00,0x23,0xFE,0x23,0x02,0x3F,0x02,0x00,0x0E,0x00,0x04,/zhu0x00,0x00,0x08,0x02,0x3A,0x22,0x76,0xE6,0x66,0xA4,0x3E,0xAC,0x3E,0xA8,0x26,0xB0,0x0F,0xFF,0x3E,0xA0,0x66,0xA0,0x26,0xA6,0x3F,0xA4,0x2B,0xBC,0x20,0x00,0x00,0x00,/di0x00,0x00,0x00,0x04,0x00,0x1C,0x00,0x78,0x03,0xE0,

51、0x3F,0x80,0x38,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x3F,0xC0,0x01,0xF0,0x00,0x38,0x00,0x1C,0x00,0x0C,0x00,0x00,/ba0x00,0x00,0x00,0x0E,0x7F,0xFC,0x7F,0xE0,0x68,0x00,0x69,0xFE,0x69,0x24,0x69,0x24,0x69,0x24,0x6B,0xFC,0x6B,0xFC,0x69,0x24,0x69,0x24,0x79,0xFE,0x01,0xFE,0x00,0x00,/jie0x00,0x00,0x0C,0x40,0x0

52、C,0xC2,0x7F,0xFE,0x0C,0x80,0x09,0xC2,0x1E,0x66,0x06,0xCC,0x7F,0xF8,0x7F,0xC0,0x00,0x00,0x7F,0xFE,0x04,0xC6,0x1C,0x66,0x10,0x4E,0x00,0x00,/tiao0x00,0x00,0x01,0xFC,0x01,0xFC,0x7F,0x98,0x09,0x98,0x09,0xFC,0x0B,0xFE,0x0A,0x06,0x7E,0x04,0x7F,0xCC,0x06,0xF8,0x24,0x7C,0x35,0xC6,0x15,0x06,0x04,0x0C,0x00,0x00,/zhan0x00,0x20,0x08,0x70,0x09,0xC0,0x7F,0xFE,0xFF,0xFE,0x09,0x80,0x29,0xB0,0x20,0x60,0x21,0xC0,0x27,0x80,0x3F,0xFE,0x38,0x00,0x21,0x80,0x20,0xC0,0x20,0x70,0x00,0x20,/bei0x00,0x00,0x7F,0xFE,0x40,0x02,0x40

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论