#基于单片机LED点阵广告屏设计论文完整版Word文件下载.docx
- 文档编号:16977756
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:15
- 大小:213.48KB
#基于单片机LED点阵广告屏设计论文完整版Word文件下载.docx
《#基于单片机LED点阵广告屏设计论文完整版Word文件下载.docx》由会员分享,可在线阅读,更多相关《#基于单片机LED点阵广告屏设计论文完整版Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
8点阵LED的工作原理。
图
(1)为8×
8点阵LED外观及引脚图,其等效电路如图
(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
使用时限流电阻可以放在X轴或Y轴。
而16x16就是在8x8原理的基础上将四块8x8级联而成,如图(3)。
图
(1)8×
8点阵LED外观及引脚图
图
(2)8×
8点阵LED等效电路
图(3)四块8x8点阵LED级联成16x16点阵
2.2、LED点阵的显示文字图形原理
汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的使用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
为了降低成本,使用了四块8×
8的LED点阵发光管的模块,组成了一个16×
16的LED点阵显示屏,如图(3)所示。
在这里仅做了二十五个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。
LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×
16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;
再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;
….第16列之后,又重新燃亮第1列,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
显示数据可通过单片机的P0,,P2口接驱动电路传输到点阵行引脚。
LED点阵显示模块进行的方法有两种:
1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):
此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该列上哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。
(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):
此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。
能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。
本设计使用的是第一种的扫描方法,即水平方向(X方向)扫描。
每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。
一般我们使用的16×
16的点阵宋体字库,即所谓的16×
16,是每一个汉字在纵横各16点的区域内显示的。
汉字库从该位置起的32字节信息记录了该字的
字模信息。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
我们以水平方向(x方向)扫描显示汉字的“杨”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如图下的,如果用8位的AT89S51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。
一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。
在本例中单片机首先显示的是左上角的第一列的部分,即第0列的P00~P07口。
方向为P07到P00,显示汉字“杨”的时候,P00到P02都是灭的,P03亮,因为行接阴极,即二进制11110111,转换为16进制为F7H,如图(4)所示。
上半部分第一列完成之后,继续扫描下半部分的第一列,即从P27向P20方向扫描,从上图可以看到,这一列P2.2亮,其余全部灭,所以代码为11111011,16进制为FBH,然后单片机转向上半部的第二列,除了P03亮,其他的都不亮,即为11110111,16进制为F7H,这一列扫描完成之后继续进行下半部分的扫描,除了P20\P21亮,其他的为不亮,为二进制11111100,即16进制FCH。
按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“杨”的扫描代码为:
F7HFBHF7HFCH37HFFH00H00H
B7HFFH77HFEHF5HF7HBDHDBH;
9DHECH2DHF7HB5HF9H39HBEH
BDH7FH3FH80HFFHFFHFFHFFH;
图(4)显示原理图
由这个原理可以看到,无论显示何种字体或图像,都可以用这种方法来分析出它的扫描代码从而显示在屏幕上。
了解汉字的显示原理之后,那如何得到汉字的字模信息呢?
现在有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库,如图(5)所示的为一种字模生成软件,软件打开后输入汉字,点击“检取”后,十六进制数据汉字代码即可以自动生成,把我们需要的竖排数据复制到我们的程序即可。
图(5)
2.3、点阵的移动
以下以16×
16点阵为例介绍点阵的移动。
要显示一个字符,该字符的点阵数据可以列向(纵向)16点组字,又可以行向(横向)16点组字。
无论哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。
本设计主要采用汉字的左移,所以以下只作左移显示的解释。
显示字符的左右移动
(1)列扫描方式左移动:
列向组字显示字符水平方向的移动(左滚动)
在这里有两个方法:
方法1:
延长数组法。
将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。
每扫描一帧取8个数据显示,下一帧取数要在数组中后移一个数取数。
循环一遍扫16帧。
可以假想有两块16×
16的点阵模块(共32帧)水平平行排列,用一个恰好能罩住16列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;
第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;
·
;
这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。
如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像,如图6所示。
图6方框图法左右移动示意图
因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第1~16个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第1~16列。
扫描完前16个数据之后,第2次扫描从点阵数组中取第3~18个数据(第18个数据和第1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫第1~16列。
第3次扫描从点阵数组中取第5~20个数据(第20个数据码和第2个数据码相同)扫描·
如此实现字符向左移动。
以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。
如图2.13所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;
完成一个字型的扫描以后,再扫描第二个字型;
完成第二个字型的扫描之后,再扫描第三个字型·
依此类推,即可产生该文字的左移的感觉。
假设如果原本某个汉字的字型(第一个字型),其编码为:
00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H;
第二个字型的编码为:
20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H,00H,10H
也就是把第一个字型的编码中,第1列显示数据,变为第2列显示数据;
第2列显示数据,变成第3列显示数据;
第3列显示数据,变成第4列显示数据;
第4列显示数据,变成第5列显示数据·
以此类推。
当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。
同样的,当第二个字型扫描完成之后,就进行这样的调整动作,以产生第三个字型的编码。
这个调整动作时先将16个编码根据序填入存储器,例如第1行编码存入20H,第二行编码存入21H·
要进行左移调整时,则先将20H地址的数据转移到36H地址,再将21H地址的数据转移到20H地址,将22H地址的数据转移到21H地址,将23H地址的数据转移到22H地址,将24H地址的数据转移到23H地址,将25H地址的数据转移到24H地址,将26H地址的数据转移到25H地址,将27H地址的数据转移到26H地址,将28H地址的数据转移到27H地址·
本设计主要采用以上方法实现左移,其他方法在此不再说明。
2.4芯片资料
主要芯片介绍
1.8051系列的单片机
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图片见下图附录1。
附录189S51管脚图
(1).管脚说明
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.
74ls154功能简介:
54/74154为4线-16线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。
如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。
附录274LS154管脚图
(2)引脚功能介绍
A、B、C、D译码地址输入端(低电平有效)
G1、G2选通端(低电平有效)
0-15输出端(低电平有效)
(3)74ls154真值表:
第三章方案设计
3.1单片机延时子程序
延时程序在单片机编程中使用非常广泛,也很重要,在本课程设计的程序中用到了延时子程序,所以在此详细的叙述一下。
在弄清延时程序指令的用法之前,要清楚的了解延时程序的基本概念,机器周期和指令周期的区别和联系、相关指令的用法等。
。
下面是本设计的程序中延时程序的计算:
DELAY:
MOVR2,#2;
1延时1ms
D1:
MOVR3,#2481
DJNZR3,$2*248
DJNZR2,D12*(2+1+2*248)
RET2
T=1+2*(2+1+2*248)+2=1001us
3.2.PROTEUS仿真
1.列驱动电路:
如图,用74hc154控制列扫描电路,外加PNP型三极管基极经200欧电阻接154输出引脚,集电极接点阵16列引脚,发射极接电源vcc实现饱和导通状态。
2.行控制电路可直接接上单片机P0,P2口。
如图9
图9行控制电路图
3.3软件调试在PROTEUS环境中通过了调试如图10(可是实际电路当中却不能显示,将在硬件调试中解释)
3.4硬件调试
3.3.1节可以看到,在PROTEUS仿真软件中的接线可以通过,可是在实际电路中不能显示,这是因为实际当中51单片机的各个引脚负载能力有限,必须还要通过外接驱动电路才能很好的显示,如外接三极管放大、接锁存器锁存等等来增强驱动能力,本设计采用了外接三极管放大的方法成功调试出较好的显示效果。
实际电路及实物图请看附录一。
第四章
经验总结
本次课程设计到现在有三个多星期,回顾这些天我感到学到了很多东西,在写这个心得的时候,我想就这些天的收获,说一说自己内心的想法。
本设计的是一个16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
总结本文的研究工作,主要做了下面几点工作:
一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏和其它显示屏相比较有那些优点,明确了研究目标。
并且通过对单片机资料的查阅和使用,更进一步增加了对单片机知识的理解和运用能力。
并证实了自己的思路:
“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。
二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计和调试等方面。
四,在这次课程设计的过程中学会了PROTEUS的基本使用,感到PROTEUS对电子专业的同学来说是一个很有用的软件。
在运用PROTEUS时可以运用一些快捷的标号,总线的方法画图,这样既能使电路图清晰,简单,更能大大提高画图速度
五,通过这次课程设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。
六,存在问题:
没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和合理的器件摆放焊接,问题解决。
总体来说这次的课程设计很成功,达到了预想的目的:
学到了知识,提高了能力,完成了任务。
有点缺憾是时间有限,不能进一步深入和扩散学习和研究。
希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等
附录
附一:
实际硬件接线图:
附二设计流程图
附三设计程序
;
多字移动
一个字占32个字节,1K可以存放1K=1024字节/32=32个字,C51=4K=128个字,C52=8K=256个字。
但程序约占用160个字节(相当于5个字的空间),最终可以显示的字为C51=123个字,C52=251个字。
超过后单片机将存储不下。
ORG000H
JMPMIAN
ORG030H
MIAN:
MOVP3,#00;
关闭端口
MOVP1,#0FFH
MOVP0,#0ffh
MOVP2,#0ffh
CALLDELAY;
延时1ms
MOVR5,#2;
移动列的数量(列数乘2)
MOVA,#33;
显示几个字
MOVB,#32;
一个字=32个码
MULAB
MOV22H,A;
存放1~8个字的数量
MOV23H,B;
存放8的倍数个字的数量
如50个字:
50×
32=1600=0640H,则DPH处为06H=6,DPL处为40H=64
简单算法:
50÷
8=6余2,6为DPH处数,余的2×
32=64为DPL数
MOVDPTR,#TAB;
赋查表初址
MOVR0,DPL;
保存DPTR初值,R0、R1记录取码进度
MOVR1,DPH
MOV20H,DPL;
20H、21H保持DPTR初值不变
MOV21H,DPH
LOOP:
MOVR7,#5;
每屏停留时间
L1:
MOVR6,#16;
每屏16个码
MOVR4,#00;
扫描指针清零
MOVDPL,R0;
取码指针存入DPL
MOVDPH,R1
L16:
MOVA,R4;
扫描指针存入A
MOVP1,A;
扫描输出
INCR4;
扫描指针加1
CLRA;
A清零
MOVCA,@A+DPTR;
查表送A
MOVP0,A;
送P0口显示
INCDPTR;
取码指针加1
MOVP2,A;
送P2口显示
扫描延时1ms
MOVP0,#0ffh;
清除屏幕
DJNZR6,L16;
1屏是否完成?
DJNZR7,L1;
每屏停留时间是否到了?
MOVA,R0;
如字需移动,用该指令
ADDA,R5;
如大于256,C=1
MOVR0,A
JNCDP
INCR1
DP:
MOVA,20H;
DPL初值
ADDA,22H;
如大于256,C=1。
因DPL初值在90H以上,显示4个字后DPH将加1,导致判断失误
MOVA,DPH
SUBBA,21H;
已显示字的数量(乘8)
CJNEA,23H,LOOP;
DPH中的字是否完成?
CLRC
MOVA,DPL
SUBBA,20H;
已显示字的数量
CJNEA,22H,LOOP;
DPL中的字是否完成?
lJMPMIAN
MOVR3,#248
DJNZR3,$
DJNZR2,D1
RET
TAB:
Db0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0x8F,0xFB,0x6D,0xFB,0x53,0xFB,0x57,0xFB,0x07,0x80
Db0x53,0xFD,0x75,0xFD,0x96,0xFD,0xE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 LED 点阵 广告 设计 论文 完整版