0
点赞
收藏
分享

微信扫一扫

汇编语言 8086+8255A仿真中断控制

结合​二进制与十六进制的转换可对下面仿真的开关进行操作

文件链接:​​https://share.weiyun.com/79WpsSxH​​

代码

DATA SEGMENT
TABLE DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H   ; 数码管 数字显示
  DB 00H, 18H, 08H, 03H, 46H, 21H, 06H, 0EH
DATA ENDS

CODE SEGMENT PUBLIC 'CODE'
 ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA
MOV DS, AX

MOV AL, 90H
OUT 0F6H, AL

IN_PORTA: IN AL, 0F0H
AND AL, 0FH
MOV BX, OFFSET TABLE
XLAT
OUT 0F2H, AL

CALL DELAY
JMP IN_PORTA

DELAY PROC
PUSH CX
MOV CX, 100H
LOOP $
POP CX
RET

DELAY ENDP

MOV AH, 4CH
INT 21H

ENDLESS: 
JMP ENDLESS
CODE    ENDS
END START

原理图:
汇编语言 8086+8255A仿真中断控制_十六进制
实现效果:
当全部开关闭合时,数码管显示“0”。
汇编语言 8086+8255A仿真中断控制_十六进制_02
当第一个开关打开时,数码管显示“1”。
汇编语言 8086+8255A仿真中断控制_十六进制_03
当第二个开关打开时,数码管显示“2”。
汇编语言 8086+8255A仿真中断控制_数码管_04
当要数码管显示“A”,只需要打开第二个开关和第四个开关即可。
汇编语言 8086+8255A仿真中断控制_十六进制_05
当要数码管显示“D”,只需要打开第一个开关、第三个开关和第四个开关即可。
汇编语言 8086+8255A仿真中断控制_原理图_06


举报

相关推荐

0 条评论