microcomputer_principle_15_可编程并行数字接口电路
Carpe Tu Black Whistle

可编程并行接口芯片

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

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

可编程定时器8253

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

计数脉冲周期恒定 –> 定时
定时的事件长度取决于时钟脉冲的周期及脉冲数

计数初值: 为了计数需求,所需要的脉冲数

两种计数方式:

  • 加法计数
  • 减法计数

8253特点

  • 可编程的逻辑器件;
  • 非通道型的接口,具有特定功能;
  • 可实现计数和定时;
  • 工作方式:
    • 减法计数
    • 计数值减为0时输出相应控制信号
    • 输出控制信号的形式可通过软件设置

  1. 外部主要引脚信号功能及内部结构
  2. 计数启动方式
  3. 工作方式
  4. 控制命令字格式
  5. 应用

外部引线

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

image

右边示意图的芯片右侧引脚,排列了三组完全相同的 CLK, GATE, OUT

内部结构

内部结构特点

  • 具有三个完全相同的、独立的计数/定时器

image

  • 内部3个计数器均为减法计数器
    • 根据计数脉冲的频率及需要定时的事件长度确定计数初值。
  • 控制寄存器 –> 存放控制命令字
  • 每个计数器含:
    • 16bit初值寄存器
    • 16bit计数寄存器

两寄存器,拥有相同端口地址,存放计数初值
仅有计数寄存器会count

  • 三个可独立工作的16bit定时/计数器,一个控制寄存器。共占用4个端口地址。
  • 4个端口的地址编码:
    1
    2
    3
    4
    5
    A1  A0
    0 0 CNT0
    0 1 CNT1
    1 0 CNT2
    1 1 控制寄存器

A1和A0时片选地址

计数启动方式

启动方式由GATE端信号的形式决定

软件启动 –> GATE端为高电平
硬件启动 –> GATE端有一个上升沿

工作方式

  • 方式0
    • 软件启动,不自动重复计数;
    • 计数结束输出高电平。
  1. 当GATE端为高电平时,输入初值后开始计数。
  2. 计数结束后输出高电平。
  3. 其输出信号可用于外部可屏蔽中断请求信号
  • 方式1
    • 硬件启动,不自动重复计数;
    • 计数开始输出低电平,结束后又变高。

自动重复计数->计数结束后,计数初值自动倒入计数器

  1. 计数一旦启动,GATE端既变低电平也不会影响计数。
  2. 可重复出发。当计数到0后,不用再次写入计算初值,只要重新产生GATE上升沿,即可获得一个同样宽度的负脉冲
  • 方式2
    • 软、硬件启动,自动重复计数。
    • 计数到最后一个脉冲时输出低电平
  1. 可输出频率为(1/N)CLK脉冲频率的连续方波信号。
  2. 每1个OUT端脉冲包含(N-1)*CLK的正脉冲,1CLK的负脉冲
  • 方式3
    • 软、硬件启动,自动计数
    • 输出对称方波
  1. 若N为偶数,输出频率为(1/N)CLK频率的连续对称方波信号。
  2. 若N为基数,输出波形为(N+1)/2CLK周期正脉冲,(N-1)/2CLK负脉冲

image

  • 方式4

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

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

工作方式小结

  • 需要两个写脉冲————两次写操作
    • 第1个写脉冲写入控制字
    • 第2个写脉冲写入计数初值
      • 如果初值是8位字长,则一次写入;
        *若初值为16位字长,则需两次写入;
  • 不同的工作方式,有不同的计数启动方法。
  • 可根据对输出波形的要求,选择不同的工作方式。
  • 能输出连续波形的只有方式2和方式3。

控制字

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

image

有点糊,慢慢解说各个位代表含义

  1. 高位(7bit/6bit SC) 片选信号
  • 00: 计数器0
  • 01: 计数器1
  • 10: 计数器2
  • 11: 非法
  1. 计数长度选择(5bit/4bit)RL
  • 00: 将计数器中的数据锁存于缓冲器
  • 01: 只读/写计数器低8位
  • 10: 只读/写计数器高8位
  • 11: 先读/写低8位,再高8位
  1. M(3/2/1bit)
  • 000 方式0
  • 001 方式1
  • x10 方式2
  • x11 方式3
  • 100 方式4
  • 101 方式5
  1. BCD最低位(计数值选择)
    1 BCD计数
    0 二进制计数

8253应用

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

初始化程序流程

image

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

image

另一种初始化方法

image

8253接口

  • 可编程8bit并行接口
    • 通过软件初始化控制其工作方式和计数/定时市场
  • 实现对外部设备的定时/计数控制
    • 减法计数器

可编程并行接口8255

  • 通道型接口
    • 主要用于数据的输入或输出
  • 含3个独立的8位并行输入/输出端口
    • 2个为8位端口(PA,PB)
    • 1个可拆分为两个4位端口(PC口)
  • 各端口均具有数据的控制和锁存能力
    • 既可作为输入端口,也可以作输出端口。
  • 可通过编程,设置各端口工作在某一确定状态下

image

引线

连接系统端的主要引线:

  • D0-D7
  • #CS
  • #RD
  • #WR
  • A0, A1
  • RESST
1
2
3
4
5
A1  A0
0 0 PORT A
0 1 PORT B
1 0 PORT C
1 1 控制寄存器

三个端口对应:
PA0-PA7 PORT A
PB0-PB7 PORT B
PC0-PC7 PORT C

工作方式

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

方式0

  • 相当于三个独立的8位简单接口
  • 各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出
  • C端口可以是一个8为的简单端口,也可以分为两个独立的4位端口
  • 常用于连接简单外设,适于无条件或查询方式

习惯上,A和C作为8位数据的输入或输出口
C端口的某些位作为状态输入

NOTE: 若C端口低4位中,有一位作为输入口,则低4位中其他位数,均为输入口。

方式1

  • 利用一组选通控制信号控制A端口和B端口的数据输入输出
  • A口、B口作输入或输出口,C口的部分位用作选通控制信号
  • A口、B口在作为输入输出时的选通信号不同

image

PC0,PC1,PC2会作为B端口工作在方式1下的选通控制信号
PC3,PC6,PC7将作为A端口工作在方式1下的选通控制信号

应用:

  • 方式1主要用于中断控制方式下的输入输出
  • C端口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口。

方式2

  • 双向输入输出方式

    • 可以即作为输入口,又作为输出口。
  • 只有A端口可以工作在方式2下

  • 可使A端口作为双向端口所有

  • 用于中断控制方式

  • 当A口工作于方式2时

    • B口可工作于方式1
      • 此时C口所有的位都用作选通控制信号的输入输出
    • B口也可工作于方式0
      • 此时C口的剩余位也可工作于方式0

方式控制字及位控制字

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

8255芯片的应用

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