8253/8254计数器定时器
1.8253/8254基础
- 8253是一个可编程的三通道计数器芯片,可以通过CLK时钟信号线提供时钟/计时器服务
- 8254与8253几乎一致,但有四通道计数器
- 8253芯片有四个端口地址,一般为通道0/1/2和控制端口
- 控制字通过控制端口写入后,计数初始值通过各个通道端口送入
- 计数器可以通过级联的方式扩展计数/计时范围,将OUT连接到子级的CLK即可
- 常用的工作方式:方式0(到点即停,OUT=1),方式2(分频器,自动循环,应用于循环计时),方式3(方波发生器,固定频率的音响信号)
2.初始化
通道0地址120H,通道1地址122H,通道2地址124H,控制端口126H
要求对其通道0初始化,使其工作与方式0,二进制计数,计数初始值6688H
MOV AL,30H ;查表得控制字
MOV DX,126H
OUT DX,AL ;送入控制端口
MOV AL,88H ;LSB的低位
MOV DX,120H
OUT DX,AL ;送入通道0
MOV AL,66H ;LSB的高位
OUT DX,AL ;送入通道0
3.一些特殊应用
- 从通道0读取剩余计数值
假设0端口地址0E0H,控制端口0E6H
MOV AL,00H ;锁存命令
OUT 0E6H,AL ;送入控制端口
IN AL,0E0H ;读取0通道计数