编号: 23
课程名称:微机原
MOV DX,0604H
MOV BX,OFFSET VA3
MOV AL,[SI]
XLAT VA3
;查表得出对应数字的七段数码管段码
OUT DX,AL
CALL TIME
INC SI
INC DI
LOOP A2
JMP A1
TIME : PUSH CX
;延时程序
MOV CX,0010H
TIME1 :MOV AX,009EH
TIME2 :DEC
AX
JNZ TIME2
LOOP TIME1
POP
CX
RET
CODE
ENDS
END
START
题目二:将试验箱下两行 8 个键按下表定义键值, 按任意键在显示器上显示对应键值,要求显示值能左移。
3 2 F D
B C 9 7
程序框图:
开始
8255 初始化
N
有无压键 显示扫描
Y
保存数据
Y
有无放键
N
显示扫描
源程序:
STACK
STACK
DATA
VA1
VA2
VA3
VA4
TABLE0
DATA
CODE
SEGMENT STACK
DW 64 DUP (?)
ENDS
SEGMENT
DB 07CH,0BCH,0DCH,0ECH,0F4H,0F8H
DB 0FCH,0FCH,0FCH,0FCH,0FCH,0FCH
DB 00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H
DB 0FCH,060H,0DAH,0F2H,066H,0B6H,0BEH,0E0H,
DB 0FEH,0E6H,0EEH,03EH,09CH,07AH,09EH,08EH
ENDS
SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV DX,0606H
MOV AL,82H
OUT DX,AL
MOV BX,0000H
; 8255A 初始化
--------- 键盘测试 ------------
STT:
MOV AL,00H
MOV DX,0600H
OUT DX,AL
NEXT:
MOV DX,0602H
IN AL,DX
AND AL,0F0H
CMP AL,0F0H
JNA KEYABC
CALL DISP
JMP STT
KEYABC:
CALL TIME
MOV DX,0602H
IN AL,DX
AND AL,0F0H
CMP AL,0F0H
JNZ KEY
JMP STT
; ---------- 键盘扫描程序 --------
KEY:
MOV DX,0600H
MOV AL,0F8H
OUT DX,AL
;键盘扫描第一列
MOV DX,0602H
IN AL,DX
TEST AL,080H
JNZ KEY_3
CALL KEYB
JMP STTK
;8255 芯片 B 口输入数据
;键盘扫描第一列,第三行( PB07 )
;按键 B 没被按下,跳到 KEY_3 检测按键 3是否被按下
;检测到按键 B 被按下,调用按键 B 处理子程序
;放键测试,等待按键者松手,再进行下一步
KEY_3
:
TEST AL,040H
JNZ KEY_C
CALL KEY3
JMP STTK
;键盘扫描第一列
广工微机课程设计修改有注释(四位16进制加法运算三位16进制乘法运算) 来自淘豆网m.daumloan.com转载请标明出处.