单片机课程设计点阵汉字显示
- 格式:doc
- 大小:445.50 KB
- 文档页数:23
摘要单片机是计算机技术、大规模集成电路技术和控制技术的综合产物。
经过30多年的发展历程,单片机应用已十分广泛和深入。
所以可以毫不夸张地说,任何设备和产品的自动化、数字化和智能化都离不开单片机。
现在,凡是电脑控制的设备和产品,必有单片机嵌入其中。
这一切表明,单片已成为人类生活中不可或缺的助手。
随着单片机应用的日益广泛,利用单片机控制汉字显示屏被广泛地应用与汽车报站器,广告屏等领域。
本文详细介绍了基于51单片机的LED显示屏控制系统的显示原理,对16*16点阵汉字进行显示,显示屏由4个8*8的LED点阵模块组成一个16*16点阵LED。
系统仿真利用PORTEUS仿真软件和KEIL软件的联调对LED点阵显示屏系统进行调试。
关键词:LED点阵显示屏单片机PROTEUS仿真目录摘要 (1)1 硬件设计 (1)1.1设计框图及介绍 (1)1.2 51系列单片机简介 (2)1.3 LED点阵介绍 (5)1.4 LED显示方式 (6)1.5 硬件电路 (8)2 软件设计 (10)2.1 程序流程图 (10)2.2 程序代码 (11)3.主要芯片介绍 (14)3.1 8051系列的单片机 (14)3.2 74HC154 (16)4 PROTEUS仿真 (18)5心得体会 (20)1 硬件设计1.1设计框图及介绍LED点阵总体框图如图1.1所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个51CUP和一些外围电路。
在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体、以及它的行和列的各个驱动电路。
由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。
另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。
接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。
可通过扫描输出口的控制实现颜色的转换。
图1.1 点阵显示的总体框图1.2 51系列单片机简介单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的基本结构见图1.2。
图1.2 8051单片机的基本结构8051是MCS-51系列单片机的一个产品。
MCS-51系列单片机是Intel公司推出的通用型单片机,8051单片机系列指的是MCS-51系列和其他公司的8051衍生产品。
这些衍生品是在基本型基础上增强了各种功能的产品。
这些产品给8位单片机注入了新的活力,给它的开发应用开拓了更广泛的前景。
8051系列的内部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。
(1)中央处理器8051的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。
算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。
ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP 中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写为A。
B寄存器在乘法指令中用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。
程序状态字PSW是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。
PSW的格式如下所示,其各位的含义是:CY:进位标志。
有进位/错位时CY=1,否则CY=0。
AC:半进位标志。
当D3位向D4位产生进位/错位时,AC=1,否则AC=0,常用于十进制调整运算中。
F0:用户可设定的标志位,可置位/复位,也可供测试。
RS1、RS0:四个通用寄存器组选择位,该两位的四种组合状态用来选择0~3寄存器组。
OV:溢出标志。
当带符号数运算结果超出-128~+127范围时OV=1,否则OV=0。
当无符号数乘法结果超过255时,或当无符号数除法的除数为0时OV=1,否则OV=0。
P:奇偶校验标志。
每条指令执行完,若A中1的个数为奇数时P=1,否则P=0,即偶校验方式。
控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DPTR和程序寄存器PC等。
单片机是程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程:从程序存储器中取出指令送指令存储器IR,然后指令译码器ID进行译码,译码产生一系列符合定时要求的微操作信号,用以控制单片机的各部分动作。
8051的控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。
这些控制信息的使用专门的控制线,诸如PSEN、ALE、EA以及RST,也有一些是和P3口的某些端子合用,如WR和RD就是P3.6和P3.7,他们的具体功能在介绍8051引脚是一起叙述。
(2)存储器组织8051单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机。
这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROM或RAM,访存时用同一种指令,这种结构称为普林斯顿型。
8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。
8051片内有256K数据存储器RAM和4KB的程序存储器ROM。
除此之外,还可以在片外扩展RAM和ROM,并且各有64KB的寻址范围。
也就是最多可以在外部扩展2*64KB存储器。
8051的存储器组织结构如图2.3所示。
图 1.3 8051存储器组织结构64K字节的程序存储器(ROM)空间中,有4K字节地址区对于片内ROM 和片外ROM是公用的,这4K字节地址是0000H~FFFH。
而1000H~FFFFH地址区为外部ROM专用。
CPU的控制器专门提供一个控制信号EA用来区分内部ROM和外部ROM的公用地址区:当EA接高电平时,单片机从片内ROM的4K字节存储器区取指令,而当指令地址超过0FFFH后,就自动的转向片外ROM 取指令。
当EA接低电平时,CPU只从片外ROM取指令。
程序存储器的某些单元是保留给系统使用的:0000H~0002H单元是所有执行程序的入口地址,复位以后,CPU总是丛0000H单元开始执行程序。
0003H~002AH单元均匀地分为五段,用做五个中断服务程序的入口。
用户程序不应进入上述区域。
8051的RAM虽然字节数不很多,但却起着十分重要的作用。
256个字节被分为两个区域:00H~7FH时真正的RAM区,可以读写各种数据。
而80H~FFH 是专门用于特殊功能寄存器(SFR)的区域。
对于8051安排了21个特殊功能寄存器,每个寄存器为8位,所以实际上128个字节并没有全部利用。
内部RAM的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接用R0~R7,对特殊功能寄存器,也是直接使用其名字较为方便。
8051内部特殊功能寄存器都是可以位寻址的,并可用“寄存器名.位”来表示,如ACC.0,B.7等。
1.3 LED点阵介绍8×8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。
对于点阵型LED显示可以采用共阴极或共阳极,本系统采用共阳极,其硬件电路如图1.1所示。
当行上有一正选通信号时,列选端八位数据为0的发光二极管便导通点亮。
这样只需要将图形或文字的显示编码作为列信号跟对应的行信号进行逐次扫描,就可以逐行点亮点阵。
只要扫描速度大于24Hz,由于扫描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的图形或文字。
8×8点阵LED结构下图1.5所示。
图1.4 8×8点阵外观及引脚图图1.5 8*8 LED点阵结构1.4 LED显示方式汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
为了降低成本,使用了四块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,如图2.10所示。
在这里仅做了四个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。
图1.6 四块8×8的LED点阵组成16×16的LED点阵LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;….第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以致影响到LED的亮度。
采用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一行的列数据。
为了达到重叠处理的目的,列数据的显示就需要有锁存功能。
对于列数据准备来说,它应能实现串入并出的移位功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
LED点阵显示模块进行的方法有两种:(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。