您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《计算机组成原理与汇编语言》 > 第6章 常用的输入输出接口芯片

第8节 8255的寻址及初始化

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所示。

摘录该段程序如下:

MOV      AL,36H          ;计数器0,双字节,方式3,十六进制计数

OUT      43H,AL          ;写入控制寄存器

MOV      AL,0

OUT      40H,AL          ;
写低字节

OUT      40H,AL          ;
写高字节

 

由于规定工作在方式3,在OUT0输出端可以获得对称方波。下面是对计数器1的初始化程序:

MOV     AL,  54H           ;计数器1,只写低字节,方式2,二进制计数

OUT     43H,AL             ;写入控制寄存器

MOV     AL,18              ;
将低字节计数值18写入计数器1

OUT     41H,AL

下面是对计数器2的初始化程序:

MOV     AL,0B6H         ;选择计数器2,写双字节,方式3,二进制计数
 
OUT     43H,AL          ;装入控制寄存器

MOV     AX,533H

OUT     42H,AL          ;
送低字节

MOV     AL,AH

OUT     42H,AL         ;
装入高字节

下面我们以图6.35所示的连接图为例,写出8253的初始化程序。请读者分析此程序的初始化顺序以及各计数器的工作方式。

SET8253: MOV  DX,0FF07H

MOV  AL,36H

OUT  DX,AL

MOV  AL,71H

OUT  DX,AL

MOV  AL,0B5H

OUT        DX,AL

MOV       DX,0FF04H

MOV     AL,0A8H

OUT      DX,AL

MOV     AL,61H

OUT      DX,AL

MOV     DX,0FF05H

MOV     AL,00H

OUT      DX,AL

MOV     AL,02H

OUT      DX,AL

MOV     DX,0FF06H

MOV     AX,0050H

OUT    DX,AL

MOV   AL,AH

OUT    DX,AL

从以上的叙述中可以看到,8253在应用上具有很高的灵活性。通过对外部输入时钟信号的计数,可以达到计数和定时两种应用目的。