关于动态方向箭头控制及显示接口设计微机原理课程设计说明书Word文档下载推荐.docx
- 文档编号:18184042
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:14
- 大小:18.31KB
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书Word文档下载推荐.docx
《关于动态方向箭头控制及显示接口设计微机原理课程设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《关于动态方向箭头控制及显示接口设计微机原理课程设计说明书Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
C口的高四位做输出,低四位做输入,分别控制4行4列的键盘。
同样可以写出初始化程序来选择第一行的2个键有效,以此控制两种箭头的切换。
然后设置8255A的工作方式控制字,各口工作方式均为0,确定为1000001B,写入其控制端口。
完善程序后,再加入时间延时程序,每个初始化都调用该程序,选择合适的时间,并在每次子程序(如向上的箭头)结尾加上循环跳转到程序开头,不断地重复每一个初始化过程,这样,不停地运行,看起来就是连接起来的似乎是不变的静态的两种箭头
(2)动态箭头显示原理接下来考虑实现动态两种箭头显示。
本环节主要是改变程序,应用程序控制来实现动态。
在子程序中加入循环,使每一行或列的同样的初始字在不同的循环次数时显示在不同的行或列,并保证所有的同步循环,以保持箭头的形状,再一次加入延时程序,使完成每次移动的时间适中,不要太快也不要太慢。
这样就实现了各行各列同步移动的现象,也就是动态显示的过程。
(3)键控功能实现原理最后要实现键控功能。
同样是修改汇编程序,首先写入初始字,是第一行的两个键有效,不断地扫描两个键的电平,并从端口中读入信息,由于每次仅有一个键按下去,因此读入的两位码中只有一个是高电平,如是1000的时候,我们将其分别于1,2,4,8进行比较,当相等时则转到相应的箭头程序,判断后等于8,可确定是3键按下,因此转去执行向上的箭头程序,直到下一次的比较成立,则转去相应的程序,以此实现了键控的功能。
三、设计调试总结(包括对设计的目的和意义的认识、本人完成情况、设计中的主要收获和不足)
通过本次微机原理与接口技术的课程设计,进行程序设计编程和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和方法,通过动手能力的培养,进一步熟练汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
但是,在课程设计过程中也遇到了很多问题,充分了解了自己对课程掌握的不足,不过后来也通过自己的进一步学习和老师同学的帮助解决了问题,最后完成了动态方向箭头控制及显示接口设计,掌握了试验箱上小键盘控制点矩阵的原理,也进一步掌握了8255的工作原理。
二、程序清单
(注:
程序清单使用5号字体,单倍行距排版)
STACK1SEGMENTSTACK
DB256DUP(?
)
STACK1ENDS
DATASEGMENT
DIS0DB'
PRESSANYOFTHEKEYSTOQUIT!
$'
;
提示信息
I8255TYPEDW0003H;
8255控制字的地址
I8255ADDADW0000H;
8255的A口地址
I8255ADDBDW0001H;
8255的B口地址
I8255ADDCDW0002H;
8255的C口地址
KEY_SVDB0,0,1,0,2,0,0,0,3
KEY_V_BUFDB?
SCAN_VDB?
KEY_HVDB?
DIS1DB'
PCIADDRESS0$'
DIS2DB'
PCIADDRESS1$'
DIS3DB'
PCIMEMORYADDRESS$'
DIS4DB'
PCIINTERRUPTLINE$'
DIS5DB'
BIOSNOTSUPPER!
DIS6DB'
READPCIBOARDFAIL!
;
-------PCIConfigurationSpaceRegisters-------------------------------
PCI_CS_VENDOR_IDEQU0
PCI_CS_DEVICE_IDEQU2
PCI_CS_COMMANDEQU4
PCI_CS_STATUSEQU6
PCI_CS_REVISIONEQU8
PCI_CS_CLASS_CODEEQU9
PCI_CS_CACHE_LINE_SIZEEQU0CH
PCI_CS_MASTER_LATENCYEQU0DH
PCI_CS_HEADER_TYPEEQU0EH
PCI_CS_BISTEQU0FH
PCI_CS_BASE_ADDRESS_0EQU10H
PCI_CS_BASE_ADDRESS_1EQU14H
PCI_CS_BASE_ADDRESS_2EQU18H
PCI_CS_BASE_ADDRESS_3EQU1CH
PCI_CS_BASE_ADDRESS_4EQU20H
PCI_CS_BASE_ADDRESS_5EQU24H
PCI_CS_EXPANSIONEQU30H
PCI_CS_INTERRUPT_LINEEQU3CH
PCI_CS_INTERRUPT_PINEQU3DH
PCI_CS_MIN_GNTEQU3EH
PCI_CS_MAX_LATEQU3FH
---------------------END-------------------------
ADDRESS_IO_0DW?
ADDRESS_IO_1DW?
DATAENDS
CODESEGMENT'
CODE'
ASSUMECS:
CODE,SS:
STACK1,DS:
DATA
START:
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAH,0B1H;
读配置资源
MOVAL,1H
INT1AH
CMPAH,0
JZSTAR1
MOVDX,OFFSETDIS5
JMPM_EXIT
STAR1:
MOVAH,0B1H
MOVAL,02H
MOVCX,8376H
MOVDX,10EBH
MOVSI,0
JNCAA
MOVDX,OFFSETDIS6
MOVAH,9
INT21H
AA:
MOVAL,09H
MOVDI,PCI_CS_BASE_ADDRESS_1
JZSTAR2
MOVDX,OFFSETDIS1
STAR2:
ANDCX,0FFFCH
MOVAX,CX
MOVADDRESS_IO_0,AX
MOVDI,PCI_CS_BASE_ADDRESS_3
JZSTAR3
STAR3:
MOVADDRESS_IO_1,AX
ADDI8255TYPE,AX
ADDI8255ADDA,AX
ADDI8255ADDB,AX
ADDI8255ADDC,AX
MOVAL,3
MOVAH,0
INT10H
MOVDX,OFFSETDIS0;
显示提示
MOVAH,0FFH
MOVDX,I8255TYPE;
初始8255的C口pc4~pc7为输出,pc0~3为输入
MOVAL,81H
OUTDX,AL
MOVKEY_V_BUF,0FFH
MAIN_LP:
CALLKEYSCAN
CMPAL,KEY_V_BUF
JZMNLP1
CMPAL,0FFH
MOVKEY_V_BUF,AL
CALLDISPLAY1
MNLP1:
CALLTIME
CALLPCKEY
JMPMAIN_LP
M_EXIT:
MOVAX,4C00H
DISPHPROCNEAR
PUSHBX
PUSHCX
MOVCX,4
MOVCH,4
DISPH1:
ROLAX,CL
ANDAL,0FH
ANDAL,30H
CMPAL,'
9'
JBEDISPH2
ADDAL,7
DISPH2:
MOVAH,2
MOVDL,AL
POPAX
DECCH
JNZDISPH1
POPCX
POPBX
RET
DISPHENDP
DISPLAY1PROCNEAR
CMPAL,10H
JLDSPLY1
DSPLY1:
ADDAL,30H
JBEDISP_H
DISP_H:
DISPLAY1ENDP
KEYSCANPROCNEAR
MOVKEY_HV,0
MOVSCAN_V,80H
SCAN_LP:
MOVAL,SCAN_V
MOVDX,I8255ADDC
INAL,DX
MOVBL,AL
ANDBL,0FH
MOVAL,BL;
得c口0-3位数据
CMPAL,2
JZCCP1
CMPAL,8
JZCCP41
MOVBX,OFFSETKEY_SV
MOVSI,AX
MOVAL,[BX+SI]
ADDAL,KEY_HV
CCP1:
CALLDISPLAY1
MOVDX,I8255ADDA
MOVAL,0F7H
MOVDX,I8255ADDB
MOVAL,10H;
显示个位
ROLAL,CL
CALLTIME1
MOVAL,0E3H
MOVAL,08H;
MOVAL,0D5H
MOVAL,04H;
MOVAL,02H;
INCCL
DECAL
CMPAL,0
JMPKEYSCAN
CCP41:
JMPCCP42
CCP42:
JMPCCP4
CCP4:
RORAL,CL
CALLTIME3
MOVAL,20H;
MOVAL,40H;
JZCCP4
TIME1PROCNEAR
MOVAX,0EFH
T4:
DECAX
MOVBX,0FFFFH
T3:
DECBX
JNZT3
CMPAX,0
JNZT4
TIME1ENDP
TIME2PROCNEAR
MOVAX,0FFFFH
T6:
MOVBX,01EFH
T5:
JNZT5
JNZT6
TIME2ENDP
TIME3PROCNEAR
MOVAX,01EFH
T8:
T7:
JNZT7
JNZT8
TIME3ENDP
TIME4PROCNEAR
T10:
T9:
JNZT9
JNZT10
TIME4ENDP
KYSC1:
ADDKEY_HV,4
ROLSCAN_V,1
CMPSCAN_V,1
JNZKYSC2
MOVAL,0FFH
KYSC2:
JMPSCAN_LP
KEYSCANENDP
PCKEYPROCNEAR
MOVAH,6
MOVDL,0FFH
JEP1
P1:
PCKEYENDP
TIMEPROCNEAR
MOVAX,0FFH
T2:
MOVBX,0FFFH
T1:
JNZT1
JZT2
TIMEENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 动态 方向 箭头 控制 显示 接口 设计 微机 原理 课程设计 说明书