初始化8253芯片需要遵循以下步骤:
写入控制字
首先,需要向8253的控制寄存器写入控制字,以选定计数通道(三个通道中的一个)并规定该计数器的工作方式、计数方式以及计数初值的长度和装入顺序。控制字决定了计数器的读/写格式。
写入计数初值
根据控制字的要求,向已选定的计数器写入计数初值。若控制字规定只写8位,则只需写入一次8位计数值;若控制字规定写16位,则必须分两次写入,先写低8位,后写高8位。当初值为0时,也要分两写入,因为二进制计数时“0”表示65336,在BCD码计数时“0”表示10000。
示例
```assembly
; 初始化计数器0
MOV DX, 066H ; 控制口地址
MOV AL, 00100011B ; 控制字,方式3,二进制计数,初值写入方式
OUT DX, AL ; 写入控制字
; 写入计数初值
MOV AX, 1000 ; 计数初值(十进制)
MOV DX, 060H ; 计数器0的端口地址
MOV AL, AH ; 高8位
OUT DX, AL
MOV AL, AL ; 低8位
OUT DX, AL
```
注意事项
控制字和计数值的写入顺序
控制字必须写在计数值之前,因为计数器的读/写格式由控制字决定。
计数值的写入方式
若控制字规定只写8位,则只需写入一次8位计数值;若控制字规定写16位,则必须分两次写入,先写低8位,后写高8位。当初值为0时,也要分两写入。
计数器的端口地址
各个计数器的控制字写入同一个端口地址(控制字寄存器),而计数值则写入各自计数器的相应寄存器中。
通过以上步骤和示例代码,可以正确初始化8253芯片,并确保其按预期工作。