在TD-PITE实验装置,用wmd86,8255芯片,A口 地址0640H, B口地址 0642H ,控制口 地址 0646H ,让灯与开关状态保持一致,当全“0”时闪烁,全“1”时退出,给出代码
时间: 2024-01-12 10:05:46 浏览: 134
汇编 8255应用,开关控制流水灯,间隔闪烁
4星 · 用户满意度95%
下面是一段用汇编语言实现的在TD-PITE实验装置上,用8255芯片控制灯与开关状态保持一致的代码,当8255端口输入全“0”时,灯会闪烁,当输入全“1”时,程序退出:
```
.MODEL SMALL
.STACK 100H
.DATA
PORTA EQU 0640H ;定义8255芯片的端口A
PORTB EQU 0642H ;定义8255芯片的端口B
CTRL EQU 0646H ;定义8255芯片的控制字寄存器
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX ;初始化数据段寄存器
MOV DX, CTRL
MOV AL, 80H
OUT DX, AL ;初始化8255芯片控制字寄存器,将端口A设置为输出,端口B设置为输入
WAIT:
IN AL, PORTB
AND AL, 0FH
CMP AL, 0FH
JE QUIT ;如果输入全“1”,则退出程序
MOV AH, AL
OUT PORTA, AH
CMP AL, 00H
JE BLINK ;如果输入全“0”,则开始闪烁灯
JMP WAIT
BLINK:
MOV AH, 01H
OUT PORTA, AH
CALL DELAY
MOV AH, 00H
OUT PORTA, AH
CALL DELAY
JMP WAIT
QUIT:
MOV AH, 00H
OUT PORTA, AH
MOV AH, 4CH
INT 21H ;退出程序
DELAY:
MOV CX, 0FFFFH
LOOP1:
DEC CX
JNZ LOOP1
RET
MAIN ENDP
END MAIN
```
在这段代码中,我们使用了8255芯片控制端口A的输出状态,通过输入端口B的状态来判断开关状态。当输入全“0”时,灯会开始闪烁,每隔一段时间改变一次状态;当输入全“1”时,程序就会退出。需要注意的是,这段代码需要在DOS环境下使用wmd86编译器编译,并在TD-PITE实验装置上运行。
阅读全文