成都学院(成都大学)课程设计报告
图6 主程序流程图
3.3.3重复显示流程
此程序的子程序才是真正用于显示点阵汉字的程序部分,被重复调用8次。为什么要重复调用显示子程序呢?因为前面说过,点阵LED显示汉字的方法是每次显示一行或一列,然后清空显示下一行或下一列,循环16次后整个点阵都显示出汉字的不同部否是否汉字数量CX=0汉字数量减一改变字模首地址CX减一调用重复显示子程序汉字数量初始化字模首地址赋给SI CX=16 返回但是由于显示每一行或列显示的时间非常短,
9
成都学院(成都大学)课程设计报告
不同行或列显示的时间又不相同,只显示一次的话汉字会变化非常快,同时又给人不断闪烁的感觉,无法看清汉字,重复显示几次则可比较好的解决这个问题。同时,此程序还有根据方向变化不再继续执行,也不返回上一级程序,直接跳回主程序重新开始的功能;可以加快方向改变后的响应速度。流程图见图8。
图7 显示子程序流程图
10
成都学院(成都大学)课程设计报告
图8 循环流程图
3.4设计测试
按照设计思路完成软硬件设计并连好线路,编写程序代码之后,运行程序并测试效果。LED点阵开始按照程序显示汉字并滚动。主机连线如下表
B4区:CS(8255)、A0、A1 B4区:CS(8155)、IO/M B4区:JP56、JP53 B4区:JP52、JP76
—— A3区:CS1、A0、A1 —— A3区:CS2、A8 —— A2区:JP23、JP24(行输出线) —— A2区:JP33、JP34(列输出线)
第4章 总结
通过本次的课程设计,对LED点阵显示的原里和方法有了很深刻的认识,首先这个程序应该应用模块程
序设计的思路进行编写。它是由初始化硬件显示组成的,刚开始我们列线插反了,结果显示不出来的预期的文字,显示文字呈现镜像。猜测是接线口顺序反了,试着将接线口调转字体正确。
这次设计实验我不仅仅对LED点阵的显示,对接口课程设计,对汇编语言有了更加深入的了解,也学会了复杂代码层出话和模块化的思想,受益良多、收获颇丰。
11
成都学院(成都大学)课程设计报告
附录:
16*19LED点阵控制演示实验
.MODEL TINY ADDR_8255_PA EQU 0F000H ;8255 PA口 ADDR_8255_PB EQU 0F001H ;8255 PB口 ADDR_8255_PC EQU 0F002H ;8255 PC口 ADDR_8255_C EQU 0F003H ;8255控制口 ADDR_8155_PA EQU 0E101H ;8155 PA口 ADDR_8155_C EQU 0E100H ;8155控制口 LINE1 EQU ADDR_8255_PA ;行线1 LINE2 EQU ADDR_8255_PB ;行线2 ROW1 EQU ADDR_8255_PC ;列线1 ROW2 EQU ADDR_8155_PA ;列线2 .STACK 100 .DATA
HUAN DB 00H,0C0H,00H,0C0H,0FEH,0C0H,07H,0FFH,0C7H,86H,6FH,6CH,3CH,60H,18H,60H
DB 1CH,60H,1CH,70H,36H,0F0H,36H,0D8H,61H,9CH,0C7H,0FH,3CH,06H,00H,00H
YING DB 60H,00H,31H,0C0H,3FH,7EH,36H,66H,06H,66H,06H,66H,0F6H,66H,36H,66H
DB 37H,0E6H,37H,7EH,36H,6CH,30H,60H,30H,60H,78H,00H,0CFH,0FFH,00H,00H
SHI DB 00H,00H,06H,30H,07H,30H,0FH,0FFH,0CH,30H,1FH,0FFH,3BH,33H,7BH,33H
DB 1BH,0FFH,1BH,33H,19H,0B0H,18H,0E0H,18H,60H,18H,0FCH,19H,8FH,1FH,03H
YONG DB 00,0,1FH,0FEH,18H,0C6H,18H,0C6H,18H,0C6H,1FH,0FEH,018H,0C6H,18H,0C6H
DB
18H,0C6H,1FH,0FEH,18H,0C6H,18H,0C6H,30H,0C6H,30H,0C6H,60H,0DEH,0C0H,0CCH XING DB 00H,00H,1FH,0FCH,18H,0CH,1FH,0FCH,18H,0CH,1FH,0FCH,01H,80H,19H,80H
DB 1FH,0FEH,31H,80H,31H,80H,6FH,0FCH,01H,80H,01H,80H,7FH,0FFH,00H,00H
YAN DB 0,0,0FFH,0FFH,18H,0CCH,18H,0CCH,30H,0CCH,30H,0CCH,7FH,0FFH,7CH,0CCH DB 0FCH,0CCH,3CH,0CCH,3CH,0CCH,3DH,8CH,3DH,8CH,33H,0CH,06H,0CH,0CH,0CH SHI0 DB 01H,80H,00H,0C0H,3FH,0FFH,3CH,06H,67H,0CCH,06H,0C0H,0CH,0C0H,07H,0C0H
DB 06H,0C0H,7FH,0FFH,00H,0C0H,01H,0E0H,03H,30H,06H,18H,1CH,1CH,70H,18H
YAN0 DB 00H,00H,0FCH,60H,0CH,60H,6CH,0F0H,6CH,0D8H,6DH,8FH,6FH,0F8H,7EH,00H
DB 06H,0C6H,07H,66H,3FH,0ECH,0E7H,0ECH,06H,18H,1FH,0FFH,0CH,00H,00H,00H
YI DB 0CH,0C0H,0CH,60H,18H,7CH,1BH,6CH,33H,0CH,73H,18H,0F1H,98H,31H,98H DB 30H,0F0H,30H,0F0H,30H,60H,30H,0F0H,31H,98H,33H,0FH,3EH,06H,30H,00H NONE DB 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 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL INIT_IO CALL TEST_LED ;调用测试子程序,测试LED是否全亮 CALL CLEAR
12
相关推荐: