


有没有帮帮忙,微机原理不会写,搞不定啊!能帮忙的,一定感谢,
当然可以!下面详细介绍8253定时/计数器芯片“方式0”运行的原理、电路连接方法和程序编写方式,非常适合微机原理初学者。
(如果你用的是汇编语言,最后有示例代码;如果你用C51或单片机也可以参考)
假设你用的是8253芯片,连接如下:
控制字格式(8位):
方式0控制字举例(计数器0,读写低位后高位,方式0,二进制):
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 名称 | SC1 | SC0 | RW1 | RW0 | M2 | M1 | M0 | BCD |
| 值 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
即 00 11 000 0,二进制为 00110000,十六进制为 0x30
假设8253地址如下(以PC机为例,端口地址不同请按实际情况):
61h63hMOV AL, 30H ; 控制字,方式0,计数器0,低位后高位,二进制
OUT 63H, AL ; 输出到控制字端口
MOV AL, LOW 1000H ; 写低8位
OUT 61H, AL ; 输出到计数器0端口
MOV AL, HIGH 1000H ; 写高8位
OUT 61H, AL ; 输出到计数器0端口
假设8253地址如下:
61h63hMOV AL, 30H ; 控制字:计数器0,方式0,低高字,二进制
OUT 63H, AL ; 写控制字
MOV AL, 00H ; 初值低字节
OUT 61H, AL ; 写入计数器0
MOV AL, 10H ; 初值高字节
OUT 61H, AL ; 写入计数器0
; 此时8253开始计数,计到0 OUT0变高电平,可用于中断
说明:如果端口和你的系统不同,请查阅主板8253端口地址。
如需C语言、C51单片机示例,也可以说明你的平台!