基于8086的LED点阵屏设计Word文档格式.docx

上传人:b****2 文档编号:4514543 上传时间:2023-05-03 格式:DOCX 页数:18 大小:310.20KB
下载 相关 举报
基于8086的LED点阵屏设计Word文档格式.docx_第1页
第1页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第2页
第2页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第3页
第3页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第4页
第4页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第5页
第5页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第6页
第6页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第7页
第7页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第8页
第8页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第9页
第9页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第10页
第10页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第11页
第11页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第12页
第12页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第13页
第13页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第14页
第14页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第15页
第15页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第16页
第16页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第17页
第17页 / 共18页
基于8086的LED点阵屏设计Word文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于8086的LED点阵屏设计Word文档格式.docx

《基于8086的LED点阵屏设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于8086的LED点阵屏设计Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

基于8086的LED点阵屏设计Word文档格式.docx

1)AD15~AD0(addressdatabus):

地址/数据总线,双向,三态。

2)A19/S6~A16/S3(address/status):

地址/状态信号,输出,三态。

3)BHE(低)/S7(bushighenable/status):

允许总线高8位数据传送/状态信号,输出,三态。

4)RD/(read):

读信号,输出,三态,低电平有效。

5)READY(ready):

准备就绪信号,输入,高电平有效。

6)INTR(interruptrequest):

可屏蔽中断请求信号,输入,高电平有效。

7)TEST/(test):

等待测试控制信号,输入,低电平有效。

8)NMI(non-maskableinterrupt):

非屏蔽中断请求信号,输入,高电平有效。

9)RESET(reset):

复位信号,输入,高电平有效。

10)CLK(clock):

时钟信号,输入。

11)VCC电源输入引脚。

12)GND:

接地引脚。

13)MN/MX/(minimum/maximum):

最小/最大模式输入控制信号。

14)IO/M/(memoryI/Oselect):

存储器、I/O端口选择控制信号。

15)WR/(write):

写信号,输出,低电平有效。

16)INTA/(interruptacknowledge):

可屏蔽中断响应信号,输出,低电平有效。

17)ALE(addresslockenable):

地址锁存允许信号,输出,高电平有效。

18)DT/(datatransmitorreceive):

数据发送/接收信号,输出,三态。

19)DEN/(dataenable):

数据允许控制信号,输出,三态,低电平有效。

20)HOLD(busholdrequest):

总线保持请求信号,输入,高电平有效。

图5I/O译码电路原理图

在I/O译码电路中,除了核心的8086外,地址的确定就是由4-16译码器决定。

从图中可以看出一共有16个I/O端口,地址是00H、10H、20H、……0FH。

其余相关知识在接口课程和实验中已经讲解得十分详细,在此就不在赘述,直接使用即可。

2.2.2点阵屏组成

Proteus中只有5×

7和8×

8等LED点阵,并没有32×

32的LED点阵,而在实际应用中,要良好地显示一个汉字,至少需要16×

16的点阵。

若是需要显示简单图形则需要更大的点阵。

本课程设计使用的是32×

32的点阵,所以需要使用8×

8的点阵进行组合。

下面介绍使用8×

8点阵构建32×

32点阵的方法,并构建一块32×

32的点阵用于本例的显示任务。

首先,从Proteus的元件库中找到“MATRIX-8×

8-GREEN”元器件,并将16块点阵放入文档编辑区。

此时需要注意每块点阵的行引脚和列引脚。

然后将四块点阵排成一行形成一个8×

32的点阵块,如图6所示

图68×

32点阵行引脚

由于此时点阵块的上方引脚是行引脚,因此每块点阵的引脚编号均为R0-R7,表示前8行。

而下方引脚对应的是列引脚,因此列引脚的范围是C0-C31。

如图7所示。

图78×

32点阵列引脚

最后只要将四块这样的点阵拼接成32×

32的点阵即可。

需要注意的是其余三块这样的点阵的行引脚编号分别对应R8-R15、R16-R23、R24-R31。

成品如图8所示。

图832×

32点阵屏

2.2.3行扫描电路

本课程设计中的点阵屏采用逐行扫描的方式。

因此一共需要32位的行数据来控制某行是否被点亮。

由于8086的寄存器是16位的,不满足行数据的要求。

因此最直接的方法就是采用两片4-16译码器扩展成一个5-32译码器,这要只需要寄存器中的5位即可。

行控制译码电路如图9所示。

图9行扫描控制电路

2.2.3显示驱动电路

对于点阵屏的显示驱动,通常采用的做法是使用74HC595移位寄存器进行数据的存储与驱动。

这要只要接口电路串行输出显示数据即可,对于大点阵屏显示驱动的软件设计十分方便。

但是需要串口的支持。

对于现在的单片机来说这已经不是什么大问题,因为现在的单片机都内置了串行通信的芯片。

而8086仅仅实现了中央处理器的功能,并没有集成任何辅助芯片。

想要实现串行通信必须外接串口通信芯片8251A。

但是由于本设计的点阵屏规模较小,并不一定需要采用这种方法,我们只需要采用四块通用的8位寄存器即可将32位数据分4次送入点阵屏。

具体电路如图10所示。

图10显示驱动电路

3点阵屏有关软件设计

在第二部分已经介绍了整个设计的硬件设计思路并搭建了完整的点阵屏显示电路。

但是点阵屏要能显示必须要有数据和相应的驱动程序。

点阵屏显示汉字需要的是字模数据,显示图形也要求类似字模的数据,因为实际上不管是英文字幕还是中文汉字,在显示的时候都是图形。

3.1字模简介

文字的字模是一组数字,但它的意义却与数字的意义有着根本的变化,它是用数字的各位信息来记载英文或汉字的形状。

在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有——内码(将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。

而剩下的低128位则留给英文字符使用,即英文的内码)。

如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字。

在硬件系统内,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符。

而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)。

本设计中采用已有的取模软件获得需要显示图形的数据,如图11所示。

图11汉字取模

得到显示图形数据后只要保存在汇编程序的数据段中即可。

3.2驱动程序设计

ROWSELEQU20H

COLSEL1EQU40H

COLSEL2EQU60H

COLSEL3EQU80H

COLSEL4EQU0A0H

datasegment

tab1DB00H,00H,00H,00H,00H,00H,00H,00H,00H,01H,0C0H,00H,00H,01H,0C0H,00H,00H,01H,0C0H,00H,00H,01H,80H,00H,00H,01H,80H,00H,00H,01H,0FCH,00H

DB00H,3FH,0F8H,00H,00H,1FH,00H,00H,00H,03H,00H,00H,00H,03H,07H,0E0H,00H,03H,0FCH,0F0H,00H,7EH,0E0H,70H,0FH,0D0H,60H,70H,06H,18H,0C0H,60H

DB06H,08H,80H,60H,06H,08H,0F8H,60H,06H,0FH,0C0H,60H,06H,3FH,00H,60H,06H,03H,18H,60H,06H,03H,0FCH,60H,06H,3FH,0C0H,60H,06H,73H,00H,60H

DB06H,03H,00H,60H,06H,03H,00H,60H,06H,03H,03H,0E0H,02H,03H,01H,0E0H,00H,00H,01H,0C0H,00H,00H,00H,80H,00H,00H,00H,00H,00H,00H,00H,00H;

tab2DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0FH,80H,00H,00H,0FFH,0C0H,00H,07H,0E3H,0C0H,07H,01H,07H,00H,03H,80H,4CH,00H

DB01H,0C0H,78H,00H,00H,80H,33H,80H,00H,00H,3FH,0C0H,00H,07H,0F1H,0C0H,00H,06H,31H,80H,01H,02H,3CH,80H,0FH,0C2H,7CH,80H,1FH,82H,0F0H,0C0H

DB01H,02H,30H,0C0H,03H,02H,3EH,0C0H,01H,06H,0FCH,0C0H,01H,86H,30H,0C0H,01H,86H,30H,0C0H,01H,06H,20H,0C0H,01H,86H,27H,0C0H,3FH,0F8H,23H,0C0H

DB18H,1FH,01H,80H,00H,07H,0E0H,00H,00H,00H,0FFH,0FEH,00H,00H,3FH,0F8H,00H,00H,0FH,0C0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;

tab3DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H,80H,00H,00H,03H,80H,00H,00H,03H,80H,00H,00H,03H,00H,00H,00H,03H,00H,00H

DB00H,03H,00H,00H,00H,03H,00H,00H,00H,03H,00H,00H,00H,03H,07H,80H,00H,03H,0FFH,0C0H,03H,0FFH,0FEH,00H,03H,0FFH,00H,00H,00H,83H,00H,00H

DB00H,03H,00H,00H,00H,07H,00H,00H,00H,06H,80H,00H,00H,06H,0C0H,00H,00H,06H,60H,00H,00H,0CH,30H,00H,00H,0CH,38H,00H,00H,18H,1CH,00H,00H

DB30H,1EH,00H,00H,60H,0FH,80H,00H,0C0H,07H,0E0H,03H,80H,03H,0FCH,04H,00H,01H,0FCH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;

tab4DB00H,00H,00H,00H,00H,00H,0CH,00H,00H,00H,07H,00H,00H,43H,0EH,00H,00H,61H,8CH,00H,00H,31H,8CH,00H,00H,38H,98H,00H,00H,10H,10H,00H

DB00H,00H,1FH,0F0H,02H,07H,0FFH,0F8H,03H,0FFH,00H,7CH,07H,00H,00H,0F0H,0EH,00H,0E0H,0C0H,0EH,7FH,0F0H,00H,0CH,78H,70H,00H,08H,00H,0E0H,00H

DB00H,03H,80H,00H,00H,01H,83H,0C0H,00H,03H,0FFH,0F0H,0FH,0FFH,0E0H,70H,1FH,0F0H,0C0H,00H,00H,00H,0C0H,00H,00H,00H,0C0H,00H,00H,00H,0C0H,00H

DB00H,00H,0C0H,00H,00H,00H,0C0H,00H,00H,00H,0C0H,00H,00H,0FH,0C0H,00H,00H,07H,80H,00H,00H,03H,00H,00H,00H,02H,00H,00H,00H,00H,00H,00H;

tab5DB00H,00H,00H,00H,00H,1FH,0F8H,00H,00H,7FH,0FEH,00H,01H,0F8H,1FH,80H,03H,0C0H,03H,0C0H,07H,00H,00H,0E0H,0EH,60H,06H,70H,0CH,0F0H,0FH,30H

DB19H,0F8H,1FH,98H,38H,0F0H,0FH,18H,30H,60H,06H,1CH,30H,00H,00H,0CH,70H,00H,00H,0CH,70H,01H,80H,0EH,60H,01H,80H,0EH,60H,01H,80H,0EH

DB60H,01H,80H,0EH,70H,01H,80H,0CH,30H,00H,00H,0CH,30H,00H,00H,0CH,38H,60H,0CH,18H,18H,60H,1CH,18H,1CH,30H,30H,30H,0EH,1FH,0E0H,70H

DB07H,07H,0C0H,0E0H,03H,80H,01H,0C0H,01H,0E0H,07H,80H,00H,0FFH,0FFH,00H,00H,3FH,0FCH,00H,00H,03H,0C0H,00H,00H,00H,00H,00H,00H,00H,00H,00H;

图形

dataends

codesegment

mainprocfar

assumecs:

code,ds:

data

start:

pushds

movax,0

pushax

movax,data

movds,ax

READY:

leabx,tab1

calldisp;

显示"

南"

leabx,tab2

通"

leabx,tab3

大"

leabx,tab4

学"

leabx,tab5

显示图形

jmpREADY

;

显示子程序

行选地址为20h

列选地址为40h60h80h0a0h

设计共32行32列

dispprocfar

movcx,300

LOOP1:

movdx,ROWSEL

moval,ah

outdx,al;

行选

moval,[bx]

movdx,COLSEL1

outdx,al

moval,[bx+1]

movdx,COLSEL2

moval,[bx+2]

movdx,COLSEL3

moval,[bx+3]

movdx,COLSEL4

;

送入一帧数据后调用延时子程序

calldelay

addbx,4;

选取下一帧数据的首地址

oral,80h

消隐

incah

cmpah,32

jzNEXT

jmpLOOP1

NEXT:

movah,0

subbx,128

loopLOOP1

ret

dispendp

延时子程序

delayprocfar

pushcx

movcx,30

wait0:

loopwait0

popcx

delayendp

mainendp

codeends

endstart

4实施结果

按照设计要求,点阵屏能够显示字符以及简单图形。

仿真结果如图12所示。

图12点阵屏显示汉字及图形

5课程设计体会

本课程设计的LED点阵显示系统以8086微处理器为核心,加以外围电路,可实现汉字、数字及各种字符的多种方式和快速的显示。

设计的显示屏工作稳定,字符清晰,字体美观。

除此之外,Proteus作为一款操作简单且功能强大的仿真软件,为嵌入式开发者提供了一个虚拟的开发平台。

开发者可以在没有硬件的条件下对各种微处理器的功能进行仿真调试,节约了资源也缩短了开发周期。

从某种意义上来讲,Proteus的仿真结果可直接应用于实际工程中。

6参考文献

[1]陈立.基于Proteus的单片机汉字LED点阵滚动显示[J].电脑知识与技术,2010,6(8):

2012-2013

[2]同晓荣.基于Proteus的汉字点阵显示设计与仿真[J].信息技术,2012,2:

33-25

[3]毛敏.基于Protues的16×

32点阵LED汉字显示屏的开发[J].工业仪表与自动化装置,2010,5:

96-97

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2