第5章接口芯片与接口技术详细5.1I/O概述5.1.1I/O接口电路的作用计算机系统的除了CPU、存储器外,还必须有外部设备。计算机通过输入/输出设备和外界进行通信。计算机所用的数据以及现场采集的各种信息都要通过输入设备送到计算机;计算的结果和计算机产生的各种控制信号又需通过输出设备输出到外部设备。51单片机4个I/O,P3口,P2口会被其他应用,只能P1口能被完全利用,不够用详细计算机的I/O操作,即CPU和外部设备之间的数据传送却十分复杂。主要表现在以下几个方面:(1)外部设备的工作速度与计算机相比要低得多。开关,继电器(2)外部设备的种类繁多,有机械式、机电式及电子式等等。转换成芯片能够识别的信号(3)外部设备的数据信号是多种多样的,既有电压信号,也有电流信号;既有数字量,还有模拟量。(4)外部设备的数据传送有近距离的,也有远距离的;有的使用并行数据传送,而有的则使用串行传送数据。详细接口电路:对CPU和外部设备之间的数据传送进行协调具体说来,接口电路主要有以下几项功能:(1)速度协调。(2)数据锁存。(3)三态缓冲。(4)数据转换。详细(1)速度协调。CPU接口I/O设备询问READY在CS有效下,CPU先给锁存器发送11,灯泡亮,再断开CS,锁存器的信号保持;在CS有效下,CPU先给锁存器发送00,灯泡灭。(2)数据锁存数据在数据总线上停留的时间十分短暂CPU接口CS详细灯泡8051的4个并行I/O口,都是通过锁存器和外界联系总线隔离技术:任一时刻,只允许一个数据源使用总线。其余数据源和数据总线隔离。三态缓冲是门电路,不像锁存器是触发器,锁存器能够保持信息,门电路不能保持,有输入和输出,一旦使能端有效,输入和输出信号相同,使能端无效,输出是高阻。详细控制信号(3)三态缓冲详细(4)数据转换A/D、D/A转换,转换电路•缓冲器、锁存器应用概念锁存器:是由触发器作为基本单元,有输入也有输出,输入连接内部总线,输出连接外部设备,有控制信号;看图8-2控制信号有效,输入和输出相等,把相应数据总线数据保存上去,控制信号无效,输出信号不受输入信号的影响。锁存器用作输出缓冲器:门电路,不具有保存功能,有输入也有输出,输入连接外部设备,输出连接数据总线。看图8-3缓冲器用作输入,一旦控制信号有效,把外部信号传到数据总线,控制信号无效,处于高阻态详细接口电路(锁存器)锁存信号OD7...OD0CPU数据总线接口电路LD7...LD0允许信号CPU数据总线图8-2输出接口电路图8-3输入接口电路详细5.1.2接口与端口“接口”一词是从英文interface翻译过来的,具有界面、相互联系等含义。接口这个术语在计算机领域中应用十分广泛,本章所讲述的接口则特指计算机与外设之间在数据传送方面的联系,其功能主要是通过电路实现的,因此称之为接口电路,简称接口。详细5.1.3I/O的编址方式计算机中,凡需进行读写操作的设备都存在着编址问题。计算机中两种编址的器件:一存储器;二接口电路。存储器是对存储单元进行编址,接口电路是对其中的端口进行编址。对端口编址是为I/O操作而进行的,称为I/O编址。常用的I/O编址有两种方式:1.独立编址方式2.统一编址方式详细•存储器扩展中,RAM和ROM是独立编制,独立空间,反映了他们的特点----指令不同,信号不同将I/O和存储器分开进行编址计算机形成两各独立的地址空间,也就有各自的独立的读写指令。独立编制统一编制将I/O和存储器统一进行编址,只需一套的存储器指令,直接对存储器和I/O操作。详细如果51单片机把I/O和RAM统一编址,就用MOVX一个命令就行5.2输入/输出I/O传送方式5.2.1无条件传送方式也称为同步程序传送,类似于CPU和存储器之间的数据传送。只有那些一直为数据I/O传送作好准备的外部设备,才能使用无条件传送方式。这种传送方式不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。外部设备总是处于准备好的状态,无需测试,随时可以传送数据。例如指示灯、发光二极管详细(1)外设的工作速度非常快,足以和CPU同步工作。(2)具有常驻的或变化缓慢的数据信号的外设。三态缓冲器锁存器至外设来自外设地址译码器地址译码器RDWRCPU地址总线图8-4无条件传送接口CPU数据总线无条件传送方式适用于以下两类外部设备的输入输出:5.2.2查询传送方式查询传送又称为条件传送,即数据的传送是有条件的。在输入/输出之前,先要检测外设的状态,以了解外设是否已为数据输入输出作好了准备,只有在确认外设已“准备好”的情况下,CPU才能执行数据输入/输出操作。通常把通过程序对外设状态的检测称之为“查询”,所以这种有条件的传送方式又叫做程序查询方式。查询的流程图如图5―1所示。详细图5―1查询方式流程图详细5.2.3中断传送方式由于查询传送方式为CPU主动要求传送数据,而它又不能控制外设的工作速度,因此只能用等待的方式来解决配合的问题。耗费CPU资源中断方式则是在外设为数据传送作好准备之后,就向CPU发出中断请求信号(相当于通知CPU),CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去为外设的数据输入输出服务,待服务完之后,程序返回,CPU再继续执行被中断的原程序。中断方式大大提高CPU的效率。详细由于CPU的工作速度很快,传送1次数据(包括转入中断和退出中断)所需的时间很短。对外设来讲,似乎是对CPU发出数据传送请求的瞬间,CPU就实现了;对主程序来讲,虽然中断了1个瞬间,但由于时间很短,也不会有什么影响。详细5.2.4MCS-51单片机I/O口的直接应用I/O操作指令输出数据输入数据MOVPx,AMOVA,PxMOVPx,RnMOVRn,PxMOVPx,@RiMOV@Ri,PxMOVPx,directMOVdirect,Pxx=0~3Px=P0~P3将I/O口作为寄存器使用,进行字节数据传送详细MOV(位传送)MOVPx,y,CCLECLEPx,ySETBSETBPx,yCPL(位取反)CPLPx,yJB(位为1转移)JBPx,y,relJNB(位为0转移)JNBPx,y,relJBC(位为0转移清0)JBCPx,y,relx=0~3y=0~7详细I/O位操作指令•I/O的其他操作指令详细ANLANLPx,AORLORLPx,AXRLXRLPx,AINCINCPxDECDECPxDJNZ数值减1条件转移DJNZPx,relCJNE(数值比较转移)CJNEA,Px,relI/O口直接应用举例P1.0P1.1P1.2P1.38031P1.4P1.5P1.6P1.7K1K2K3K4K是开关,产生0,1电平灯泡5VP1.0D0D1D2D3510欧510k欧详细P1.0~P1.3是输入,P1.4~P1.7是输出;开关按下是0,打开是1;要求:用k0,~k3分别控制灯泡D0~D3状态取反读开关状态状态送高4位输出中断方式I/O口直接数据传送&&5v1k1kINT0详细开关按下一次再弹起,产生一个脉冲(负跳变),给外部中断0端口产生中断请求。置外中断方式0脉冲触发方式总中断允许等待中断外中断0允许开始详细MAIN:SETBIT0/脉冲边沿触发SETBEX0/开放外部中断0SETBEA/开放中断HERE:AJMPHERE/等待中断EXTR:MOVA,#0FH/中断服务程序MOVP1,A/熄灭发光二极管MOVA,P1/输入开关状态CPLA/状态取反ANLA,#0FH/屏蔽高字节SWAPA/高低半字节交换MOVP1,A/输出开关状态RETI详细5.3单片机简单I/O口扩展应用有2类:输入口扩展;输出口扩展5.3.1简单输入口扩展简单输入解决数据缓冲问题简单输入扩展就是扩展缓冲器74LS244CE1A12Y41A22Y31A32Y21A42Y1GNDAccCE21Y12A41Y22A31Y32A21Y42A11A2A1Y2Y三态数据缓冲器详细74LS244:2个四位数据缓冲器(8位)A是和外设连,Y连总线利用74LS244进行简单输入扩展P08031ALERD74LS373271674LS244CE1CE2外设详细说明:2716是扩展ROM本系统没有RAM74LS244缓冲器没有地址,可以和RAM统一编址,要读设备时,地址随便一个数据就可以,使用指令MOVXA,@DPTR;MOVX指令就会使RD有效;DPTR可以为任意值。本题很特殊,只有一个外部设备P08031ALERD74LS373276474LS3274LS3274LS3274LS3274LS32YCE244AYCE244AYCE244AYCE244AYCE244AP2.3P2.4P2.5P2.6P2.7P2.0~P2.474LS32:或门5×8=405个缓冲器244,就需要通过线选法P2.7位为0选中最后一个244,地址:0111,1xxx,xxxx,xxxx可以xxx取0,地址7800H详细详细5-3-2简单输出的扩展主要功能:数据保持(锁存)典型芯片具有使能控制的8D锁存器8D~1D:8位数据输入8Q~1Q:8位数据输出CK:时钟信号,上升沿数据锁存G:使能信号GVcc1Q8Q1D8D2D7D2Q7Q3Q6Q3D6D4D5D4Q5QGNDCK74LS377锁存器GCKDQ1XXQ00↑110↑00X0XQ074LS377真值表DQCKGG详细小结:锁存器和缓冲器的特点及使用1组成锁存器单元电路:触发器(带时钟控制端触发器)有记忆2组成缓冲器单元电路:门电路(三态传输电路)没有记忆Q0Q7CP锁存器GD0D7D0D7CE缓冲器A0A7DBUSDBUS详细5-3用串行口扩展并行口RxDTxDP1.0DATACD4094CLKSTBDATACD4014CLKP/SRxDTxDP1.0输出输入详细说明:用单片机自身带的串行口来扩展并行口4094是一个移位寄存器,串行输入并行输出。通过TxD发送脉冲,把RxD的数据由CPU的SBUF一位一位移到4094;当p1.0有效,8位同时输出。4014是一个移位寄存器,并行输入串行输出。通过TxD发送脉冲,把4094的8位数据一位一位移到RxD的SBUF;当p1.0有效,8位同时输入。详细6.1可编程并行I/O接口8255A详细可编程I/O扩展:还具有状态寄存和命令寄存功能,通过软件编程方式,确定扩展芯片的工作方式。典型芯片:8255,8155简单I/O扩展:实现数据缓冲和数据锁存8255A可编程并行输入/输出接口芯片是Intel公司生产的标准外围接口电路。它采用NMOS工艺制造,用单一+5V电源供电,具有40条引脚,采用双列直插式封装。它有A、B、C3个端口共24条I/O线,可以通过编程的方法来设定端口的各种I/O功能。由于它功能强,又能方便地与各种微机系统相接,而且在连接外部设备时,通常不需要再附加外部电路,所以得到了广泛的应用。6.1.18255A的内部结构与引脚1.8255A的接口电路(图6-2)数据端口A、B、C,8255A有3个8位数据端口,即端口A、端口B和端口C。编程人员可以通过软件将它们分别作为输入端口或输出端口,不过这3个端口在不同的工作方式下有不同的功能及特点。PA,PB口是单纯数据(输入输出)PC口既可做数据口,也可做控制口,用于控制PA,PBI/O有无条件输入输出,也有有条件输入输出详细图6―28255A的芯片引脚图假如有条件,由PC口来输入条件PC7~PC4控制PAPC3~PC0控制PBA组:由控制电路控制端口A和端口C的上半部(PC7~PC4)。B组:由控制电路控制端口B和端口C的下半部(PC3~PC0)详细2.8255A的芯片引脚8255A是一种有40个引脚的双列直插式标准芯片,其引脚排列如图6―2所示。除电源(+5V)和地址以外,其它信号可以分为两组:(1)与外设相连接的有:PA7~PA0:A口数据线PB7~PB0:B口数据线PC7~PC0:C口数据线详细(2)总线接口电路:D7~D0:8255A的数据线,和系统数据总线相连。数据总线缓冲器,8位双向三态缓冲器,所有数据(包