1、第七章 输入和输出,7.1 概述 7.1.1 I/O接口电路的功能1.地址译码2.数据缓冲和锁存缓冲:输入设备向单片机输入数据时,但数据总线上面可能“挂”有多个数据源,为不发生冲突,只允许当前正在进行数据传送的数据源使用数据总线,其余的应处 于隔离状态。 锁存:由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据锁存器,以保证接收设备接收。3.信息转换4.通信联络,I/O (输入/输出)接口( Interface ) 是MCS-51与外设交换数字信息的桥梁。,7.1.2 I/O接口的构成,一个典型的I/O接口如图所示。其中有数据端口、状态端
2、口和控制端口。CPU通过这些端口与外部设备之间进行信息的传送。通常将信息按各自的作用分成以下三种。,1.数据信息 数据信息是最基本的一种信息,按其数据的表示形式又可以分为以下几种。,(1)数字量 用8位二进制数或是以ASCII码表示的数据或字符。 开关量是表示两个状态的量,实际上它可表示为一位或多位二进制数字量。 脉冲量也是一种数字量,计数脉冲、定时脉冲等在计算机控制系统中也很常见。,(2)模拟量当微型机用于控制、检测或数据采集时大量的现场信息是连续变化的物理量(如温度、压力、流量位移等)这些物理量经过传感器变换成电量,并经放大得到模拟电压或电流这些模拟量必须再经过AD转换后把它们变成数字量才
3、能输入计算机。计算机的输出也必须先经过DA转换,把数字量变成模拟量后再控制执行机构。,2. 状态信息 输入设备的“准备就绪”,输出设备的“忙”信号等。CPU根据外设的状态,决定是否输入或输出数据。,3控制信息 控制信息是在传选过程中CPU发送给外设的命令用于控制外设的工作。例如,控制设备的起停,7.1.3 I/O端口的地址分配首先清楚I/O接口(Interface)和I/O端口(Port)的概念。一个I/O接口芯片可以有多个I/O端口, (1)数据口(2)控制口(3)状态口,I/O端口编址两种方式:独立编址与统一编址。 1独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址, 但需专门读
4、写I/O的指令和控制信号。 2统一编址方式 I/O寄存器与数据存储器单元同等对待,统一编址。 不需要专门的I/O指令,直接使用访问数据存储器的指 令进行I/O操作,简单、方便且功能强。,MCS-51使用统一编址的方式 每一接口芯片中的一个功能寄存器(端口)的地址就相当于一个RAM单元。,扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问 注意控制总线RD/WR的接法,7.2 微型机与外设之间的数据传送方式微型机与外设之间的数据传送方式可归纳为三种:程序传送、中断传送和DMA传送。7.2.1 程序传送 不是传送程序 程序传送,是指CPU与外设之间的数据传送在程序控制下进行的一种方式,它
5、又分为无条件传送和条件传送两种。 1.同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。适用于对简单的I/O设备(如开关、LED显示器、继电器等)的操作,或者I/O设备的定时固定或已知的场合。2.查询传送方式(条件传送,异步式传送) 查询外设“准备好”后,再进行数据传送。 优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。为提高效率,通常采用中断传送方式。,7.2.2 中断传送 外设准备好后,发中断请求,单片机进入与外设数 据传送的中断服务程序,进行数据的传送。中断服务 完成后又返回主程序继续
6、执行。工作效率高。7.2.3 直接存储器存取传送(DMADirect Memory Access)是一种由专门的硬件DMA控制器(DMAC)来控制的传送方式。在DMAC的控制下,外设接口可直接与内存进行高速的数据传送,而不必经过CPU,于是进行传送时就不必作保护现场,恢复现场之类的额外操作。DMA方式主要是通过硬件来实现的,因而传送速率很高,数据传送的速度基本上取决于外设和存储器的速度。DMA方式特别适用于大批量数据的高速传送。,7.3 MCS51的并行I/O口,单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。 4个I/O端口都能作输入输
7、出口用, 其中P0和P2通常用于对外部存储器的访问, P3口具有双功能真正用作I/O口线的只有P1口的8位I/O线和P3口的某些位线。P0是真正的双向I/O口 P1、P2、P3是准双向I/O口,7.4 MCS51并行口的扩展,真正用作I/O口线的只有P1口的8位I/O线和P3口的某些位线。 在多数应用系统中,MCS-51单片机都需要外扩I/O接口电路。,7.4.1 用TTL芯片扩展并行I/O口7.4.1.1 总线扩展法TTL芯片常用的有:373,273,244,245等,一般扩展P0口,因为74LS273和74LS244都是在P2.0为0时被选通,所以二者地址都可以为FEFFH。两个芯片的地址
8、虽然相同,但可以通过读写操作来区别 编程应用如下:微型机与外设之间的数据传送方式为程序传送的同步传送方式 (无条件传送)MOV DPTR,#0FEFFH ;指向口地址 MOVX A,DPTR ; 指向74LS244读入数据,检测按键 MOVX DPTR,A ;指向74LS273输出数据,驱动LED SJMP $,当P2.0=0,WR*=0(RD*=)选中写74LS273, 8031通过P0口输出数据到74LS273, 当P2.0=0,RD*=0(WR*=1)时选中读74LS244, 某开关按下时则对应位输入为“0”。,7.4.1.2 串行口扩展法7.4.1.2 串行口扩展法 利用74LS164
9、扩展二个8位并行输出口的接口电路。,例 编写将内部RAM单元30H、31H的内容经串行口由74LS164并行输出的子程序。,START: MOV R7,#02H ;设置要发送的字节个数MOV R0,#30H ;设置地址指针MOV SCON,#00H ;设置串行口为方式0SEND: MOV A,R0MOV SBUF,A ;启动串行口发送过程 WAIT: JNB TI,WAIT ;1帧数据未发完,循环等待CLR TIINC R0 ;取下一个数DJNZ R7,SEND ;未完,发完从子程序返回 RET,7.4.2 用8255A可编程器件扩展并行接口,7.4.2.1 8255A芯片内部结构,8255A
10、是Intel公司生产的可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强。,7.4.2.2 8255A引脚说明 40只引脚,双列直插式封装,引脚功能如下:,1. 数据线 D7D0:三态双向数据线,与单片机数据总线连接PA7PA0:A口输入/输出线。PB7PB0:B口输入/输出线。PC7PC0:C口输入/输出线。寻址线 CS*:片选信号线,低电平有效,表示本芯片被选中A1、A0:地址线,用来选择8255A内部的4个端口。 当CS*=0,A1和A0的4种组合 00,01,10,11 分别选择A、B、C口和控制寄存器3. 控制线 RD
11、*:读出信号线,控制8255A中数据的读出高 WR*:写入信号线,控制向8255A数据的写入。,7.4.2.3 8255A的工作方式 8255A有三种工作方式: 方式0:基本输入输出; (2) 方式1:选通输入输出; (3) 方式2:双向传送(仅A口有)。1.工作方式选择控制字 三种工作方式由方式控制字来决定。 控制字格式如下。,例 8255A端口地址为FFF0HFFF3HMOV DPTR,#0FFF3H MOV A,#10010000B;置A口方式0输入,B口方式0输出。 MOVX DPTR,A,例7.4.1 8255A的接口电路如图示,A口味输入端口,接有4个开关,B口输出端口,通过缓冲器
12、接有一个七段LED。要求显示器显示开关接通的数字。,LJMP 1000H ORG 1000H MOV DPTR,#0FFF3H MOV A,#10000010B MOVX DPTR,A star:MOV DPTR,#0FF1H MOVX A,DPTR CPL A ANL A,#0FHMOV DPTR,#SEGTAB MOVC A,A+DPTR MOV DPTR,#0FF0H MOVX DPTR,A SJMP star SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H, 82H ,0F8H,80H ,90HDB 88H, 83H ,0C6H,0A1H,86HDB 8
13、EH END,7.4.3 用 8155可编程I/O扩展芯片1. 8155的内部结构,2. 8155H的引脚功能,(1) AD7AD0(8条) (2) I/O总线(22条) (3)控制总线(8条)RESET:复位输入线CE*和IO/M*RD*和WR*ALE:地址锁存允许TIMERIN和TIMEROUT*: (4)电源线(2条)Vcc:+5V电源Vss:地,8155各端口地址分配,7.4.3.2 8155的工作方式1.存储器方式 对片内RAM单元进行读写,若IO/M*=0和CE*=0,则 通过AD7AD0上的地址对RAM存储器任一单元读写。2.I/O方式 8155的I/O方式分为基本I/O和选通I
14、/O两种工作 方式。可对片内任一寄存器读写, 端口地址由A2、A1、A0三位决定(见表),(1)基本I/O方式(2)选通I/O方式(见右图),3. 内部定时器/计数器及使用14位的减1定时器/计数器,计数长度和计数方式 由写入计数寄存器的控制字来确定。 计数器的两个寄存器的格式如图,T13T0:计数器长度 M2、M1:设置定时器的4种工作方式4种工作方式及相应输出波形,7.4.3.3 MCS-51与8155接口及软件编程 1.MCS-51与8155H的硬件接口电路,2. 8155H的编程举例 初始化程序设计 例 若A口定义为基本输入方式,B口定义为基本输出方式,对输入时钟脉冲进行24分频,初始化程序如下:START:MOV DPTR, 7F04H ;指针指向定时器低8位MOV A,18H ;计数初值24送A, MOVX DPTR,A ;计数初值低8位装入定时器INC DPTR ;指针指向定时器高8位MOV A,40H ;设定时器连续方波输出MOVX DPTR,A ;计数初值高6位装入定时器MOV DPTR,7F00H ;指向命令/状态口MOV A,#0C2H ;设定命令控制字MOVX DPTR,A ;A口输入,B口输出,开定时器,8155的命令字,