1616点阵LED显示汉字汇编语言Word文档下载推荐.docx
- 文档编号:20439175
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:11
- 大小:341.47KB
1616点阵LED显示汉字汇编语言Word文档下载推荐.docx
《1616点阵LED显示汉字汇编语言Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《1616点阵LED显示汉字汇编语言Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
其中含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、程序流程图
程序主要由开始、初始化、主程序、子程序、字库组成(源程序详见附录)。
其中主程序和子程序的流程图为:
循环扫描显示子程序流程图
字库为:
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB01H,00H,00H,80H,00H,60H,0FFH,0F8H,00H,07H,00H,00H,00H,04H,79H,24H;
信
DB49H,24H,49H,25H,49H,26H,49H,24H,49H,24H,79H,24H,00H,04H,00H,00H
DB40H,00H,30H,00H,00H,00H,03H,0FCH,39H,54H,41H,54H,41H,56H,45H,55H;
息
DB59H,54H,41H,54H,41H,54H,73H,0FCH,00H,00H,08H,00H,30H,00H,00H,00H
DB20H,00H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,3FH,0FCH;
工
DB20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,00H,00H,00H
DB08H,24H,06H,24H,01H,0A4H,0FFH,0FEH,01H,23H,06H,22H,40H,00H,49H,3EH;
程
DB49H,22H,49H,22H,7FH,22H,49H,22H,49H,22H,49H,3EH,41H,00H,00H,00H
DB04H,40H,04H,30H,04H,11H,04H,96H,04H,90H,44H,90H,84H,91H,7EH,96H;
学
DB06H,90H,05H,90H,04H,98H,04H,14H,04H,13H,04H,50H,04H,30H,00H,00H
DB00H,00H,0FFH,0FEH,04H,22H,08H,5AH,07H,86H,80H,10H,41H,0CH,31H,24H;
院
DB0FH,24H,01H,25H,01H,26H,3FH,24H,41H,24H,41H,14H,71H,0CH,00H,00H
六、系统功能测试
1、实物测试
通过分析程序,了解LED点阵汉字循环循环左移的显示方法,自建字库,很成功的完成了实物测试,达到了预期的要求。
2、仿真测试
在仿真软件proteus中运行测试系统整体功能,一切正常。
实现了汉字的左移滚动显示,循环显示出了“信息工程学院”浮动汉字。
七、总结
通过本次(16×
16位点阵LED)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。
为后继的学习奠定的基础。
参考文献
[1]张义和王敏男许宏昌余长春编著.例说51单片机.北京:
人民邮电出版社,2008
[2]王让定朱莹叶富乐史旭华编著.汇编语言与接口技术.北京:
清华大学出版社,2005
[3]康华光编著.电子技术基础数字部分(第五版).北京:
高等教育出版社,2006
附录:
1、源程序
PAEQU0040H;
行代码1
PBEQU0042H;
行代码2
PCTLEQU0046H;
行8255控制口地址
XPAEQU0048H;
列扫描1
XPBEQU004AH;
列扫描2
XPCTLEQU004EH;
列8255控制口地址
DATASEGMENTAT0
ORG2DB0H
FLDB?
;
选择列扫描
R0DW?
数据地址偏移量
R6DW?
扫描存储单元
R1DB?
列扫描通道选择
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
ORG2DC0H
START:
MOVDX,XPCTL
MOVAL,80H
OUTDX,AL;
选择8255个端口工作方式
MOVDX,PCTL
OUTDX,AL
CALLOFFLED
MOVAL,00H;
数据初始化
MOVFL,AL
MOVR6,0048H
X0:
MOVR0,0000H
X1:
CALLDEL1
INCR0
INCR0;
R0+2
CMPR0,00E0H;
304
JNZX1
JMPX0
DISPW:
PUSHR0;
LED点阵显示
MOVR1,01H
DISP1:
MOVAX,R0
MOVBX,OFFSETTAB
ADDBX,AX
MOVAL,CS:
[BX]
MOVDX,PB
行代码1输入
MOVDX,PA
行代码2输入
MOVDX,R6
MOVAL,R1
NOTAL
列扫描
MOVCX,0010H;
循环128次
LOOP$
RCLR1,1;
扫描信号左移8次
JNCDISP1
CMPFL,00H
JNZEXIT
INCFL
CLC;
标志位CF清零
MOVR6,004AH;
切换到列扫描2
JMPDISP1
EXIT:
MOVR6,0048H;
切换到列扫描1
MOVFL,00H
POPR0
RET
OFFLED:
MOVDX,XPA;
灭灯
MOVAL,0FFH
MOVDX,XPB
DEL1:
MOVCX,0020H;
计数32次
CON1:
PUSHCX
CALLDISPW
POPCX
LOOPCON1
TAB:
DB49H,24H,49H,25H,49H,26H,49H,24H,49H,24H,79H,24H,00H,04H,00H,00H
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1616 点阵 LED 显示 汉字 汇编语言