如图所示,将8255的C端口接8个发光二极管,使这8个发光二极管依次亮灭,其中74LS138译码器与地址总线已经连接正确。(1)C口端口地址为多少?控制口端口地址为多少? (2)按位置位/复位字0FH含义是什么? (3)试编写实现8个发光二极管循环亮灭的程序。(已知有一个延时1秒的子程序,其入口地址为DELAY1S)
时间: 2024-03-18 10:42:35 浏览: 27
好的,我已经明白了您的要求。以下是我的回答:
(1)C端口的端口地址为 90H,控制口的端口地址为 91H。
(2)按位置位/复位字0FH的含义是:将8255的A、B、C三个端口设置为输出模式。
(3)以下是实现8个发光二极管循环亮灭的程序:
```
ORG 100H ; 程序从100H地址开始
MOV AL, 0FH ; 将0FH存入累加器
OUT 91H, AL ; 将0FH输出到控制口,将8255的A、B、C三个端口设置为输出模式
MOV BX, 0001H ; 将二进制数00000001存入BX寄存器,作为第一个发光二极管的控制信号
MOV CX, 08H ; 设置循环次数,控制8个发光二极管的循环亮灭
LOOP:
OUT 90H, BL ; 将BX寄存器的值输出到C端口,控制对应的发光二极管亮起
CALL DELAY1S ; 调用延时1秒的子程序
INC BX ; BX寄存器加1,控制下一个发光二极管亮起
CMP BX, 0100H ; 判断是否超过了8个发光二极管
JZ RESET ; 如果超过了8个,则跳转到RESET处
JMP LOOP ; 否则继续循环
RESET:
MOV BX, 0001H ; 将BX寄存器的值重置为00000001,控制第一个发光二极管亮起
DEC CX ; 循环次数减1
JNZ LOOP ; 如果循环次数不为0,则跳转回LOOP处,继续循环
HLT ; 程序结束
DELAY1S:
PUSH AX ; 保存现场
PUSH BX
PUSH CX
MOV AX, 0FFFFH ; 设置计数器初值
DELAY:
DEC AX ; 计数器减1
CMP AX, 0 ; 判断计数器是否为0
JNZ DELAY ; 如果计数器不为0,则继续循环
POP CX ; 恢复现场
POP BX
POP AX
RET ; 返回主程序
```
该程序通过循环控制8个发光二极管的亮灭顺序,并且在每个发光二极管亮起时调用延时1秒的子程序,使得发光二极管的亮灭效果更加明显。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)