搜索

微机原理与接口 实验题

发布网友 发布时间: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

楼主,我知道你是川农的~~~追问没答案 就不要回复 暴露自己人

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top