资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第九章 MCS一51单片机并行I/O接口的扩展,第十章 MCS一51单片机并行I/O接口的扩展,第一节 概 述,一、为什么要扩展I/O接口,在单片机系统中主要有两类数据传送操作,一类是单片机和存储器之间的数据读写操作;另一类那么是单片机和其它设备之间的数据输入输出I/O操作。,存储器是半导体电路,与单片机具有相同的电路形式和信号形式,能相互兼容直接使用。存储器与单片机之间的连接十分简单,主要包括地址线、数据线、读写选通信号。,单片机与控制对象或外部设备之间的数据传送却十分复杂。其复杂性主要表现在以下几个方面:,1、速度差异大,慢速设备如开关、继电器、机械传感器等,每秒钟传送不了一个数据;而高速采样设备,每秒钟要传送成千上万个数据位。面对速度差异如此之大的各类设备,单片机无法以一个固定的时序同它们按同步方式协调工作。,2、设备种类繁多,单片机应用系统中的控制对象或外部设备种类繁多,它们既可能是机械式的,又可能是机电式的,还可能是电子式的。由于不同设备之间性能各异、对数据的要求互不相同,因此无法按统一格式进行数据传送。,3、数据信号形式多种多样,单片机应用系统所面对的数据形式也是多种多样的,例如既有电压信号,也有电流信号;既有数字形式,还有模拟形式。,二、扩展I/O接口电路的功能,在单片机应用系统中,扩展1/O接口电路主要是针对如下几项功能:,1.速度协调,由于速度上的差异,使得单片机的I/O数据传送只能以异步方式进行。设备是否准备好,需要通过接口电路产生或传送设备的状态信息,以此实现单片机与设备之间的速度协调。,2.输出数据锁存,在单片机应用系统中,数据输出都是通过系统的公用数据通道数据总线进行的,单片机的工作速度快,数据在数据总线上保存的时间十分短暂,无法满足慢速输出设备的需要。在扩展I/O接口电路中应具有数据锁存器,以保存输出数据直至能为输出设备所接收。,3.输入数据三态缓冲,数据输入时,输入设备向单片机传送的数据要通过数据总线,但数据总线是系统的公用数据通道,上面可能“挂着多个数据源,工作比较繁忙。为了维护数据总线上数据传送的“次序,因此只允许当前时刻正在进行数据传送的数据源使用数据总线,其余数据源都必须与数据总线处于隔离状态。为此要求接口电路能为数据输入提供三态缓冲功能。,4.数据转换,单片机只能输入和输出数字信号,但是有些设备所提供或所需要的并不是数字信号形式。为此,需要使用接口电路进行数据信号的转换,其中包括:模/数转换和数/模转换。,三、MCS一51单片机常用的扩展器件,MCS一51单片机常用的扩展器件有如下三类:,常规逻辑电路、锁存器,如74LS377,74LS245。,MCS80/85并行接口电路,如8255。,RAM/IO,综合扩展器件,如,8155,。,第二节 简单I/O接口的扩展,当所需扩展的外部1/O口数量不多时,可以使用常规的逻辑电路、锁存器进行扩展。这一类的外围芯片一般价格较低而且种类较多,常用的如:74LS377、74LS245、74LS373、74LS244、74LS273、74LS577、74LS573。,一、74LS377芯片及扩展举例,以下图是74LS377的引脚图和功能表。74LS377是一种8D触发器,它的/E端是控制端、CLK端是时钟端,当它的/E端为低电平时只要在CLK端产生一个正跳变,D1D7将被锁存到QOQ7端输出,在其他情况下Q0Q7端的输出保持不变。,如图使用了一片74LS377扩展输出口,如果将未使用到的地址线都置为1那么可以得到该片74LS377的地址为7FFFH。如果要从该片74LS377输出数据到单片机中可以执行如下指令:,MOV DPTR,7FFFH,MOVX DPTR,A,二、74LS245芯片及扩展举例,图是74LS245的引脚图和功能表。74LS245是一种三态输出的8总线收发驱动器,无锁存功能。它的G端和DIR端是控制端,当它的G端为低电平时,如果DIR为高电平,那么74LS245将A端数据传送至B端;如果DIR为低电平,那么74LS245将B端数据传送至A端。在其他情况下不传送数据,并输出高阻态。,如图使用了一片74LS245扩展输人口,如果将未使用到的地址线都置为1,那么可以得到该片74LS245的地址为7FFFH。如果单片机要从该片74LS245输人数据,可以执行如下指令:,三、74LS244芯片及扩展举例,74LS244,芯片的引脚排列:,该芯片内部有,2,个,4,位的三态缓冲器,一片,74LS244,可以扩展一个,8,位输入口,其电路连接如图,7,10,所示。使用时以,/CE,作为数据选通信号。,应用举例:,1、使用多片74LS244实现多个输入口扩展的电路连接如下图,使用或门74LS32的输出作为输入口的选通信号。或门的两个输入端一个是读选通信号/RD,另一个那么为P2口的一条口线线选法。当它们都为低电平时,才能得到一个有效的输入选通,使一片74LS244的8位数据进行输入。,2、一个拨盘可产生一个BCD码形式的十进制数(4位)。现有A、B、C、D4个拨盘,要求把它们产生的BCD码数依次输入到通用存放器R4(B、A)、R5(D、C)中去。每个BCD码需4条输入线,4个BCD码那么共需16条愉入线,即2个8位口(1口和2口,因此用两片74LS244就可构成其输入接口,电路连接如图7.12所示。,P2.7、P2.6分别作为1#口和2#口的地址选通线线选法。假定其它地址线为1,那么1#输入口地址为7FFFH,2#输入口地址为0BFFFH。,数据输入程序:,MOV DPTR,7FFFH;1口地址,MOVX A,DPTR;从拨盘取数,MOV R4,A,MOV DPTR,0BFFFH;2口地址,MOVX A,DPTR;从拔盘取数,MOV R5,A,第三节,8155,可编程接口及扩展技术,8155,具有,3,个可编程,I/O,口,其中,2,个口,(A,和,B),为,8,位口,,1,个口,(C),为,6,位口,,256,单元的,RAM,和,1,个,14,位计数结构的定时器计数器。,一、,8155,芯片结构,在与单片机接口的方向,,8155,提供如下信号:,n,AD,7,AD,0,地址数据复用线。,n,ALE,地址锁存信号。除进行,AD,7,AD,0,的地址锁存控制外,还用于把片选信号,/CE,和,IO,M,等信号进行锁存。,n,/RD,读选通信号。,n,/WR,写选通信号。,n,/CE,片选信号。,n,IO,M,I/O,与,RAM,选择信号。,IO/M=0,对,RAM,进行读写;,IO,M=l,时,I/O,口进行读写。,n,RESET,复位信号。,8155,以,600 ns,的正脉冲进行复位,复位后,A,、,B,、,C,口均置为输入方式。,二、,I/O,口及其工作方式,PA,和,PB,是,8,位通用输入输出口,主要用于数据的,I/O,传送,是数据口,只有输入输出两种工作方式。,PC,口为,6,位口,它既可作数据口用于数据的,I/O,传送,也可作控制口,用于传送控制信号和状态信号。,PC,口共具有,4,种工作方式,即:输入方式、输出方式、,PA,口控制端口方以及,PA,和,PB,口控制端口方式。,当,PA,或,PB,以中断方式进行数据传送时,所需的联络信号由,PC,提供,各联络信号如表:,联络信号共有3个,其中:、,INTR中断请求信号输出,高电平有效。送给MCS-51单片机的外中断请求信号。,BF缓冲器满状态信号输出,高电平有效。,STB选通信号输入,低电平有效。数据输入操作时STB是外设送来的选通信号;数据输出时STB是外设送来的应答信号。,三、RAM单元及I/O口编址,8155共有256个RAM单元,加上6个可编址的端口,这6个端口是:命令状态存放器、PA口、PB口、PC口、定时器计数器低8位以及定时器计数器高8位。8155引入8位地址AD7-AD0,无论是RAM还是可编址口都使用这8位地址进行编址。如表所示。,四、,8155,与,MCS-51,单片机的连接,信号的对应关系如下:,举例:,五、8155的命令字及状态字的格式及用法,8155的命令字和状态字存放器共用一个地址,命令字存放器只能写不能读,状态字存放器只能读不能写。,六、8155的定时器计数器,1.定时器计数器的计数结构,8155的定时器计数器是一个14位的减法计数器,由两个8位存放器构成,以其中的低14位组成计数器,两个高位M2、M1用于定义计数器输出的信号形式。,8155定时器计数器的计数结构如下:,2.定时器计数器的使用,8155的定时器计数器与MCS-51单片机芯片内部的定时器计数器在功能上是完全相同的,即同样具有定时和计数两种功能。但是在使用上却与MCS-51的定时器计数器有许多不同之处。具体表现在:,8155的定时器计数器是减法计数,MCS-51的定时器计数器是加法计数。确定计数初值的方法是不同的。,MCS-51的定时器计数器有多种工作方式。8155的定时器计数器那么只有一种固定的工作方式,即14位计数,通过软件方法进行计数值加载。,MCS-51的定时器计数器有两种计数脉冲。当定时工作时,由芯片内部按机器周期提供固定频率的计数脉冲;当计数工作时,从芯片外部引入计数脉冲。8155的定时器计数器,不管是定时工作还是计数工作,都由外部提供计数脉冲,其信号引脚就是TIMER IN。,MCS-51的定时器计数器,计数溢出自动置位TCON存放器的计数溢出标志位(TF),供用户以查询或中断方式使用;但8155的定时器计数器,计数溢出时向芯片外边输出一个信号TIMER OUT。这一信号还有脉冲和方波两种形式,供用户进行选择。具体由M2M1,两位定义:,M2M1=00单个方波,M2M1=01连续方波,M2M1=10单个脉冲,M2M1=11连续脉冲,这4种输出形式如图7.26所示。,3.定时器计数器的控制,8155定时器计数器的工作方式由命令字中的高两位D7D6进行控制。具体说明知下:,D7D6=00不影响计数器工作。,D7D6=01停止计数。如计数器未启动那么无操作,知计数器正运行那么停止计数。,D7D6=10到达计数值计数器减为0后停止。,D7D6=11启动。如计数器没运行,那么在装入计数值后开始计数;如计数器已运行,那么在当前计数值计满后,再以新的计数值进行计数。,七、应用举例,例 要求使用8155定时器计数器对计数脉冲进行千分频,即计数1000后,TIMER OUT端电平状态变化,并重新送数以产生连续方波。此外假定PA口为输入方式,PB口为输出方式,PC口为输入方式,禁止中断。请编写初始化程序。,解 此题共两项任务:计数初值确实定和命令字确实定。,计数器的最高两位M2M1=01,计数器的其它14位装入计数初值。由于8155计数器是减法计数,所以计数初值应为十进制数1000,十六进制数为03E8H。那么:计数器高位字节为43H,计数器低位字节为0E8H,按上述要求,8155的命令字为0C2H。各位状态为:,由于命令字的高两位D7D6=11,因此在装入计数值后,计数器即开始计数。假定命令状态存放器地址为0FD00H。那么初始化程序为:,MOV DPTR,#0FD00H;命令状态存放器地址,MOV A,0C2H;命令字,MOVX DPTR,A;装入命令字,MOV DPTR,#0FD04H;计数器低8位地址,MOV A,0E8H;低8位计数位,MOVX DPTR,A;写入计数值低8位,INC DPTR;计数器高8位地址,MOV A,#43H;高8位计数值,MOVX DPTR,A;写入计数值高8位,例:假设A口定义为根本的输人方式,B口定义为根本的输出方式,对输入脉冲进行200分频,写出8155的1/O初始化程序。,RAM字节地址:7E00H-7EFFHP2.0=0,I/O接口地址:,命令状态口:7F00H,PA口:7F01H,PB口:7F02H,PC口:7F03H,定时器低8位:7F04H,定时器高8
展开阅读全文