6.7.1 8253的寻址及连接
1.寻址
8253占用4个接口地址,地址由A0、A1来确定。当对8253的计数器进行读操作时,可以读出计数值,具体实现方法有如下两种:
① 使计数器停止计数时,先写入控制字,规定好RL1和RL0的状态——也就是规定读一个字节还是读两个字节。
② 在计数过程中读计数值。这时读出当前的计数值并不影响计数器的工作。为做到这一点,首先写入8253一个特定的控制字:SC1SC000××××。这是控制字的一种形式。
2.连接
为了用好8253,读者必须能熟练地将它连接到系统总线上。图6.35就是8253与8088系统总线连接的例子。
在图6.35中,主要解决了8253与8088总线的连接。通过译码器,使8253占FF04H~FF07H四个接口地址。假如在连接中采用了部分地址译码方式,使A0不参加译码,则
8253的每一个计数器和控制寄存器分别占用两个接口地址。
6.7.2 初始化及其应用
②先写所有计数器的方式字,再装入各计数器的计数值,其过程如图6.38所示。
摘录该段程序如下:
OUT 43H,AL ;写入控制寄存器
MOV AL, 54H ;计数器1,只写低字节,方式2,二进制计数
OUT 43H,AL ;写入控制寄存器
下面是对计数器2的初始化程序:
下面我们以图6.35所示的连接图为例,写出8253的初始化程序。请读者分析此程序的初始化顺序以及各计数器的工作方式。
SET8253: MOV DX,0FF07H
MOV AL,0A8H
OUT DX,AL
从以上的叙述中可以看到,8253在应用上具有很高的灵活性。通过对外部输入时钟信号的计数,可以达到计数和定时两种应用目的。