16X16 LED点阵 论文正文.docx
- 文档编号:30119757
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:30
- 大小:394.62KB
16X16 LED点阵 论文正文.docx
《16X16 LED点阵 论文正文.docx》由会员分享,可在线阅读,更多相关《16X16 LED点阵 论文正文.docx(30页珍藏版)》请在冰豆网上搜索。
16X16LED点阵论文正文
目录
第一章绪论2
1.1设计课题背景2
第二章硬件设计4
2.1设计框图及介绍4
2.2电路分析4
2.3点阵电路原理图5
2.4LED点阵介绍5
2.5LED显示方式6
2.6设计作品元件清单8
第三章软件设计9
3.1单片机延时子程序9
3.2C语言程序10
3.3取模软件的使用18
3.4调试18
总结20
附录21
1、主要芯片介绍21
1.1AT89S5221
1.274LS15424
1.374HC59525
致谢27
参考文献27
第一章绪论
1.1设计课题背景
单片微型计算机(singlechipmicrocomputer)简称单片机,是大规模集成电路技术发展的产物,是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机主要应用于测量和控制领域。
单片机具有体积小、功能强、重量轻、抗干扰能力强、对环境要求不高,价格低廉、可靠性高、使用灵活、开发较为容易等优点,在计算机应用领域中发挥着极其重要的作用。
在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
所以研究LED显示有实用的意义。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。
LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:
亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
现代LED的发展很快,很多研究领域非常已经深刻,实际情况是:
很多相关的知识已经远远超出我们在校学生的能力范围,所以在此只是简单的研究一下用单片机驱动的LED显示移动的汉字。
目的有三:
一是亲手制作一个简单实用的显示文字的LED点阵;二是通过制作LED点阵增强对LED点阵的了解和应用,以及复习巩固单片机知识;三是增强了同学和老师之间的友谊。
汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。
不论显示图形还是文字,都是控制与组成这些图形
或文字的各个点所在位置相对应的LED器件发光。
通常事先把需要显示的图形文字转换成点阵图形,在按照显示控制的要求以一定的格式形成显示数据。
对于只控制通断的图文显示屏来说,每个LED发光器件占据数据中的1位(1bit),在需要该LED器件发光的数据中相应的位填1,否则填0。
当然,根据控制电路的安排,相反的定义同样时可行的。
这样依照所需显示的图形文字,按显示屏的各行各列逐点填写显示数据,就可以构成一个显示数据文件。
显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。
文字的点阵格式比较规范,可以采用现行计算机通用的字库字模。
组成一个字的点阵,其大小也可以有16×16、24×24、32×32、48×48等不同规格。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。
因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。
图文显示屏的颜色,有单色、双色、和多色几种。
最常用的是单色图文屏。
单色屏多使用红色或橘红色或橙色LED点阵单元。
双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。
换句话说,对应于每种颜色都有自己的显示矩阵。
显示的时候,各颜色的显示点阵是分开控制的。
事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。
每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。
为了吸引观众增强显示效果,可以有多种显示模式。
最简单的显示模式是静态显示。
与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够动的。
按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。
产生不同显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。
例如,按顺序调整行号,可以使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;刷新的时间控制,要考虑运动图形文字的显示效果。
刷新太慢,动感不显著;刷新太快了,中间过程看不清。
一般刷新周期可控制在几十毫秒范围之内。
第二章硬件设计
2.1设计框图及介绍
LED点阵总体框图如下图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个52CUP和一些外围电路。
在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体、以及它的行和列的各个驱动电路。
由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
由列译码器给出的列选通信号,从第一列开始,按顺序依次对各列进行扫描(把该列与电源的一端接通)。
另一方而,根据各行锁存的数据,确定相应的行驱动器是否将该行与电源的另一端接通。
接通的行,就在该列该列点燃相应的LED;未接通的行所对应的LED熄灭。
图2.1.1点阵显示的总体框图
2.2电路分析
该电路主要将单片机发送来的输出点阵数据,通过锁存器芯片扩展的I0口,来控制LED点阵的16个列线端。
本设计中用的是1片4/16译码器74LS154、74HC595对LED点阵的16行进行扫描。
在送每一行的数据到LED点阵前,先把数据分别送到2个74HC595,再将数据一起送到LED点阵的各列。
2.3点阵电路原理图
图2.3.1点阵电路原理图
2.4LED点阵介绍
8×8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。
本设计是一种实用的汉字显示屏的制作,制作的是单色点阵。
考虑到元器件的易购性,使用4个8×8的点阵发光二极管模块,组成了16行16列的发光点阵。
实际使用时可以根据原理自行扩充显示的字数。
对比下面的8×8单色点阵和8×8双色点阵可以看出,其实8×8双色点阵就是两块8×8单色点阵组合在一起的。
要实现用两种颜色显示,只要在电路的设计中适当的连线就可以了。
8×8单色点阵LED结构分别如下图所示:
图2.4.18×8点阵外观及引脚图
图2.4.28×8单色点阵内部图
2.5LED显示方式
汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
为了降低成本,使用了4块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,图2.5.1所示。
在实际的使用中可以自行的扩展显示的汉字,下面是介绍汉字显示的原理。
图2.5.116×16的LED点阵
LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;….第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以致影响到LED的亮度。
采用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一行的列数据。
为了达到重叠处理的目的,列数据的显示就需要有锁存功能。
对于列数据准备来说,它应能实现串入并出的移位功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
LED点阵显示模块进行的方法有两种:
(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):
此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。
(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):
此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。
能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。
2.6设计作品元件清单
表2.6.1设计作品元件清单
元件名称
数量
电阻1K
16
电阻4.7K
5
电阻20Ω
16
三极管8550
16
晶振12MHz
1
电容10U/10V
1
电容30P
2
电容47u/10v
1
LED8*8
4
触点按钮
1
芯片AT89S52
1
芯片74LS154
1
芯片74HC595
2
IC座
3
PCB板
1
9V电源
1
5V稳压管
1
第三章软件设计
3.1单片机延时子程序
延时程序在单片机编程中使用非常广泛,也很重要,在本毕业设计的程序中用到了延时子程序,所以在此详细的叙述一下。
在弄清延时程序指令的用法之前,要清楚的了解延时程序的基本概念,机器周期和指令周期的区别和联系、相关指令的用法等。
我们知道程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时的功能。
例如在本设计中,行向的扫描要控制每行的扫描时间,还有所有的字移动有一定的时间间隔,而在所有的字移动一遍结束的一瞬间到下一遍移动开始的一瞬间要有延时,这时的延时可以和移动的时间相同以保持移动的连贯性,也可以不同作为每次从头开始的停顿,在上述就可以通过延时程序来完成。
3.1.1.机器周期和指令周期
(1)机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12个时钟振荡周期,也就是说如果51单片机采用12MHz晶振,那么执行一个机器周期就只需要1μs;如果采用的是6MHz的晶振,那么执行一个机器周期就需要2μs。
(2)指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。
在51单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。
除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。
也就是说,如果51单片机采用的是12MHz晶振,那么它执行一条指令一般只需1~2微秒的时间;如果采用的是6MHz晶振,执行一条指令一般就需2~4微秒的时间。
以12MHZ晶振为例,指令周期、机器周期与时钟周期的关系是:
指令周期:
CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。
时钟周期:
也称为振荡周期,一个时钟周期=晶振的倒数。
MCS-51单片机的一个机器周期=6个状态周期=12个时钟周期。
MCS-51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12×(1/12000000)=1μs。
了解以上概念后,那么可以依据单片机器件手册中89C51的指令执行周期和其所用晶振频率来完成需要精确延时时间的延时程序。
3.1.2.延时指令
在单片机编程里面并没有真正的延时指令,从上面的概念中我们知道单片机每执行一条指令都需要一定的时间,所以要达到延时的效果,只须让单片机不断地执行没有具体实际意义的指令,从而达到了延时的效果。
(1)数据传送指令MOV
数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。
如:
MOVR7,#80H ;将数据80H送到寄存器R7,这时寄存器R7里面存放着80H,就单这条指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。
(2)空操作指令NOP
空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。
(3)循环转移指令DJNZ
循环转移指令功能是将第一个数进行减1并判断是否为0,不为0则转移到指定地点;为0则往下执行。
如:
DJNZR7,KK;将寄存器R7的内容减1并判断寄存器R7里的内容减完1后是否为0,如果不为0则转移到地址标号为KK的地方;如果为0则执行下一条指令。
这条指令需要2个机器周期。
循环转移指令(DJNZ)除了可以给定地址标号让其跳转外,还可以将地址标号改成$,这样程序就跳回本指令执行。
例如:
DJNZR7,$;R7内容减1不为0,则再次执行本指令;为0则往下执行,当R7的值改为10时,则执行完该条程序所需的时间为2*10=20μs。
利用以上三条指令的组合就可以比较精确地编写出所需要的延时程序。
3.2C语言程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitrck=P2^0;
ucharcodeLED[39][32]={
//--曾--
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x0F,0xFE,0xEE,0x82,0xAD,0xAA,0x6B,0xAA,0xEF,0xAA,0x0F,0xAA,0xEF,0xAA,0x6B,0x82,0xAD,0xFE,0xEE,0xFE,0x0F,0xFF,0xFF,0xFF,0xFF},
//--余--
{0xFE,0xFF,0xBF,0x7F,0xDD,0xBF,0xED,0xDF,0xF5,0xEF,0xFD,0xB7,0xFD,0xBB,0x00,0x3C,0xBD,0xBB,0xDD,0xB7,0xF5,0xEF,0xED,0xDF,0xDF,0xBF,0xBF,0x7F,0xFE,0xFF,0xFF,0xFF},
//--森--
{0xBF,0xFF,0xDD,0xFF,0xED,0xFF,0xF5,0xBB,0x00,0x5B,0xF5,0xEB,0xED,0xF3,0xDF,0x00,0xED,0xF3,0xF5,0xEB,0x00,0x5B,0xF5,0xBB,0xED,0xFF,0xDD,0xFF,0xBF,0xFF,0xFF,0xFF},
//--广--
{0xFF,0xFF,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xF9,0xFF,0xFA,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xF0,0x03,0xCF,0xFF,0xBF,0xFF},
//--东--
{0xFF,0xFF,0xFF,0xF7,0xFF,0xF3,0x9E,0xF7,0xCE,0x77,0xF6,0xF7,0xFA,0xF7,0xFE,0xF7,0x80,0x17,0x7E,0xF0,0xBE,0xE7,0xF2,0x97,0xEE,0x77,0xDE,0xF7,0xBF,0xF7,0xFF,0xF7},
//--工--
{0xFF,0xFF,0xDF,0xFF,0xCF,0xFB,0xDF,0xF9,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFF},
//--程--
{0xFF,0xFF,0xBE,0xFF,0xB6,0x81,0xB6,0xBD,0xB6,0xBD,0x80,0xBD,0xB6,0xBD,0xB6,0xBD,0xB6,0x81,0xBE,0xDF,0xBE,0xDD,0xFF,0x5C,0x00,0x01,0xFE,0x5B,0xF9,0xDB,0xF7,0xDB},
//--职--
{0xFF,0xFF,0x9F,0xFF,0xCE,0x03,0xF2,0xFB,0xFE,0xFB,0xFE,0xFB,0xF2,0xFB,0xCE,0x03,0xB7,0xFF,0xF7,0xFD,0x00,0x01,0xF7,0x6D,0xF7,0x6D,0xF0,0x01,0xF7,0xFD,0xF7,0xFD},
//--业--
{0xFF,0xFF,0xBF,0xCF,0x9F,0x3F,0xBC,0xFF,0xBB,0xFF,0x80,0x00,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x80,0x00,0xBF,0xFF,0xB8,0x7F,0xBF,0x9F,0xBF,0xEF,0xBF,0xFF,0xBF,0xFF},
//--技--
{0xFF,0xFF,0xBF,0xFF,0x3F,0xF7,0xBE,0x77,0xD9,0x77,0xD7,0x77,0xEF,0x00,0xD7,0x77,0xB9,0x77,0x7E,0x77,0x7F,0xEF,0xFE,0xEF,0x80,0x00,0x7D,0xEF,0xBB,0xEF,0xFB,0xEF},
//--术--
{0xFF,0xFF,0xF7,0xDF,0xE7,0xDF,0xF7,0xDF,0xFB,0xD3,0xFD,0xDB,0xFE,0xDD,0xFF,0x5F,0x00,0x00,0xFF,0x5F,0xFE,0xDF,0xFD,0xDF,0xFB,0xDF,0xF7,0xDF,0xEF,0xDF,0xEF,0xDF},
//--学--
{0xFF,0xFF,0xFB,0xCF,0xFB,0xAE,0xFB,0xE9,0xFB,0xEF,0xFB,0x6F,0xFA,0x6E,0xF9,0x69,0x81,0x6F,0x7B,0x6F,0xBB,0x67,0xFB,0x6B,0xFB,0x6C,0xFB,0xEF,0xFB,0xCF,0xFB,0xBF},
//--院--
{0xFF,0xFF,0x8F,0xF3,0xBE,0xEB,0xBE,0xDB,0xBE,0xDB,0xC0,0xDB,0xFE,0xD9,0xF0,0xDA,0xCE,0xDB,0xBE,0xDB,0x7E,0xF3,0x78,0x69,0xF7,0xA5,0xFB,0xDD,0x00,0x01,0xFF,0xFF},
//--电--
{0xFF,0xFF,0xFF,0xFF,0x8F,0xFF,0xBF,0xF7,0xB8,0x03,0xBD,0xB7,0xBD,0xB7,0xBD,0xB7,0xBD,0xB7,0xC0,0x00,0xFD,0xB7,0xFD,0xB7,0xFD,0xB7,0xFD,0xB7,0xF8,0x07,0xFF,0xFF},
//--子--
{0xFF,0xFF,0xFF,0x7F,0xFF,0x3F,0xFF,0x7F,0xFF,0x79,0xFF,0x75,0xFF,0x6D,0xFF,0x5D,0x80,0x1D,0x7F,0x7D,0xBF,0x7D,0xFF,0x7D,0xFF,0x7D,0xFF,0x7D,0xFF,0x7F,0xFF,0x7F},
//--信--
{0xFF,0xFF,0xFF,0xFB,0xFE,0xD9,0x02,0x4B,0xBA,0xDB,0xBA,0xDB,0xBA,0xD9,0xBA,0xDA,0xBA,0xDB,0x02,0xDB,0xFE,0xDB,0xFF,0xF8,0x00,0x07,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F},
//--息--
{0xFF,0xFF,0x9F,0xFF,0xEF,0xFF,0xFF,0xFB,0x18,0x01,0x7B,0x5B,0x7B,0x5B,0x4B,0x5B,0x6B,0x5B,0x73,0x5A,0x7B,0x59,0x7B,0x5B,0x88,0x03,0xFF,0xFF,0xCF,0xFF,0xBF,0xFF},
//--工--
{0xFF,0xFF,0xDF,0xFF,0xCF,0xFB,0xDF,0xF9,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFF},
//--程--
{0xFF,0xFF,0xBE,0xFF,0xB6,0x81,0xB6,0xBD,0xB6,0xBD,0x80,0xBD,0xB6,0xBD,0xB6,0xBD,0xB6,0x81,0xBE,0xDF,0xBE,0xDD,0xFF,0x5C,0x00,0x01,0xFE,0x5B,0xF9,0xDB,0xF7,0xDB},
//--技--
{0xFF,0xFF,0xBF,0xFF,0x3F,0xF7,0xBE,0x77,0xD9,0x77,0xD7,0x77,0xEF,0x00,0xD7,0x77,0xB9,0x77,0x7E,0x77,0x7F,0xEF,0xFE,0xEF,0x80,0x00,0x7D,0xEF,0xBB,0xEF,0xFB,0xEF},
//--术--
{0xFF,0x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16X16 LED点阵 论文正文 16 X16 LED 点阵 论文 正文