微机原理与接口 实验题
发布网友
发布时间:2022-04-20 06:53
我来回答
共2个回答
热心网友
时间:2023-06-25 19:28
DATA SEGMENT
APORTEQU0FFF8H
BPORTEQU0FFF9H
CPORTEQU0FFFAH
CWPORTEQU0FFFBH
SEGBUF DB 11H
BITBUF DB 01H
SEGTAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
DB 0FFH,0BFH
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,CWPORT
MOVAL,10001001B ;设置A口 B口为方式0输出,C口输入
OUTDX,AL
KEY1:
CALL DISP ;调显示当前一位子程序
MOVDX,CPORT ;读键盘口
IN AL,DX
CMP AL,0FFH ;判有无键按下
JZ KEY1 无键按下,返回继续查
MOV CX,8 ;有键按下,查找键值
MOV AH,1
KEY2: STC
SHR AL,1
JNC KEY_NUM ;查到键值,跳出去显示
INC AH
LOOP KEY2
JMP KEY1
KEY_NUM:
CMP SEGBUF,AH ;判与前键相同否
JZ KEY1 ;与前键相同,保持
MOV SEGBUF,AH ;与前键不同,换新键值
MOV BITBUF,01H ;重新指向左LED管
JMP KEY1
P_END:MOVAX,4C00H
INT21H
DELAY_10MSPROCNEAR
PUSH AX
PUSH CX
PUSH DX
MOV CX,0
MOV DX,5000
MOV AH,86H
INT 15H
POP DX
POP CX
POP AX
RET
DELAY_10MSENDP
DISP PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV BX,OFFSET SEGTAB
MOV AL,SEGBUF
XLAT
MOV DX,APORT
OUT DX,AL
MOV AL,BITBUF
MOV DX,BPORT
OUT DX,AL
ROL AL,1
MOV BITBUF,AL
CALL DELAY_10MS
POP DX
POP CX
POP BX
POP AX
RET
DISP ENDP
CODEENDS
ENDSTART
热心网友
时间:2023-06-25 19:29
楼主,我知道你是川农的~~~追问没答案 就不要回复 暴露自己人