文档库 最新最全的文档下载
当前位置:文档库 › 16-16点阵LED显示汉字汇编语言

16-16点阵LED显示汉字汇编语言

16-16点阵LED显示汉字汇编语言
16-16点阵LED显示汉字汇编语言

LED16X16点阵显示课程设计报告

学院

专业

班级

学生

指导老师

一、设计目的

本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。

二、设计容

利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED点阵显示。要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。

三、硬件电路设计

整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。该电路可静态显示1个16*16位的汉字,也可循环显示。

1、8255

Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。

2、138译码器

译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。

3、373锁存器

74LS373是低功耗肖特基TTL8D锁存器,有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0—O7可直接与总线相连。当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。

4、LED 动态显示原理

LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。

点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视

觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。

以8×8点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平线Y0、Y1……Y7叫做行线,接部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1……X7叫做列线,接部每列8个LED的阴极,相邻两列线间绝缘。

在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的LED就会有电流流过而发光。比如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。

现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图3.1

图3.1 用动态扫描显示字符“B”的过程

Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本次设计。

首先,从Proteus7.5的元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。连接好的16×16点阵如图3.2所示。

成如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如图3.3所示。

图3.3

可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如图3.4所示。看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。然后,我们将其保存,以便以后使用。

图3.4

5、整个系统的仿真电路图

四、字模生成

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

在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有——码(将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的码。而剩下的低128位则留给英文字符使用,即英文的码)。如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字。在硬件系统,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符。而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)。

在通过软件实现的技术中,目前有许多字模生成软件,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。在通过硬件实现字模提取的技术中,有在系统中增加硬汉字库的方法,主控器发送的汉字是其机码,用两个字节来表示一个汉字。根据机码,显示单元控制模块从汉字库中查取显示字模,实现汉字显示。由于带有硬汉字库,进行动态文字显示时,通用智能显示单元仅接受汉字的机码即可,这样数据通讯量大大减少。因此,“动态文字显示速度快”。

五、程序设计

1、程序设计总体思路

用简短的汇编程序设计,实现LED点阵显示容,并使显示的容在屏幕上从左到右的滚动显示。系统采用模块化结构,包括主程序、显示子程序和循环扫描显示子程序。

用8088、74LS373、74LS138、7407芯片和1个16×16LED点阵显示器构成一个完整的16位点阵LED显示系统。

2、程序流程图

程序主要由开始、初始化、主程序、子程序、字库组成(源程序详见附录)。其中主程序和子程序的流程图为:

循环扫描显示子程序流程图

字库为:

DB 00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H,00H,00H,00H,00H

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB 01H,00H,00H,80H,00H,60H,0FFH,0F8H,00H,07H,00H,00H,00H,04H,79H,24H ;信DB 49H,24H,49H,25H,49H,26H,49H, 24H,49H,24H,79H,24H,00H,04H,00H,00H

DB 40H,00H,30H,00H,00H,00H,03H,0FCH,39H,54H,41H,54H,41H,56H,45H,55H ;息DB 59H,54H,41H,54H,41H,54H,73H,0FCH,00H,00H,08H,00H,30H,00H,00H,00H

DB 20H,00H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,3FH,0FCH ;工DB 20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,00H,00H,00H

DB 08H,24H,06H,24H,01H,0A4H,0FFH,0FEH,01H,23H,06H,22H,40H,00H,49H,3EH ;程DB 49H,22H,49H,22H,7FH,22H,49H,22H,49H,22H,49H,3EH,41H,00H,00H,00H

DB 04H,40H,04H,30H,04H,11H,04H,96H,04H,90H,44H,90H,84H,91H,7EH,96H ;学DB 06H,90H,05H,90H,04H,98H,04H,14H,04H,13H,04H,50H,04H,30H,00H,00H

DB 00H,00H,0FFH,0FEH,04H,22H,08H,5AH,07H,86H,80H,10H,41H,0CH,31H,24H ;院DB 0FH,24H,01H,25H,01H,26H,3FH,24H,41H,24H,41H,14H,71H,0CH,00H,00H

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

六、系统功能测试

1、实物测试

通过分析程序,了解LED点阵汉字循环循环左移的显示方法,自建字库,很成功的完成了实物测试,达到了预期的要求。

2、仿真测试

在仿真软件proteus中运行测试系统整体功能,一切正常。实现了汉字的左移滚动显示,循环显示出了“信息工程学院”浮动汉字。

七、总结

通过本次(16×16位点阵LED)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习奠定的基础。

参考文献

[1]义和王敏男许宏昌余编著.例说51单片机.:人民邮电,2008

[2]王让定朱莹叶富乐史旭华编著.汇编语言与接口技术.:清华大学,2005

[3]康华光编著.电子技术基础数字部分(第五版).:高等教育,2006

附录:

1、源程序

PA EQU 0040H ;行代码1

PB EQU 0042H ;行代码2

PCTL EQU 0046H ;行8255控制口地址

XPA EQU 0048H ;列扫描1

XPB EQU 004AH ;列扫描2

XPCTL EQU 004EH ;列8255控制口地址

DATA SEGMENT AT 0

ORG 2DB0H

FL DB ? ;选择列扫描

R0 DW ? ;数据地址偏移量

R6 DW ? ;扫描存储单元

R1 DB ? ;列扫描通道选择

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

ORG 2DC0H

START:

MOV DX,XPCTL

MOV AL,80H

OUT DX,AL ;选择8255个端口工作方式

MOV DX,PCTL

OUT DX,AL

CALL OFFLED

MOV AL,00H ;数据初始化

MOV FL,AL

MOV R6,0048H

X0: MOV R0,0000H

X1: CALL DEL1

INC R0

INC R0 ;R0+2

CMP R0,00E0H ;304

JNZ X1

JMP X0

DISPW:

PUSH R0 ;LED点阵显示

MOV R1,01H

DISP1:

MOV BX,OFFSET TAB

ADD BX,AX

MOV AL,CS:[BX]

MOV DX,PB

OUT DX,AL ;行代码1输入

INC R0

MOV AX,R0

MOV BX,OFFSET TAB

ADD BX,AX

MOV AL,CS:[BX]

MOV DX,PA

OUT DX,AL ;行代码2输入

MOV DX,R6

MOV AL,R1

NOT AL

OUT DX,AL ;列扫描

MOV CX,0010H ;循环128次

LOOP $

CALL OFFLED

INC R0

RCL R1,1 ;扫描信号左移8次

JNC DISP1

CMP FL,00H

JNZ EXIT

INC FL

CLC ;标志位CF清零

MOV R1,01H

MOV R6,004AH ;切换到列扫描2

JMP DISP1

EXIT: MOV R6,0048H ;切换到列扫描1 MOV FL,00H

POP R0

RET

OFFLED: MOV DX,XPA ;灭灯

MOV AL,0FFH

OUT DX,AL

MOV DX,XPB

OUT DX,AL

RET

DEL1: MOV CX,0020H ;计数32次CON1: PUSH CX

CALL DISPW

POP CX

RET

TAB:

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 01H,00H,00H,80H,00H,60H,0FFH,0F8H,00H,07H,00H,00H,00H,04H,79H,24H ;信DB 49H,24H,49H,25H,49H,26H,49H,24H,49H,24H,79H,24H,00H,04H,00H,00H

DB 40H,00H,30H,00H,00H,00H,03H,0FCH,39H,54H,41H,54H,41H,56H,45H,55H ;息DB 59H,54H,41H,54H,41H,54H,73H,0FCH,00H,00H,08H,00H,30H,00H,00H,00H

DB 20H,00H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,3FH,0FCH ;工DB 20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,00H,00H,00H

DB 08H,24H,06H,24H,01H,0A4H,0FFH,0FEH,01H,23H,06H,22H,40H,00H,49H,3EH ;程DB 49H,22H,49H,22H,7FH,22H,49H,22H,49H,22H,49H,3EH,41H,00H,00H,00H

DB 04H,40H,04H,30H,04H,11H,04H,96H,04H,90H,44H,90H,84H,91H,7EH,96H ;学DB 06H,90H,05H,90H,04H,98H,04H,14H,04H,13H,04H,50H,04H,30H,00H,00H

DB 00H,00H,0FFH,0FEH,04H,22H,08H,5AH,07H,86H,80H,10H,41H,0CH,31H,24H ;院DB 0FH,24H,01H,25H,01H,26H,3FH,24H,41H,24H,41H,14H,71H,0CH,00H,00H

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

CODE ENDS

END START

相关文档