8253计时器:0#计数器:340H;1#计数器:341H;2#计数器:342H;控制口:343H;编写程序:设已有信号源频率为1MHz,现要求用一片8253定时1秒钟,设计出硬件链接图并编程初始化
时间: 2024-02-13 12:02:19 浏览: 21
以下是8086汇编代码:
```
MOV AL, 00110110B ; 将控制字写入端口 343H
OUT 343H, AL
MOV AL, 10110100B ; 将计数器 0 写入端口 340H
OUT 340H, AL
MOV AL, 00110010B ; 将计数器 0 写入端口 340H
OUT 340H, AL
MOV AL, 00000010B ; 将计数器 0 写入端口 340H
OUT 340H, AL
MOV AL, 11101110B ; 将计数器 0 的初值写入端口 340H
OUT 340H, AL
MOV AL, 00110110B ; 将控制字写入端口 343H
OUT 343H, AL
MOV AL, 10110110B ; 将计数器 0 的计数方式和工作模式写入端口 340H
OUT 340H, AL
MOV AL, 00001111B ; 将计数器 0 的计数值写入端口 340H
OUT 340H, AL
WAIT:
IN AL, 342H ; 等待计数器 0 计数完毕
AND AL, 00000001B
JZ WAIT
MOV AL, 10110100B ; 将计数器 0 写入端口 340H
OUT 340H, AL
MOV AL, 00110010B ; 将计数器 0 写入端口 340H
OUT 340H, AL
MOV AL, 00000010B ; 将计数器 0 写入端口 340H
OUT 340H, AL
```
硬件链接图如下:
```
+----------+
| |
CLK ----| 8253 |---- OUT
| |
| 0 |---- OUT
| |
| 1 |
| |
| 2 |
| |
+----------+
```
其中,CLK 为信号源输入,OUT 为计数器输出,GATE 为计数器控制端口。这里使用计数器 0 实现了定时 1 秒钟的功能。