710 likes | 933 Views
第七章 单片机 I/O 扩展及应用. 7-1 单片机 I/O 接口技术概述. 计算机为什么需要 I/O 接口. CPU. 存储器. CPU. I/O 设备. CPU 和外部设备之间数据传送有如下特点. 7-1-1 为什么要扩展 I/O 接口. 1 )外部设备工作速度差异很大。慢速设备:开关、继电器等;快速设备:磁盘等。 CPU 无法按固定时序协调各方的工作。. 2 )外部设备种类繁多:机械式、机电式、电子式. 3 )外部设备数据信号多样化:电压信号、电流信号数字量、模拟量等。. 4 )外部设备数据传送有近距离、远距离。. 接口电路.
E N D
第七章 单片机I/O扩展及应用 7-1 单片机I/O接口技术概述 计算机为什么需要I/O接口 CPU 存储器 CPU I/O设备
CPU和外部设备之间数据传送有如下特点 7-1-1为什么要扩展I/O接口 1)外部设备工作速度差异很大。慢速设备:开关、继电器等;快速设备:磁盘等。CPU无法按固定时序协调各方的工作。 2)外部设备种类繁多:机械式、机电式、电子式 3)外部设备数据信号多样化:电压信号、电流信号数字量、模拟量等。 4)外部设备数据传送有近距离、远距离。
接口电路 对CPU和外部设备之间的数据传送进行协调 接口电路主要功能 1)速度协调
2)数据锁存 数据在数据总线上停留的时间十分短暂 8051单片机的4个并行I/O口,都通过锁存器和外界联系
3)三态缓冲 总线隔离技术:任一时刻,只允许一个数据源使用数据总线。其余数据源都和数据总线隔离。 片选的含义 4)数据转换 A/D、D/A转换
三态缓冲电路 集电极开路OC门 使用时,需外接上拉电阻 用作接口电路的基本电路 锁存器 两个以上OC门输出端并联,实现“线与”功能
独立编址 将I/O和存储器分开进行编址。 计算机形成两个独立的地址空间,也就有各自独立的读写操作指令。 统一编址 将I/O和存储器统一进行编址。 只需一套存储器指令,直接对存储器和I/O操作。 7-1-2 I/O扩展编址技术
无条件输入传送 1)无条件传送方式 外部设备总是处于“准备好”状态,无须测试。随时可以传送数据。例如指示灯、发光二极管等。 7-1-3 I/O数据传送方式 片选
无条件输出传送 2)程序查询方式 有条件数据传送,I/O操作之前,检查I/O设备状态,确认已为输入输出作好准备,实行数据传送。
中断方式数据传送示意图 3)中断方式 查询方式中,CPU处于主动形式,中断方式CPU处于被动形式,等待中断请求的到来。 MCS-51的外部中断输入口,认为是外部设备中断请求的输入端。 大大提高系统的工作效率
7.2 MCS-51单片机I/O口直接应用 I/O口操作指令 将I/O口作为寄存器使用,进行字节数据传送 输出数据 MOV Px,A MOV Px,Rn MOV Px,@Ri MOV Px,direct 输入数据 MOV A , Px MOV Rn,Px MOV @Ri,Px MOV direct,Px
I/O口位操作指令 MOV(位传送) CLR(位清0) SETB(位置1) CPL(位取反) JB(位为1转移) JNB(位为0转移) JBC(位为1转移清0) MOV Px.y,C CLR Px.y SETB Px.y CPL Px.y JB Px.y,rel JNB Px.y,rel JBC Px.y,rel
I/O口其它操作指令 ANL(逻辑与) ORL(逻辑或) XRL(逻辑异或) INC(加1) DEC(减1) DJNZ(减1条件转移) CJNE(数值比较转移) ANL Px,A ORL Px,A XRL Px,A INC Px DEC Px DJNZ Px,rel CJNE A,Px,rel
中断方式I/O口直接数据传送 开关扳动一次,触发器输出端出现一个负跳变,产生一个外部中断请求。
MAIN:SETB IT0 /脉冲边沿触发 SETB EX0 /开放外部中断0 SETB EA /开放中断 HERE:AJMP HERE /等待中断 EXTR:MOV A,#0FH /中断服务程序 MOV P1,A /熄发光二极管 MOV A,P1 /输入开关状态 CPL A /状态取反 ANL A,#0FH /屏蔽高半字节 SWAP A /高低半字节交换 MOV P1,A /输出开关状态 RETI
7-3 单片机简单I/O口扩展应用 7-3-1 简单输入口扩展 简单输入解决数据缓冲问题 简单输入扩展就是扩展缓冲器 74LS244:2四位数据缓冲器 三态数据缓冲器
利用74LS244进行简单输入扩展 没有扩展RAM,当读外部RAM时,即选中244,进行数据输入
8D~1D:8位数据输入; 8Q~1D:8位数据输出; CK:时钟信号,上升沿数据锁存; :使能信号 主要功能:数据保持(锁存) 7-3-2 简单输出口扩展 典型芯片: 具有使能控制的8D锁存器
锁存器和缓冲器的特点及使用 组成锁存器单元电路:触发器(带时钟控制端触发器) 组成缓冲器单元电路:门电路(三态传输电路) 锁存器 缓冲器
输出 输入 7-3-3 用串行口扩展并行口
7-4 8255A可编程并行I/O口扩展芯片 7-4-1 可编程I/O接口概述 简单I/O扩展:实现数据缓冲和数据锁存 可编程I/O扩展:还具有状态寄存和命令寄存功能,通过软件编程方式,确定扩展芯片的工作方式。 典型芯片:8255A,8155
7-4-2 8255A的逻辑结构和引脚 1)口电路 三个8位口,PA、PB、PC。PA、PB是单纯的数据口,PC既可作数据口,也可作控制口,用于对PA、PB的控制。 PC7~4,控制PA; PC3~0,控制PB PA 、 PC7~4称为A组; PB 、 PC3~0称为B组
2)总线接口电路 数据总线缓冲器:和单片机数据总线相连,8位双向三态缓冲器,所有数据(包括控制字、状态信息)通过该缓冲器传送。 控制逻辑: :片选信号(低电平有效); :读信号(低电平有效); :写信号(低电平有效); A0、A1:端口选择信号; RESET:复位信号(高电平有效) 3)控制逻辑电路:A组、B组逻辑控制
方式0:基本输入/输出方式 两个8位口PA、PB及两个4位口,输入/输出的任意组合。 适用于无条件数据传输。也可以对C口进行位操作。以C口某一位状态,实现查询方式数据传送。 7-4-3 8255A工作方式及数据I/O操作 方式1:选通输入/输出方式 PA、PB用于数据输入/输出,PC,数据传送联络信号 方式2:双向数据传送方式 只有PA,能选择该工作方式,适用PC5位口线作控制线。 PA工作于方式2下,则PB只能工作在方式0。
:选通脉冲(输入),低电平有效。 INTR:中断请求信号(输出),高电平有效。当IBF为高电平, 信号由低变高,中断请求信号有效。 数据输入 IBF:输入缓冲器满信号(输出),高电平有效。此信号有效,数据已装入8255A锁存器。状态信号
:外设响应信号(输入),低电平有效。当外设取走数据,并处理完,向单片机发回响应信号。:外设响应信号(输入),低电平有效。当外设取走数据,并处理完,向单片机发回响应信号。 :输出缓冲器满信号(输出),低电平有效。状态信息。输出数据写入8255A锁存器后,信号有效。 数据输出 INTR:中断请求信号(输出),高电平有效。
工作方式控制字 C口高半字节输入1,输出0 A口:输入1,输出0 方式选择 00方式0,01方式1, 1方式2 C口低半字节 输入1 ,输出0 B口:输入1 ,:输出0 设定工作方式标志,1有效 方式选择 0:方式0,1:方式1 7-4-4 8255A控制字及初始化
置位:1置1,0置0 0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 B0 0 0 1 1 0 0 1 1 B1 0 0 0 0 1 1 1 1 B2 置位标志:0有效 C口位置位/复位控制字
8255A初始化 系统要求:PA口:工作方式0,输入;PB口:工作方式1,输出;PC4~PC7为输出;PC2~PC0用于PB口方式1选通控制信号,尚余PC3线为输入。 假定8255A的地址为:5FFCH~5FFFH 确定控制字 控制字 95H
初始化程序: MOV DPTR,#5FFFH ;8255A控制字地址 MOV A,#95H ; MOVX @DPTR,A ;方式控制字写入 PC口用于置位/复位方式,PC5置位。 初始化程序: MOV DPTR,#5FFFH ;8255A控制字地址 MOV A,#0BH ;00001011b MOVX @DPTR,A ;方式控制字写入
7.5 8155单片机 可编程I/O口扩展 8155具有 三个可编程I/O口: A口(8位) B口(8位) C口(6位); 256字节RAM; 一个14位定时器
ALE:地址锁存信号 将8位地址锁存,同时锁存片选信号 和 信号。 :I/O与RAM选择信号 0:对RAM进行读写;1:对I/O进行读写 引脚说明 AD0~AD7:地址/数据线(复用线) ALE下降沿触发锁存8位地址( RAM单元地址)。
:片选信号; :读选通信号; :写选通信号; PA、PB两个8位口,编程选定输入输出方式; RESET:复位信号,复位后,I/O口为输入方式。 PA、PB口都是数据口,只有输入/输出两种工作方式;
PC口:既可作为输入/输出口,或编程选择PA、PB工作方式。PC口:既可作为输入/输出口,或编程选择PA、PB工作方式。 作控制时PC各位定义: PC0:AINTR(A口中断请求信号); PC1:ABF(A口缓冲器满标志); PC2: (A口选通脉冲); PC3:BINTR(B口中断请求信号); PC4:BBF(B口缓冲器满标志); PC5: (B口选通脉冲)
INTR:中断请求信号(输出); BF:缓冲器满信号(状态信号); :选通信号(输入),输入时选通,输出时应答 PC口联络信号定义 可以看出,PC口具有: 输入方式; 输出方式; PA控制端口方式; PA、PB控制端口方式。
7-5-2 8155的命令/状态寄存器 命令寄存器:8位寄存器(锁存器)定义8155的工作方式 状态寄存器:7位寄存器(锁存器,最高位没定义)锁存I/O口和定时/计数器的当前状态。 两寄存器用一个口地址,命令寄存器只能写入,状态寄存器只能读出。 故称:命令/状态寄存器
A中断允许,1允许 00:A、B基本I/O,C输入; 01:A、B基本I/O,C输出; 10:A选通I/O,B基本I/O; 11:A、B选通I/O B中断允许,1允许 定时器工作方式 00:不影响计数器工作 01:停止计数 10:达到计数值停止 11:启动计数 8155命令字格式
8155状态字格式 INTR:中断请求标志; BF:缓冲器满标志; INTE:中断允许标志; TIMER:定时器/计数器中断请求标志。
8155的工作方式 通过命令寄存器进行设置 基本I/O方式: 命令字D3D2=00或01,A、B、C口均工作在基本输入/输出方式 D3D2=00,C口输入; D3D2=01,C口输出 选通I/O方式: 命令字D3D2=10,PA口为选通方式;PB口基本输入/输出方式,PC3、PC4、PC5三根线输出。 命令字D3D2=11,PA、PB口均为选通方式;
RAM单元及I/O口编址 通过8位地址线AD0~AD7进行编址 通过 端口的电平,确定当前寻址是RAM还是I/O口 六 个 可 编 址 I/O 端 口
8155和MCS-51兼容信号有:AD0~AD7、ALE、RESET、 、 。可以直接相连。 当P0.7~P0.3=00000 对应6个可编址端口。范围00H~07H。 当P0.7~P0.3为其它组合时,对应RAM,地址为08H~FFH 7-5-3 8155与MCS-51单片机连接
以高位地址直接作为 信号 对8155使用16位编址 当 时,8155内部RAM地址为:0000H~00FFH; 当 时,8155端口地址为: 0100H~0105H
14位减法计数器 两个8位寄存器构成 7-5-4 8155的定时器/计数器