微机原理与接口技术(七)

内容提要:

两种可编程并行接口芯片的应用

  • 可编程芯片:
    • 可以通过软件命令,控制芯片的工作方式
      • 数据传输方向
      • 输入/输出方式

可编程定时器8253

计数与定时

  • 定时/计算器的工作基准是时钟脉冲

见图136

136

  • 计数脉冲周期恒定
  • 定时的时间长度取决于时钟脉冲的周期及脉冲数
    • 要求定时100秒,计数脉冲数:100
      • 100为计数初值,由需求和条件决定
    • 分为加法计数与减法计数

8253芯片特点

  • 可编程的逻辑器件

  • 非通道型的接口,具有特定功能

  • 可实现计数和定时

  • 工作方式:

    • 减法计数
    • 计数值减为0时输出相应控制信号
    • 输出控制信号的形式可通过软件设置
  • 特点:

    ① 外部主要引脚信号,功能及内部结构

    ② 计数启动方式

    ③ 工作方式

    ④ 控制命令字格式

    ⑤ 应用

1.外部引线及内部结构

  • 连接系统端的主要引线:
    • D0——D7
    • #CS
    • #RD
    • #WR
    • A0,A1
  • 连接外设端的主要引线:
    • CLK——时钟脉冲输入
    • GATE——门控信号输入
    • OUT——定时输出

见图137

137

内部结构特点
  • 具有三个完全相同的、独立的计数/定时器

见图138

138

  • 每个计数器中都有 16b初值寄存器 和 16b计数寄存器,因此每个计数器占用一个端口地址
结构特点
  • 内部3个计数器均为减法计数器

    • 根据计数脉冲的频率及需要定时的时间长度确定计数初值
  • 每个计数器含 16位初值寄存器(存放计数初值) 和 16位计数寄存器,拥有相同端口地址

  • 控制寄存器(存放控制命令字)

外部引线及内部结构
  • 三个可独立工作的16位定时/计数器,一个控制寄存器。共占用4个端口地址。

  • 4个端口的地址编码:

    A1 A0
    0 0 CNT0
    0 1 CNT1
    1 0 CNT2
    1 1 控制寄存器

2.计数启动方式

  • 启动方式由GATE端信号的形式决定
  • 软件启动 → GATE端为高电平
  • 硬件启动 → GATE端有一个上升沿

3.工作方式

  • 方式0

    • 软件启动,不自动重复计数
    • 计数结束输出高电平。

    见图139

    139

  • 方式1

    • 硬件启动,不自动重复计数

    • 计数开始输出低电平,结束后又变高。

      • 计数一旦启动,GATE端既使变 低也不会影响计数。

      • 可重复触发。当计数到0后,不用再次写入计数初值,只要再次出现GATE上升沿,即可产生 一个同样宽度的负脉冲

    见图140

    140

  • 方式2

    • 软、硬件启动,自动重复计数。
    • 计数到最后一个脉冲时输出低电平
      • 可输出频率为(1/N) CLK脉冲频率的连续方波信号。
      • 每1个OUT端脉冲包含 (N-1)*CLK的正脉冲,1CLK的负脉冲。

    见图141

    141

  • 方式3

    • 软、硬件启动,自动重复计数
    • 输出对称方波
      • 若N为偶数,输出频率 为(1/N)CLK频率的 连续对称方波信号。
      • 若N为奇数,输出波形 为 (N+l)/2CLK 周 期 正 脉 冲 , (N-1)/2CLK 负 脉冲。

    见图142

    142

  • 方式4

    • 软件启动,不自动重复计数。
    • 计数结束输出一个CLK宽度的 低电平

    见图143

    143

  • 方式5

    • 硬件启动,不自动重复计数
    • 波形与方式4相同

    见图144

    144

工作方式小结
  • 需要两个写脉冲——两次写操作
    • 第1个写脉冲写入控制字
    • 第2个写脉冲写入计数初值
  • 不同的工作方式,有不同的计数启动方法。
  • 可根据对输出波形的要求,选择不同的工作方式
  • 能输出连续波形的只有方式2和方式3。

4.控制字

  • 用于设定各计数器的工作方式

见图145

145

  • 最大16位BCD数:9999
  • 最大16位二进制数:FFFF
  • 8253为减法计数器,最大计数初值:0

5.8253的应用

  • 硬件设计
    • 与系统的连接
  • 软件设计
    • 初始化程序设计
      • 写入控制字
      • 置计数初值
与系统的连接示意

见图146

146

应用中的注意点
  • 每一次启动计数,需有两次写操作:

    • 写控制字
    • 写计数器初值
      • 如果初值为8位字长,则一次写入;若初值为16位字长,则需两次写入
  • 每个计数器的控制命令字均送入控制寄存器

  • 各计数器的计数初值送到该计数器的计数寄存器及初值寄 存器。

初始化流程

见图147

147

  • 当有两个以上计数器被应用时的初始化程序设计流程:

见图148

148

见图149

149

8253应用例
  • 采用8253作定时/计数器,其接口地址为0120H~0123H。

  • 输入8253的时钟频率为2MH。要求:

    • CNT0每10ms输出一个CLK周期宽的负脉冲
    • CNT1输出10KHz的连续方波信号
    • CNT2在定时5ms后产生输出高电平
  • 得出:

    • 工作的计数器、工作方式、计数初值、计数脉冲频率
  • 画线路连接图,并编写初始化程序

  • 计算计数初值

    CNT0:10ms/0.5us=20000

    CNT1:2 MHz/10KHz=200

    CNT2: 5ms/0.5us=10000

  • 确定控制字

    CNT0:方式2,16位计数值 → 00110100

    CNT1:方式3,低8位计数值 → 01010110

    CNT2:方式0,16位计数值 → 10110000

见图150

150

  • 初始化程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CNT0:
    MOV DX, 0123H
    MOV AL, 34H
    OUT DX, AL
    MOV DX, 0120H
    MOV AX, 20000
    OUT DX, AL
    MOV AL, AH
    OUT DX, AL
    CNT1:
    ...
    CNT2:
    ...
    8523接口
  • 可编程8bit并行接口

    • 通过软件初始化控制其工作方式和计数/ 定时时长
  • 实现对外部设备的定时/计数控制

    • 减法计数器

可编程并行接口8255

1.并行接口8255的特点

  • 通道型接口

    • 主要用于数据的输入或输出
  • 含3个独立的8位并行输入/输出端口

    • 2个为8位端口(PA,PB)
    • 1个可拆分为两个4位端口(PC口)
  • 各端口均具有数据的控制和锁存能力

    • 既可作为输入端口,也可以作输出端口。
  • 可通过编程,设置各端口工作在某一确定状态下。

见图151

151

2.结构

见图152

152

3.引线

  • 连接系统端的主要引线:
    • D0——D7
    • #CS
    • #RD
    • #WR
    • A0,A1
    • REAST
A1 A0
0 0 A端口
0 1 B端口
1 0 C端口
1 1 控制寄存器
  • 连接外设端的引脚:

    • PA0——PA7
    • PB0——PB7
    • PC0——PC7

    以上三种分别对应A、B、C三个端口

8255与系统的连接示意图

见图153

153

4.工作方式

  • 基本输入/输出方式(方式0)
  • 选通工作方式(方式1)
  • 双向传送方式(方式2)

方式0:

  • 相当于三个独立的8位简单接口
  • 各端口既可设置为输入口,也可设置为输出口,但不能 同时实现输入及输出
  • C端口可以是一个8位的简单接口,也可以分为两个独立 的4位端口
  • 常用于连接简单外设,适于无条件或查询方式
方式0的应用:
  • 习惯上:
    • A端口和B端口作为8位数据的输入或输出口
    • C口的某些位作为状态输入
  • 注:
    • 若使C端口低4位中某一位作为输入口,则低4位中其他位都应作 为输入口。同时可设高4位作为输出。
8255工作于方式0的连接示意图

见图154

154

方式1:

  • 利用一组选通控制信号控制A端口和B端口的数 据输入输出
  • A口、B口作输入或输出口,C口的部分位用作 选通控制信号
  • A口、B口在作为输入和输出时的选通信号不同
方式1的应用:
  • 方式1主要用于中断控制方式下的输入输出
  • C口的8位除用作选通信号外,其余位可工作 于方式0下,作为输入或输出口。

方式2:

  • 双向输入输出方式
    • 可以既作为输入口,又作为输出口。
  • 只有A端口可工作在方式2下
方式2的应用:
  • 可使A端口作为双向端口所有
  • 用于中断控制方式
  • 当A口工作于方式2时:
    • B口可工作于方式1
      • 此时C口的所有位都用作选通控制信号的输入输出
    • B口也可工作于方式0
      • 此时C口的剩余位也可工作于方式0

4.方式控制字及位控制字

  • 方式控制字:
    • 用于确定3个端口的工作方式及数据传送方向;
  • 位控制字
    • 仅用于C端口
    • 可设置C口某位的初始状态(为高电平或低电平)
    • 当其工作于方式0下且作为输出口时,一般需要对作为输出的 位设置初始状态(即初始化)

5.8255芯片的应用

  • 芯片与系统的连接
  • 芯片的初始化
  • 相应的控制程序

8255应用例:

  • 8086CPU通过8255实施监控。8255端口地址为1020H-1023H,启动操作由端 口B的PB7控制(高电平有效),端口A输入8个监控点的状态(每个引脚接 一个监控点),只要其中任一路出现异常情况(高电平),系统就通过与 PC0相连的信号灯报警(高电平灯亮),要求信号灯亮灭3次。要求:

    • 设计系统线路图,要求用138译码器设计译码电路;
    • 编写8255初始化程序及启动、测试和报警控制程序
  • 地址范围:

    • 0001 0000 0010 00XX

见图155

155

控制流程

见图156

156

控制程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MOV DX,1023H
MOV AL,1001 0000B
OUT DX,AL
MOV AL,0
OUT DX,AL
MOV DX,1021H
MOV AL,80H
OUT DX,AL
A:MOV DX,1020H
MOV CX,3
MOV DX,1022H
MOV AL,1
B: OUT DX,AL
CALL DELAY
NOT AL
CALL DELAY
LOOP B
JMP A
  • 利用8255和8253构造报警系统:

见图157

157

8255应用要求

  • 主要引线功能及结构
  • 3种工作方式及其特点
  • 应用
    • 芯片与系统的连接
    • 芯片的初始化编程
    • 数据输入/输出控制程序设计

可编程并行数字接口小结

学习要求

  • 了解什么是可编程

  • 可编程定时/计数器

    • 启动方式
    • 不同工作方式下的输出波形特点
    • 初始化编程
    • 与系统的连接

    根据需要选择相应的工作方式

  • 可编程并行数字接口

    • 不同工作方式的适应场合
    • 与系统的连接
    • 初始化编程
    • 相关控制程序
  • 利用可编程定时计数器8253、可编程并行接口8255设计需要的I/O接口控制系统

可编程并行数字接口应用例

利用8255和8253构造报警系统

  • 设计一个简易的安全报警系统,外部时钟频率18.9KHz。系统功能要求如下:
    • 在房间门窗等8个入口处安装探测器,PC7控制警报灯的亮或灭,PC6控制8253通道0的启动。正常情况下,探测器输出为低电平,当探测到有异常时,探测器输出为高电平。
    • 利用8253通道0产生100Hz频率的方波,使警铃发出警报声。
    • 系统启动后,在初始状态下,警铃不响,警灯不亮。系统不断检测各探测器的输出电平,如果检测到有任意一个探测器的输出为高电平,并且在随后的5次连续检测中,读入的探测器状态均不为0,则启动报警,使报警灯亮( PC6 、PC7输出高电平),警铃发出100Hz的报警声。

系统连接图

见图158

158

系统软件设计

见图159

159