SlideShare a Scribd company logo
1 of 84
第 7 章常用接口芯片   7.3  可编程串行接口 8251   7.4  模拟 I/O 接口   7.5  例题解析 7.2  可编程定时 / 计数器 8253/8254  7.1  可编程并行接口 8255
第 7 章  常用接口芯片 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
7.1  可编程并行接口 8255 7.1.1 并行通信的概念 1.  并行通信与串行通信 随着多微机系统的应用和微机网络的发展,计算机与外部设备之间、计算机和计算机之间常常要进行数据交换,这些数据交换可称为数据通信。数据通信方式有两种: 并行通信 与 串行通信。 并行通信 是指数据的各位同时进行传送的通信方式,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机内部各种总线就是以并行方式传送数据的。 串行通信 是指数据逐位顺序传送的通信方式。串行传送的速度低,但只需要很少几根通信线,适用于长距离而速度要求不高的场合。在网络中传送数据绝大多数采用串行方式。
2.  并行接口 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
一个典型的并行接口与 CPU 、外设的连接图
3.  数据输入过程 ,[object Object],[object Object],[object Object],[object Object],[object Object]
4.  数据输出过程 ,[object Object],[object Object],[object Object],[object Object],[object Object]
7.1.2 8255 外部引脚及内部结构 1. 8255 内部结构 数据 总线 缓冲器 内部控制线 内部数据线 D 0 ~ D 7 A 组 控制 A 组 端口 A A 组 端口 C 上部 B 组 控制 B 组 端口 B B 组 端口 C 下部 读写 控制 逻辑 PC 0 ~ PC 3 PB 0 ~ PB 7 PC 4 ~ PC 7 PA 0 ~ PA 7 RD WR A 0 A 1 CS RESET
⑴  面向 CPU 的接口电路 ,[object Object],[object Object],[object Object],[object Object]
⑵  面向外设的接口电路 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
⑶  内部控制逻辑 ,[object Object],[object Object]
与处理器接口 写端口 A 写端口 B 写端口 C 写控制字 写操作 WR* 读端口 A 读端口 B 读端口 C 非法 读操作 RD* 60H 61H 62H 63H I/O 地址 0  0  0 0  0  1 0  1  0 0  1  1 CS* A1 A0
2. 8255 的引脚功能 ,[object Object]
7.1.3 8255  的工作方式 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
方式 0 输入时序 请体会这里 8255A 的 数据缓冲作用 data data 输入端口 D 0 ~ D 7 RD CS,A 1 ,A 0
方式 0 输出时序 8255A 对 CPU 通过它 输出给外设的数据进行锁存 WR data data 输出端口 D 0 ~ D 7 CS,A 1 ,A 0
方式 1 输入引脚: A 端口 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示 A 口已经接收数据 中断请求信号 请求 CPU 接收数据 PC 4 PC 5 PC 3 PA 7 ~PA 0 INTE A IBF A INTR A STB A 中断允许触发器
方式 1 输入引脚: B 端口 方式 1 需借用端口 C 用做联络信号 同时还具有中断请求和屏蔽功能 PC 2 PC 1 PC 0 PB 7 ~PB 0 INTE B IBF B INTR B STB B 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示 A 口已经接收数据 中断请求信号 请求 CPU 接收数据 中断允许触发器
方式 1 输入联络信号 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
方式 1 输入时序 STB* 和 IBF 是外设和 8255A 间 的一对应答联络信号, 为的是可靠地输入数据 data INTR IBF data 输入端口 D 0 ~ D 7 STB RD
方式 1 中断控制 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
方式 1 输出引脚: A 端口 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示 CPU 已经输出了数据 中断请求信号 请求 CPU 再次输出数据 征用 C 口 3 引脚和 1 个控制位 PC 6 PC 7 PC 3 PA 7 ~PA 0 INTE A OBF A INTR A ACK A 中断允许触发器
方式 1 输出引脚: B 端口 征用 C 口 3 引脚和 1 个控制位 PC 2 PC 1 PC 0 PB 7 ~PB 0 INTE B OBF B INTR B ACK B 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示 CPU 已经输出了数据 中断请求信号 请求 CPU 再次输出数据 中断允许触发器
方式 1 输出联络信号 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],端口 A 的 INTEA 对应 PC 6 端口 B 的 INTEB 对应 PC 2 8255 外设 CPU 内总线 外总线
方式 1 输出时序 OBF* 和 ACK* 是外设和 8255A 间 的一对应答联络信号, 为的是可靠地输出数据 INTR data data 输出端口 D 0 ~ D 7 WR OBF ACK
方式 2 双向方式 ,[object Object],[object Object],[object Object],[object Object]
方式 2  双向选通引脚 PC6 PC7 PC3 PA 7 ~PA 0 INTE 1 -OBF A INTR A -ACK A PC4 PC5 IBF A -STB A INTE2 数据 输入中断和输出中断 通过或门输出 INTR A 信号 征用 C 口 5 引脚和 2 个控制位 中断允许触发器 (控制中断输出) 通过位控 PC 6 设置 INTE 1 中断允许触发器 (控制中断输出) 通过位控 PC 4 设置 INTE 2 输入联络 输出联络
方式 2 双向时序 data-out INTR data-out data-in data-in PA 0 ~ PA 7 D 0 ~ D 7 IBF WR OBF ACK STB RD
7.1.4  方式控制字及状态字 ,[object Object],[object Object],[object Object]
方式控制字的格式如下
⑵  端口 C 置位 / 复位控制字   ,[object Object]
2. 8255 的状态字 8255 的状态字为查询式输入 / 输出数据提供了外设的工作状态,如 IBF 、、 INTR 等。根据 8255 工作在不同的工作方式下,以及各端口作输入、输出的不同情况,状态字的格式有所不同。值得注意的是, C 口的状态字与 C 口各位对外的引脚状态不完全一致。
端口 C 的状态字 方式 1 输入 × × × INTRA INTE2 IBFA INTE1 OBFA INTRB OBFB INTEB INTRA I/O I/O INTEA OBFA 方式 2 双向 方式 1 输出 INTRB IBFB INTEB INTRA INTEA IBFA I/O I/O D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 A 组 B 组
7.1.5 8255 与 CPU 的连接 ,[object Object]
PC 机中 8255 的连接
7.1.6 8255 应用举例 ,[object Object],[object Object],[object Object],[object Object]
例 7.1  利用 8255 方式 0 实现打印机的接口 BUSY DATA 0 ~ 7 8255A PC 1 PC 6 PA 0 ~ PA 7 打印机 STROBE
打印机接口的信号与时序 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BUSY DATA 0 ~ 7 ACK STROBE
8255A 的初始化 MOV  AL , 10000011B   ;将控制字送 AL 中 MOV  DX , 0383H   ;将控制寄存器端口地址送 DX 中 OUT  DX , AL  MOV  AL , 00001101B   ;将 PC6 设置为 1 MOV  DX , AL   ;将控制寄存器端口地址送 DX 中
将 AL 中的字符送到打印机输出   MOV  DX , 0382H  ;将 C 口地址送 DX 中   XCHG  AX , BX  ;将打印字符暂存 BL 中  PWAIT:  IN  AL , DX  ;输入 C 口数据  AND  AL , 04H  ;测试 PC2 JNZ  PWAIT  ;忙则等待 XCHG  AX , BX  ;将 BL 中的打印字符送回 AL 中  MOV  DX , 0380H  ;将 A 口地址送 DX 中  OUT  DX , AL  ;将 AL 字符送出打印
例 7.2 利用 8255 方式 1 实现打印机的接口   1000pf 2K 15 3 2 14 4 1 LS123 单稳 电路 +5V DATA 0 ~ 7 8255A PC 6 INTR PC 3 PC 7 PA 0 ~ PA 7 打印机 ACK ACK OBF STROBE
8255A 方式 1 与打印机接口时序配合 方式 1 时序 打印机时序 PA 0 ~ PA 7 ( DATA 0 ~ 7 ) ACK OBF STROBE
8255A 的初始化 MOV  AL , 10100000B   ;将控制字送 AL 中 MOV  DX , 0383H   ;将控制寄存器端口地址送 DX 中 OUT  DX , AL   MOV  AL , 00001101B   ;将 PC6 设置为 1 MOV  DX , AL
将 AL 中的字符送到打印机输出   MOV  DX , 0382H  ;将 C 口地址送 DX 中   XCHG  AX , BX  ;将打印字符暂存 BL 中  PWAIT:  IN  AL , DX  ;输入 C 口数据  AND  AL , 04H  ;测试 PC2 JNZ  PWAIT  ;忙则等待 XCHG  AX , BX  ;将 BL 中的打印字符送回 AL 中  MOV  DX , 0380H  ;将 A 口地址送 DX 中  OUT  DX , AL  ;将 AL 字符送出打印
7.2  可编程定时 / 计数器 8253/8254 ,[object Object],[object Object],[object Object],[object Object],[object Object]
定时功能的实现方法 ,[object Object],[object Object],[object Object]
8253/8254 定时计数器 ,[object Object],[object Object],[object Object],8254 是 8253 的改进型
7.2.1 8253 的外部引线及内部结构 1. 8253 的内部结构
1. 8253 的内部结构 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
计数器结构示意图 计数初值存于 预置寄存器 ; 在计数过程中, 减法计数器 的值不断递减, 而预置寄存器中的预置不变。 输出锁存器 用于写入锁存命令时, 锁定当前计数值 预置寄存器 GATE CLK OUT 减 1 计数器 输出锁存器
2. 8253 的引脚功能 ,[object Object],[object Object],[object Object]
1  方式控制字 00  计数器 0 01  计数器 1 10  计数器 2 11  非法 00  计数器锁存命令  01  只读写低字节 10  只读写高字节 11  先读写低字节 后读写高字节 000  方式 0 001  方式 1 010  方式 2 011  方式 3 100  方式 4 101  方式 5 0  二进制 1  十进制 控制字写入控制字 I/O 地址( A 1 A 0 = 11 ) 7.2.2 8253 的方式控制字和读 / 写操作 数制 工作方式 读写格式 计数器 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7
2. 8253 的读写操作及编程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],计数值写入计数器各自的 I/O 地址 ⑴  写操作 :  写入计数值
例 7.4  利用 8253 的计数器通道 2 产生频率为 1000Hz 的方波。设计数时钟脉冲的频率 f= Hz 。其初始化程序如下 :   MOV  AL , 10110110B   ;方式 3 ,通道 2 ,二进制,先低后高 OUT  COTR , AL   ;写入控制寄存器 MOV   AX  ,  4A7H   ;产生 10000Hz 所需的计数初值 =f/1000 OUT  CTN2 , AL   ; 先写计数初值低字节 MOV  AL , AH OUT  CTN2 , AL   ;再写计数初值高字节
例 7.5  若选择通道 0 ,工作在方式 1 ,计数初值为 2350H ,按十进制计数,并设 8253 的端口地址为 40H ~ 43H ,则初始化程序段为   MOV  AL , 33H   ;计数器 0 ,方式 1 ,十进制,先低后高 OUT  43H , AL   ;写入控制寄存器 MOV  AL , 50H   ;计数初值低字节 OUT  40H , AL   ;写入计数器 0 MOV  AL , 23H   ;计数初值高字节 OUT  40H , AL   ;写入计数器 0
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],读取计数值,要注意读写格式和计数数制 ⑵  读操作
例如  采用锁存读的方法,读取通道 1 的 16 位计数值,其程序段如下: MOV  AL  ,  40H  ;方式控制字:通道 1 ,锁存  OUT  COTR ,  AL  ;写入 8253 的控制寄存器 IN  AL  ,  CNT1  ;第一次读入低 8 位 MOV  CL  ,  AL IN  AL  ,  CNT1  ;第二次读入高 8 位 MOV  CH  ,  AL
7.2.3  8253 的工作方式   ,[object Object],[object Object]
1.  方式 0 ( 计数结束产生中断 ) ① 设 定 工 作 方 式 ② 设 定 计 数 初 值 ④ 计 数 值 送 入 计 数 器 ⑤ 计 数 过 程 ⑥ 计 数 结 束 ① ② ⑤ ④ ⑥ GATE OUT CLK 0 3 1 2 4 4 方式 0 WR
2.  方式 1( 可编程单稳脉冲 ) ① 设 定 工 作 方 式 ② 设 定 计 数 初 值 ③ 硬 件 启 动 ④ 计 数 值 送 入 计 数 器 ⑤ 计 数 过 程 ⑥ 计 数 结 束 ① ② ⑤ ④ ⑥ ③ GATE OUT CLK 0 3 1 2 4 4 方式 1 WR
3. 方式 2( 分频器) 0 3 1 2 4 GATE OUT CLK 4 方式 2 0 3 1 2 4 0 3 1 2 4 0 3 1 2 4 WR
4.  方式 3 (方波频率发生器) 0 3 1 2 4 GATE OUT CLK 4 方式 3 0 3 1 2 4 0 3 1 2 4 0 3 1 2 4 WR
5.  方式 4 (软件触发选通) GATE OUT CLK 0 3 1 2 4 4 方式 4 2 2 3 3 3 1 0 WR
6.  方式 5 (硬件触发选通) GATE OUT CLK 0 3 1 2 4 4 方式 5 2 2 3 3 3 1 1 0 WR
各种工作方式的输出波形 方式  0 方式  1 方式  2 方式  3 方式  4 方式  5 0 N 0 N 0 N 0/N 1 1 0 N N/2 N/2 0/N 0 N 0  1 N 0  1 N 0  1
7.3  可编程串行接口 8251 ,[object Object],[object Object],[object Object],[object Object],[object Object]
1.  串行通信接口的基本任务 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.  串行通信接口的组成 ,[object Object]
3.  串行通信的有关概念 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
4.  串行通信中的工作方式 ,[object Object],[object Object],[object Object]
传输制式 ,[object Object],半双工 单工 站 A 站 B 站 A 站 B 站 A 站 B
5.  同步通信和异步通信方式 ,[object Object],[object Object],[object Object],[object Object],[object Object]
6.  通信中必须遵循的规定 ,[object Object],[object Object],[object Object],[object Object],[object Object]
7.  调制解调器 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
7.3.2 8251 的外部引线及内部结构 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1. 8251 的内部结构及性能 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2. 8251 的外部性能 ,[object Object]
7.3.3 8251 的控制字及其工作方式 ,[object Object],[object Object]
1.  方式寄存器 ,[object Object],例如:要求 8251 作为外同步通信接口,数据位 8 位, 2 个同步字符,偶校验,其方式选择字应为十六进制的 7CH(01111100B = 7CH) 。
1.  方式寄存器 ,[object Object],例如:要求 8251 芯片作为异步通信,波特率为 64 ,字符长度 8 位,奇校验, 2 个停止位的方式选择字应为十六进制的 DFH(1101111lB = DFH) 。
2.  控制寄存器 ,[object Object],3. 状态寄存器 状态寄存器是反映 8251 内部工作状态的寄存器,只能读出,不能写入, CPU 可用 IN 指令来读取状态寄存器的内容 。
7.3.4 8251 串行接口应用举例( 1 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
7.3.4 8251 串行接口应用举例( 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體roboard
 
Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面roboard
 
嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統艾鍗科技
 
03 计算机的逻辑部件02
03 计算机的逻辑部件0203 计算机的逻辑部件02
03 计算机的逻辑部件02Huaijin Chen
 
How to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCHow to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCBo-Yi Wu
 
IEC104规约介绍
IEC104规约介绍IEC104规约介绍
IEC104规约介绍Chen Ray
 
艾鍗學院-單晶片韌體開發- LCM模組實驗
艾鍗學院-單晶片韌體開發- LCM模組實驗艾鍗學院-單晶片韌體開發- LCM模組實驗
艾鍗學院-單晶片韌體開發- LCM模組實驗艾鍗科技
 
PIC单片机的A/D和D/A技术
PIC单片机的A/D和D/A技术PIC单片机的A/D和D/A技术
PIC单片机的A/D和D/A技术krfantasy
 
艾鍗學院單晶片韌體-I2C EEPROM 操作
艾鍗學院單晶片韌體-I2C EEPROM 操作艾鍗學院單晶片韌體-I2C EEPROM 操作
艾鍗學院單晶片韌體-I2C EEPROM 操作艾鍗科技
 
艾鍗學院-單晶片韌體-CC2500通訊實驗
艾鍗學院-單晶片韌體-CC2500通訊實驗艾鍗學院-單晶片韌體-CC2500通訊實驗
艾鍗學院-單晶片韌體-CC2500通訊實驗艾鍗科技
 
Arduino 習作工坊 - Lesson 3 電音之夜
Arduino 習作工坊 -  Lesson 3 電音之夜Arduino 習作工坊 -  Lesson 3 電音之夜
Arduino 習作工坊 - Lesson 3 電音之夜CAVEDU Education
 

What's hot (19)

認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面
 
嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統嵌入式inux應用專題文件-智慧家庭系統
嵌入式inux應用專題文件-智慧家庭系統
 
Arduino導論
Arduino導論Arduino導論
Arduino導論
 
03 计算机的逻辑部件02
03 计算机的逻辑部件0203 计算机的逻辑部件02
03 计算机的逻辑部件02
 
How to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCHow to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMC
 
Plc4
Plc4Plc4
Plc4
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
 
IEC104规约介绍
IEC104规约介绍IEC104规约介绍
IEC104规约介绍
 
艾鍗學院-單晶片韌體開發- LCM模組實驗
艾鍗學院-單晶片韌體開發- LCM模組實驗艾鍗學院-單晶片韌體開發- LCM模組實驗
艾鍗學院-單晶片韌體開發- LCM模組實驗
 
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
 
PIC单片机的A/D和D/A技术
PIC单片机的A/D和D/A技术PIC单片机的A/D和D/A技术
PIC单片机的A/D和D/A技术
 
Project gps
Project gpsProject gps
Project gps
 
Arduino AMA中級認證術科實作 all
Arduino AMA中級認證術科實作 allArduino AMA中級認證術科實作 all
Arduino AMA中級認證術科實作 all
 
艾鍗學院單晶片韌體-I2C EEPROM 操作
艾鍗學院單晶片韌體-I2C EEPROM 操作艾鍗學院單晶片韌體-I2C EEPROM 操作
艾鍗學院單晶片韌體-I2C EEPROM 操作
 
艾鍗學院-單晶片韌體-CC2500通訊實驗
艾鍗學院-單晶片韌體-CC2500通訊實驗艾鍗學院-單晶片韌體-CC2500通訊實驗
艾鍗學院-單晶片韌體-CC2500通訊實驗
 
Arduino 習作工坊 - Lesson 3 電音之夜
Arduino 習作工坊 -  Lesson 3 電音之夜Arduino 習作工坊 -  Lesson 3 電音之夜
Arduino 習作工坊 - Lesson 3 電音之夜
 

Viewers also liked

Travel[ua] 2012
Travel[ua] 2012Travel[ua] 2012
Travel[ua] 2012ttbstudio
 
第7章 常用接口芯片
第7章 常用接口芯片第7章 常用接口芯片
第7章 常用接口芯片jugn
 
Imac 2011
Imac 2011Imac 2011
Imac 2011sebmojo
 
Konstruktivisme siap
Konstruktivisme siapKonstruktivisme siap
Konstruktivisme siapMak Embun
 
Dental Lifeline Network of New Jersey
Dental Lifeline Network of New Jersey Dental Lifeline Network of New Jersey
Dental Lifeline Network of New Jersey Christopher Lillo
 
Leader Follower Alignment
Leader Follower AlignmentLeader Follower Alignment
Leader Follower AlignmentPaulDannar
 
Evolution of investment banks
Evolution of investment banksEvolution of investment banks
Evolution of investment banksParth Jariwala
 
Strategic Thinking
Strategic ThinkingStrategic Thinking
Strategic ThinkingPaulDannar
 

Viewers also liked (10)

Travel[ua] 2012
Travel[ua] 2012Travel[ua] 2012
Travel[ua] 2012
 
第7章 常用接口芯片
第7章 常用接口芯片第7章 常用接口芯片
第7章 常用接口芯片
 
Imac 2011
Imac 2011Imac 2011
Imac 2011
 
Resepiku
ResepikuResepiku
Resepiku
 
Windows XP
Windows XPWindows XP
Windows XP
 
Konstruktivisme siap
Konstruktivisme siapKonstruktivisme siap
Konstruktivisme siap
 
Dental Lifeline Network of New Jersey
Dental Lifeline Network of New Jersey Dental Lifeline Network of New Jersey
Dental Lifeline Network of New Jersey
 
Leader Follower Alignment
Leader Follower AlignmentLeader Follower Alignment
Leader Follower Alignment
 
Evolution of investment banks
Evolution of investment banksEvolution of investment banks
Evolution of investment banks
 
Strategic Thinking
Strategic ThinkingStrategic Thinking
Strategic Thinking
 

Similar to 接口芯片

Similar to 接口芯片 (20)

Ad9850 mc145151
Ad9850 mc145151Ad9850 mc145151
Ad9850 mc145151
 
第14讲 交换机基本操作
第14讲 交换机基本操作第14讲 交换机基本操作
第14讲 交换机基本操作
 
18 cpu02
18 cpu0218 cpu02
18 cpu02
 
S3c2410a 16adc
S3c2410a 16adcS3c2410a 16adc
S3c2410a 16adc
 
20 cpu04
20 cpu0420 cpu04
20 cpu04
 
Sy03091说明书
Sy03091说明书Sy03091说明书
Sy03091说明书
 
Ch2 1
Ch2 1Ch2 1
Ch2 1
 
Xmt63 X 04 05 20
Xmt63 X 04 05 20Xmt63 X 04 05 20
Xmt63 X 04 05 20
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
 
Pdf unspecified 865330
Pdf unspecified 865330Pdf unspecified 865330
Pdf unspecified 865330
 
本章分为三节,主要介绍:
本章分为三节,主要介绍:本章分为三节,主要介绍:
本章分为三节,主要介绍:
 
10 存储系统02
10 存储系统0210 存储系统02
10 存储系统02
 
Arduino 習作工坊 - Lesson 4 通訊之夜
Arduino 習作工坊 -  Lesson 4 通訊之夜Arduino 習作工坊 -  Lesson 4 通訊之夜
Arduino 習作工坊 - Lesson 4 通訊之夜
 
Plc3
Plc3Plc3
Plc3
 
第4章
第4章第4章
第4章
 
Step7
Step7Step7
Step7
 
Dvp 06 xa
Dvp 06 xaDvp 06 xa
Dvp 06 xa
 
第4章1
第4章1第4章1
第4章1
 
第6章
第6章第6章
第6章
 
智慧家庭 簡報
智慧家庭 簡報智慧家庭 簡報
智慧家庭 簡報
 

接口芯片

  • 1. 第 7 章常用接口芯片 7.3 可编程串行接口 8251 7.4 模拟 I/O 接口 7.5 例题解析 7.2 可编程定时 / 计数器 8253/8254 7.1 可编程并行接口 8255
  • 2.
  • 3. 7.1 可编程并行接口 8255 7.1.1 并行通信的概念 1. 并行通信与串行通信 随着多微机系统的应用和微机网络的发展,计算机与外部设备之间、计算机和计算机之间常常要进行数据交换,这些数据交换可称为数据通信。数据通信方式有两种: 并行通信 与 串行通信。 并行通信 是指数据的各位同时进行传送的通信方式,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机内部各种总线就是以并行方式传送数据的。 串行通信 是指数据逐位顺序传送的通信方式。串行传送的速度低,但只需要很少几根通信线,适用于长距离而速度要求不高的场合。在网络中传送数据绝大多数采用串行方式。
  • 4.
  • 6.
  • 7.
  • 8. 7.1.2 8255 外部引脚及内部结构 1. 8255 内部结构 数据 总线 缓冲器 内部控制线 内部数据线 D 0 ~ D 7 A 组 控制 A 组 端口 A A 组 端口 C 上部 B 组 控制 B 组 端口 B B 组 端口 C 下部 读写 控制 逻辑 PC 0 ~ PC 3 PB 0 ~ PB 7 PC 4 ~ PC 7 PA 0 ~ PA 7 RD WR A 0 A 1 CS RESET
  • 9.
  • 10.
  • 11.
  • 12. 与处理器接口 写端口 A 写端口 B 写端口 C 写控制字 写操作 WR* 读端口 A 读端口 B 读端口 C 非法 读操作 RD* 60H 61H 62H 63H I/O 地址 0 0 0 0 0 1 0 1 0 0 1 1 CS* A1 A0
  • 13.
  • 14.
  • 15. 方式 0 输入时序 请体会这里 8255A 的 数据缓冲作用 data data 输入端口 D 0 ~ D 7 RD CS,A 1 ,A 0
  • 16. 方式 0 输出时序 8255A 对 CPU 通过它 输出给外设的数据进行锁存 WR data data 输出端口 D 0 ~ D 7 CS,A 1 ,A 0
  • 17. 方式 1 输入引脚: A 端口 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示 A 口已经接收数据 中断请求信号 请求 CPU 接收数据 PC 4 PC 5 PC 3 PA 7 ~PA 0 INTE A IBF A INTR A STB A 中断允许触发器
  • 18. 方式 1 输入引脚: B 端口 方式 1 需借用端口 C 用做联络信号 同时还具有中断请求和屏蔽功能 PC 2 PC 1 PC 0 PB 7 ~PB 0 INTE B IBF B INTR B STB B 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示 A 口已经接收数据 中断请求信号 请求 CPU 接收数据 中断允许触发器
  • 19.
  • 20. 方式 1 输入时序 STB* 和 IBF 是外设和 8255A 间 的一对应答联络信号, 为的是可靠地输入数据 data INTR IBF data 输入端口 D 0 ~ D 7 STB RD
  • 21.
  • 22. 方式 1 输出引脚: A 端口 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示 CPU 已经输出了数据 中断请求信号 请求 CPU 再次输出数据 征用 C 口 3 引脚和 1 个控制位 PC 6 PC 7 PC 3 PA 7 ~PA 0 INTE A OBF A INTR A ACK A 中断允许触发器
  • 23. 方式 1 输出引脚: B 端口 征用 C 口 3 引脚和 1 个控制位 PC 2 PC 1 PC 0 PB 7 ~PB 0 INTE B OBF B INTR B ACK B 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示 CPU 已经输出了数据 中断请求信号 请求 CPU 再次输出数据 中断允许触发器
  • 24.
  • 25. 方式 1 输出时序 OBF* 和 ACK* 是外设和 8255A 间 的一对应答联络信号, 为的是可靠地输出数据 INTR data data 输出端口 D 0 ~ D 7 WR OBF ACK
  • 26.
  • 27. 方式 2 双向选通引脚 PC6 PC7 PC3 PA 7 ~PA 0 INTE 1 -OBF A INTR A -ACK A PC4 PC5 IBF A -STB A INTE2 数据 输入中断和输出中断 通过或门输出 INTR A 信号 征用 C 口 5 引脚和 2 个控制位 中断允许触发器 (控制中断输出) 通过位控 PC 6 设置 INTE 1 中断允许触发器 (控制中断输出) 通过位控 PC 4 设置 INTE 2 输入联络 输出联络
  • 28. 方式 2 双向时序 data-out INTR data-out data-in data-in PA 0 ~ PA 7 D 0 ~ D 7 IBF WR OBF ACK STB RD
  • 29.
  • 31.
  • 32. 2. 8255 的状态字 8255 的状态字为查询式输入 / 输出数据提供了外设的工作状态,如 IBF 、、 INTR 等。根据 8255 工作在不同的工作方式下,以及各端口作输入、输出的不同情况,状态字的格式有所不同。值得注意的是, C 口的状态字与 C 口各位对外的引脚状态不完全一致。
  • 33. 端口 C 的状态字 方式 1 输入 × × × INTRA INTE2 IBFA INTE1 OBFA INTRB OBFB INTEB INTRA I/O I/O INTEA OBFA 方式 2 双向 方式 1 输出 INTRB IBFB INTEB INTRA INTEA IBFA I/O I/O D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 A 组 B 组
  • 34.
  • 35. PC 机中 8255 的连接
  • 36.
  • 37. 例 7.1 利用 8255 方式 0 实现打印机的接口 BUSY DATA 0 ~ 7 8255A PC 1 PC 6 PA 0 ~ PA 7 打印机 STROBE
  • 38.
  • 39. 8255A 的初始化 MOV AL , 10000011B ;将控制字送 AL 中 MOV DX , 0383H ;将控制寄存器端口地址送 DX 中 OUT DX , AL MOV AL , 00001101B ;将 PC6 设置为 1 MOV DX , AL ;将控制寄存器端口地址送 DX 中
  • 40. 将 AL 中的字符送到打印机输出 MOV DX , 0382H ;将 C 口地址送 DX 中 XCHG AX , BX ;将打印字符暂存 BL 中 PWAIT: IN AL , DX ;输入 C 口数据 AND AL , 04H ;测试 PC2 JNZ PWAIT ;忙则等待 XCHG AX , BX ;将 BL 中的打印字符送回 AL 中 MOV DX , 0380H ;将 A 口地址送 DX 中 OUT DX , AL ;将 AL 字符送出打印
  • 41. 例 7.2 利用 8255 方式 1 实现打印机的接口 1000pf 2K 15 3 2 14 4 1 LS123 单稳 电路 +5V DATA 0 ~ 7 8255A PC 6 INTR PC 3 PC 7 PA 0 ~ PA 7 打印机 ACK ACK OBF STROBE
  • 42. 8255A 方式 1 与打印机接口时序配合 方式 1 时序 打印机时序 PA 0 ~ PA 7 ( DATA 0 ~ 7 ) ACK OBF STROBE
  • 43. 8255A 的初始化 MOV AL , 10100000B ;将控制字送 AL 中 MOV DX , 0383H ;将控制寄存器端口地址送 DX 中 OUT DX , AL MOV AL , 00001101B ;将 PC6 设置为 1 MOV DX , AL
  • 44. 将 AL 中的字符送到打印机输出 MOV DX , 0382H ;将 C 口地址送 DX 中 XCHG AX , BX ;将打印字符暂存 BL 中 PWAIT: IN AL , DX ;输入 C 口数据 AND AL , 04H ;测试 PC2 JNZ PWAIT ;忙则等待 XCHG AX , BX ;将 BL 中的打印字符送回 AL 中 MOV DX , 0380H ;将 A 口地址送 DX 中 OUT DX , AL ;将 AL 字符送出打印
  • 45.
  • 46.
  • 47.
  • 48. 7.2.1 8253 的外部引线及内部结构 1. 8253 的内部结构
  • 49.
  • 50. 计数器结构示意图 计数初值存于 预置寄存器 ; 在计数过程中, 减法计数器 的值不断递减, 而预置寄存器中的预置不变。 输出锁存器 用于写入锁存命令时, 锁定当前计数值 预置寄存器 GATE CLK OUT 减 1 计数器 输出锁存器
  • 51.
  • 52. 1 方式控制字 00 计数器 0 01 计数器 1 10 计数器 2 11 非法 00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节 000 方式 0 001 方式 1 010 方式 2 011 方式 3 100 方式 4 101 方式 5 0 二进制 1 十进制 控制字写入控制字 I/O 地址( A 1 A 0 = 11 ) 7.2.2 8253 的方式控制字和读 / 写操作 数制 工作方式 读写格式 计数器 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7
  • 53.
  • 54.
  • 55. 例 7.4 利用 8253 的计数器通道 2 产生频率为 1000Hz 的方波。设计数时钟脉冲的频率 f= Hz 。其初始化程序如下 : MOV AL , 10110110B ;方式 3 ,通道 2 ,二进制,先低后高 OUT COTR , AL ;写入控制寄存器 MOV AX , 4A7H ;产生 10000Hz 所需的计数初值 =f/1000 OUT CTN2 , AL ; 先写计数初值低字节 MOV AL , AH OUT CTN2 , AL ;再写计数初值高字节
  • 56. 例 7.5 若选择通道 0 ,工作在方式 1 ,计数初值为 2350H ,按十进制计数,并设 8253 的端口地址为 40H ~ 43H ,则初始化程序段为 MOV AL , 33H ;计数器 0 ,方式 1 ,十进制,先低后高 OUT 43H , AL ;写入控制寄存器 MOV AL , 50H ;计数初值低字节 OUT 40H , AL ;写入计数器 0 MOV AL , 23H ;计数初值高字节 OUT 40H , AL ;写入计数器 0
  • 57.
  • 58. 例如 采用锁存读的方法,读取通道 1 的 16 位计数值,其程序段如下: MOV AL , 40H ;方式控制字:通道 1 ,锁存 OUT COTR , AL ;写入 8253 的控制寄存器 IN AL , CNT1 ;第一次读入低 8 位 MOV CL , AL IN AL , CNT1 ;第二次读入高 8 位 MOV CH , AL
  • 59.
  • 60. 1. 方式 0 ( 计数结束产生中断 ) ① 设 定 工 作 方 式 ② 设 定 计 数 初 值 ④ 计 数 值 送 入 计 数 器 ⑤ 计 数 过 程 ⑥ 计 数 结 束 ① ② ⑤ ④ ⑥ GATE OUT CLK 0 3 1 2 4 4 方式 0 WR
  • 61. 2. 方式 1( 可编程单稳脉冲 ) ① 设 定 工 作 方 式 ② 设 定 计 数 初 值 ③ 硬 件 启 动 ④ 计 数 值 送 入 计 数 器 ⑤ 计 数 过 程 ⑥ 计 数 结 束 ① ② ⑤ ④ ⑥ ③ GATE OUT CLK 0 3 1 2 4 4 方式 1 WR
  • 62. 3. 方式 2( 分频器) 0 3 1 2 4 GATE OUT CLK 4 方式 2 0 3 1 2 4 0 3 1 2 4 0 3 1 2 4 WR
  • 63. 4. 方式 3 (方波频率发生器) 0 3 1 2 4 GATE OUT CLK 4 方式 3 0 3 1 2 4 0 3 1 2 4 0 3 1 2 4 WR
  • 64. 5. 方式 4 (软件触发选通) GATE OUT CLK 0 3 1 2 4 4 方式 4 2 2 3 3 3 1 0 WR
  • 65. 6. 方式 5 (硬件触发选通) GATE OUT CLK 0 3 1 2 4 4 方式 5 2 2 3 3 3 1 1 0 WR
  • 66. 各种工作方式的输出波形 方式 0 方式 1 方式 2 方式 3 方式 4 方式 5 0 N 0 N 0 N 0/N 1 1 0 N N/2 N/2 0/N 0 N 0 1 N 0 1 N 0 1
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.