1、第四节 I/O接口电路的扩展,4.1 输入输出接口的概念 (1) 输入输出设备,输入输出设备又称为计算机外围设备,简称外设或IO设备。 单片机应用系统除了主机之外,还需要配备必要的输入输出设备,以便通过这些设备实现人机联系,例如系统在运行过程中,操作人员对系统状态进行干预,就需要输入设备。才能向计算机输入必要数据,达到控制的目的。同时计算机系统在运行中,还需要有输出设备,才能把它的运行状态显示出来,以便操作者采取相应的措施。 常用的输入设备有按钮、键盘、各种传感器、穿孔带、扫描器等等。常用的输出设备有LED(发光二极管显示器)、LCD(液晶显示器)、CRT(阴极射线管)显示器、打印机、绘图仪,
2、电机,液压伺服阀等等。,地址总线,数据总线,控制总线,8031,存储器 芯片,I/O接口 芯片,外设,(2) 什么是I/O接口(电路),I/O接口是位于单片机系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。 单片机系统中的接口芯片、信号采集电路和功率驱动电路都是接口电路。,(3)接口电路的内部结构,单片机芯片与外设主要有数据、状态和控制信息需要相互交换,它是通过单片机芯片对I /O接口芯片的端口读写八位二进制数来实现的,从应用角度看,I /O接口芯片的端口分三类如图所示:, 数据端口 输入数据端口:保存外设给CPU的数据。单片机芯片读取输入数据端口的数据,就相当于读取了外设的数据。 输
3、出数据端口:保存CPU给外设的数据。单片机芯片向输出数据端口写数据,就相当于向外设输出数据。 状态端口 保存外设或接口电路的状态,例如在输入时,有输入装置的信息是否准备好(Ready);在输出时有输出装置是否有空(Empty),若输出装置正在输出信息,则以忙(Busy)表示等。单片机芯片读取状态端口的数据,就相当于获取了外设的工作状态。 控制端口 保存CPU给外设或接口电路的命令,例如控制输入输出装置启动或停止,给接口电路设置工作方式。单片机芯片向控制端口写数据,就控制接口电路芯片和外设如何工作。,接口电路与外设之间的信息传送,只要它们之间的硬件电路连接正确,则它们互相之间信息传送是自动完成的
4、,不需软件程序。那么软件程序是如何控制单片机与外设之间信息交流,是靠单片机芯片读写接口电路芯片的各类端口内的八位二进制数据来实现的。,演示,4.2 I / O接口内的各端口的地址分配,在MCS-51单片机中,对扩展IO接口芯片的端口的访问采用与对外部RAM相同的寻址方法。所有的I0接口芯片的每个端口均与片外扩展RAM进行统一编址,每个端口都可看成外部RAM芯片的一个存储单元,访问I/O端口就象访问外部RAM的存储单元一样,采用与访问外部RAM存储单元相同的MOVX指令对扩展I/O端口进行读写操作。,并行接口芯片8255中端口地址的确定(1),8255为40引脚的双列直插可编程大规模集成电路芯片
5、,内部集成有3个I/O数据端口,分别为PA、PB和PC,它们都是8位的端口,都可以选择作为输入或输出。还有一个控制端口,用以设置该芯片的工作方式。由于MCS-51单片机系统接口芯片的端口与外部RAM的存储单元是统一编址,因此8255芯片的四个端口可看作外部RAM存储单元,从端口寻址角度看,也可以把8255芯片看待为只具有4个存储单元的RAM芯片。接口芯片端口空间和外部 RAM存储空间位于同一物理空间,它们与外部ROM芯片存储空间位于不同空间,用控制线/RD、/WR和/PSEN来区分两个小区。,并行接口芯片8255中端口地址的确定(2),对于确定接口芯片端口的地址,通常把不起寻址作用的地址线设置
6、为1,图中8255芯片的数据端口A的地址为1011 1111 1111 1100B,转换为十六进制为BFFCH。,4.3 专用可编程并行I/O接口芯片8255的应用,可编程并行I/O接口芯片通常是一种可采用软件编程的方法来改变和确定IO口工作方式及功能的大规模集成电路芯片。常用的有Intel公司的8155、8255等,它们可与MCS-51单片机直接连接,使用十分方便,本课程仅以8255为例介绍芯片的结构、功能及与MCS-51单片机的接口。 8255为40引脚的双列直插可编程大规模集成电路芯片,内部集成有3个可编程I/O端口,分别为PA、PB和PC,它们都是8位的端口,都可以选择作为输入或输出。
7、通常,端口A和端口B作为输入或输出的数据端口,端口C分成两个4位的端口,分别与端口A和端口B配合使用,用做控制信号或状态信号。,可编程并行I/O接口芯片通常是一种可采用软件编程的方法来改变和确定IO口工作方式及功能的大规模集成电路芯片。常用的有Intel公司的8155、8255等,它们可与MCS-51单片机直接连接,使用十分方便,本课程仅以8255为例介绍芯片的结构、功能及与它与MCS-51单片机的接口。 8255为40引脚的双列直插可编程大规模集成电路芯片,内部集成有3个可编程I/O端口,分别为PA、PB和PC,它们都是8位的端口,都可以选择作为输入或输出。通常,端口A和端口B作为输入或输出
8、的数据端口,端口C分成两个4位的端口,分别与端口A和端口B配合使用,可用作数据端口,也可用做控制信号或状态信号。,8255芯片有3种工作方式,用方式选择控制字来选用。方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。 在8255芯片内有控制寄存器,它接受来自单片机芯片的输出的控制字。8255芯片的工作方式是通过控制寄存器中的控制字来指定的。 方式选择控制字由八位二进制数组成,每一位二进制数是“1”还是“0”决定了8255芯片的三个I/O端口处于何种工作方式,以及它们是输入口还是输出口。右图所示为控制字的功能。,图例,方式0是一种基本的IO方式,也是最常用的工作方式。在这
9、种工作方式下,3个端口都可由程序选定作为输入或输出。这种工作方式用于无条件传送方式的接口电路是十分简单的,这时不需要状态端口,3个端口都可作为数据端口。若设端口PA为输出口,端口PB和PC为输入口,那么8255芯片的控制寄存器中的控制字的值应为 。,图例,8255在方式0下工作的例子,如果把A口作为输出口,并把A口的对应的8根输出线分别连在八个发光二极管LED上, B口作为输入口,并把B口的对应的8根输入线分别连在八个开关SB上。 若要闭合B口的八根输入线上的任意开关,就会使A口输出线对应的发光二极管亮,应该如何编制程序。,MOV DPTR, #BFFFH ;给数据指针DPTR送入控制寄存器的
10、地址 MOV A, #8BH ; MOVX DPTR, A ;把控制字8BH赋值给控制寄存器,使端口A为;输出口,B口为输入口 MOV DPTR, #BFFDH ;给数据指针DPTR送入PB口的地址 MOVX A, DPTR ;把PB口对应八根输入线上开关闭合状态(闭合;的输入线为0)送入累加器A MOV DPTR, #BFFCH ;给数据指针DPTR送入PA口的地址 MOVX DPTR ,A ;把累加器A送入8255芯片的PA口,PA口中为0,;的输出线对应的二极管发亮,并行I/O口的扩展的总结,所有单片机外围接口芯片(例如定时器8253、中断控制器8259、键盘显示电路8279和数模、模数
11、转换芯片等)都可以采用这种思想控制其工作,即把接口芯片的各数据端口和各控制端口、状态端口分别作为外部扩展RAM单元,根据原理图连线情况确定相应的地址,向数据端口读写数据,向控制端口写入控制字,从状态端口读状态字,即可操控各种外围接口芯片工作,进而控制外部设备的运行。,习题(一),1、I/O接口芯片中的端口类型分为三种, 、 和 。 2、MCS-51单片机的片外RAM与ROM的存储空间是 (分别独立编址还是统一编址),而其片外RAM的存储空间与I/O接口芯片的端口空间是 (分别独立编址还是统一编址) 3、读取I/O接口芯片中的数据,所执行的传送指令的助记符为() (A)MOVX (B)MOVC
12、(C)IN (D)MOV 4、微机系统如何依靠程序来控制外部设备的运行?,习题(二),5、请写出外部RAM6264芯片的地址范围以及并行接口芯片8255四个端口的地址,编制一段程序,使PA口的引脚PA7和PA3对应的发光二极管亮,而其它二极管不亮。,习题(三),6、请写出外部RAM6264芯片的地址范围以及两片并行接口芯片8255中的端口的地址,44简单并行I/O口扩展,图中采用74LS244为输入接口芯片,用于输入8个开关的信息。74LS273为输出接口芯片,输出控制8个LED指示灯(发光二极管)。74LS244的数据输出端(Q0-Q7)和74LS273的数据输入端(D0-D7)均与单片机的
13、双向数据总线P0口相连,这样CPU即能从74LS244输入数据,又能把数据经74LS273输出。,74LS244的端口地址FEFFH的二进制表示,74LS244的端口地址FDFFH的二进制表示,LOOP: MOV DPTR,#FEFFH ;DPTR指向扩展输入接口芯片74LS244的;端口MOVX A, DPTR ;从74LS244输入开关状态MOV DPTR,#FDFFH ;DPTR指向扩展输出接口芯片74LS273的端口MOVX DPTR, A ;将开关状态数据从74LS273输出,驱动LEDSJMP LOOP ;循环检测开关状态,并把开关状态及时送到输出口;控制相应的LED的亮灭END,结束,8255并行接口芯片的扩展,图例,查询传送流程,返回,