【教学课件】第9章MCS-51单片机IO接口的扩展.ppt
第9章 MCS-51单片机I/O接口的扩展,9.1 I/O口扩展概述9.2 扩展可编程并行I/O芯片8255A9.3 扩展可编程RAM/IO芯片8155H9.4 用锁存器缓冲器扩展并行I/O口9.5 用MCS-51的串行口扩展并行口,退出,9.1 I/O口扩展概述,8255:PA(8位)、PB(8位)、PC(8位)命令/状态口 8155:命令/状态口、PA(8位)、PB(8位)PC(6位)、14位减法计数器、256字节RAM8253:3个16位定时计数器8279:键盘显示器接口芯片74LS373,377,244,245:锁存器74LS164、CD4094、74LS165、CD4014,9.2 扩展可编程并行I/0芯片8255A,PA(8位)、PB(8位)、PC(8位)命令/状态口9.2.1 8255A的结构和工作方式一、8255A的引脚及组成结构,二、8255A的工作方式及选择方式选择控制字,有三种工作方式:方式0:基本输入输出方式;方式1:选通输入输出方式;方式2:双向传送方式(仅A口),2.C 口按位置位/复位控制字,9.2.2 8031单片机同8255A的接口及应用,一、8031单片机与8255A的接口电路如图所示。PA:FF7CH PB:FF7DH PC:7EH 命令/状态:FF7FH,A口、B口、C口和控制寄存器单元地址分别为7FFCH、7FFDH、7FFEH和7FFFH。利用8255进行I/O扩展,使端口A、B、C都工作于方式0且均为输出方式,并从端口A输出一个数据,之后将PC3置为1,MOV DPTR,#7FFFH;地址指向8255控制口MOV A,#80H;设端口A、B、C设为方 式0的输出方式MOVX DPTR,A;写入控制字MOV DPTR,#7FFCH;地址指向8255端口AMOV A,#00H;输出数据#00H传入累加器AMOVX DPTR,A;向端口A写入数据MOV DPTR,#7FFFH;地址指向8255控制口MOV A,#07H;设控制字,将PC3口置为1MOVX DPTR,A;写入控制字,例9-3 在MCS-51单片机组成的系统中,如果需配接打印机,可用8255A作为接口芯片。许多打印机都采用Centronic标准接口,这种标准接口的接口信号说明如下:DB0-DB7:数据线,单向接收;/DSTB:数据选通信号,输入;BUSY:忙信号,输出;/ACK:应答信号,输出。MCS-51单片机通过8255A与打印机的接口电路及打印机时序如图。,PRINT:MOV R0,#7FH;控制口地址送入R0 MOV A,#81H;控制字送入A MOVX R0,A;控制字送人控制口 MOV R1,#3FH;RAM单元首地址送R1 MOV R2,#0FH;R2作计数器用LOOP:MOV A,R1;RAM单元中内容送A INC R1;指向下一个RAM单元 MOV R0,#7CH;端口A地址送R0 MOVX R0,A;A中内容送端口A,并锁存 MOV R0,#7FH;控制口地址送入R0 MOV A,#0EH;PC7的复位控制字送A MOVX R0,A;PC70 MOV A,#0FH;R2的置位控制字送A MOVX R0,A;PC7由0变1LOOP1:MOV R0,#7EH;端口C地址送R0 MOVX A,R0;读入口C的值 ANL A,#01H;检测BUSY状态 JNZ LOOP1;BUSY=1跳转LOOP1 DJNZ R2,LOOP;BUSY=0,未打完循环,9.3 扩展可编程RAM/IO芯片8155H,8155:256BRAM、命令/状态口、PA(8位)、PB(8位)、PC(6位)、14位减法计数器9.3.1 8155H的结构和工作方式一、8155H的结构与引脚,地址总线:/CE=0IO/M=0,256字节RAM:00HFFHIO/M=1,I/O口。,二、8155的I/O口工作方式及选择,1.命令寄存器 8155只有一个控制字,命令寄存器决定A口、B口、C口和定时器/计数器的工作方式及功能。其位格式为:,PA:决定A口的工作方式。PA=0,A口为输入方式;PA=1,A口为输出方式。PB:决定B口的工作方式。PB=0,B口为输入方式;PB=1,B口为输出方式。PC2、PC1:决定PC口的工作方式。PC2PC1(ALT1)=00,A口、B口为基本输入/输出,C口为基本输入口;PC2PC1(ALT2)=01,A口、B口为基本输入/输出,C口为基本输出口;PC2PC1(ALT3)=10,A口为选通输入/输出口,B口为基本输入/输出口;PC2PC1(ALT4)=11,A口、B口为选通输入/输出口。,IEA:A口中断允许位。IEA=1允许A口中断,IEA=0禁止A口中断。IEB:B口中断允许位。IEB=1允许B口中断,IEB=0禁止B口中断。TM2、TM1:定时/计数器命令。TM2TM1=00,空操作,不影响计数器操作;TM2TM1=01,停止计数器计数;TM2TM1=10,定时/计数器长度减为0时停止计数;TM2TM1=11,连续方式,当计数器赋予初值后,立即启动定时/计数器;若正在计数,则置新的方式和长度,计数结束后按新的方式和新的时间常数计数。,2.状态寄存器状态寄存器由7位寄存器组成,其中6位用于表示A口和B口的状态,1位表示定时/计数器的状态。此寄存器为只读寄存器其位格式为:,INTRA:A口中断请求位。BFA:A口缓冲器满标志位。INTEA:A口中断允许位。INTRB:B口中断请求位。BFB:B口缓冲器满标志位。INTEB:B口中断允许位。TIMER:定时中断请求位。3.PA寄存器4.PB寄存器5.PC寄存器,四、8155的定时器,其中,T0T14构成14位计数器。定时/计数器是递减计数器,对输入脉冲计数。当计数器计到0时,可从定时计数器的输出端输出一个脉冲或方波。M2M1决定定时器的输出波形。当:M2M1=00时,定时/计数器的输出波形为单个方波;M2M1=01时,定时/计数器的输出波形为连续方波;M2M1=10时,定时/计数器的输出波形为单个脉冲;M2M1=00时,定时/计数器的输出波形为连续脉冲。,8155 H与8031单片机的接口及应用8031单片机与并行接口8155的接口电路如图所示。对8155地址分配如下:RAM地址:7E00H-7EFFHI/O口地址:命令/状态寄存器的地址:7F00HPA口的地址:7F01HPB口的地址:7F02HPC口的地址:7F03H定时器低8位的地址:7F04H定时器高8位的地址:7F05H,设A口定义为基本输入方式,B口定义为基本输出方式,定时器作为方波发生器,对输入脉冲进行24分频。,8155初始化参考程序如下:MOV DPTR,#7F04HMOV A,#18H;对计数器的低8位赋初值MOVX DPTR,AINC DPTR MOV A,#40H;设定定时器为连续方波输出MOVX DPTR,A;装入定时器高8位MOVDPTR,#7F00HMOVA,#0C2H;设定命令控制字,启动定时器MOVXDPTR,A,9.4 用锁存器缓冲器扩展并行I/0口,用锁存器扩展8位并行输出口74LS377扩展简单输出口的接口电路如下图,7FFFH,用锁存器扩展选通输入的8位并行输入口,0BFFFH,MCS-51单片机与总线驱动器的接口,74LS245是双向8位三态门缓冲器,当DIR为低电平时,A1A8的数据送至B1B8;当DIR为高电平时,B1B8的数据送至A1A8。由图可知,当/PSEN或/RD为低电平时,数据由外部设备输入至P0口;当/PSEN和/RD均为高电平时数据由总线P0口输出至外部设备。,