资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机系统I/O扩展,并行I/O口扩展,4.1.1 89C51内部并行I/O口及其作用 51系列单片机内部有4个双向的并行I/O端口:P0P3,共占32根引脚。P0口的每一位可以驱动8个TTL负载,P1P3口的负载能力为三个TTL负载。有关4个端口的结构及详细说明,在前面的有关章节中已作过介绍,这里不再赘述。 在无片外存储器扩展的系统中,这4个端口都可以作为准双向通用I/O口使用。通过7.1和7.2节的介绍,我们知道,在具有片外扩展存储器的系统中, P0口分时地作为低8位地址线和数据线,P2口作为高8位地址线。这时,P0口和部分或全部的P2口无法再作通用I/O口。,P3口具有第二功能,在应用系统中也常被使用。因此在大多数的应用系统中,真正能够提供给用户使用的只有P1和部分P2、P3口。 综上所述,89C51单片机的I/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。 在51单片机中扩展的I/O口采用与片外数据存储器相同的寻址方法,所有扩展的I/O口,以及通过扩展I/O口连接的外设都与片外RAM统一编址,因此,对片外I/O口的输入/输出指令就是访问片外RAM的指令,即:,4.1.2 简单的I/O口扩展 简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。 1. 扩展实例 采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。,74HC373芯片的功能 输出接口扩展通常用74HC373芯片来实现。该芯片是一个带允许端的8D锁存器,其芯片的引脚如图4所示,各相关引脚的功能如下: D0D7为8位数据输入端; Q0Q7为8位数据输出端; G为使能控制端; CLK为时钟信号,上升沿锁存数据。,4.1.3 采用8155扩展I/O口 在实训电路中采用的是另一种可编程的接口芯片8155,Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256 B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。 1. 8155的结构和引脚 8155有40个引脚,采用双列直插封装,其引脚图和组成框图如图8.20所示。,图 8155的引脚图和结构框图,我们对8155的引脚分类说明如下: (1) 地址/数据线AD0AD7(8条):是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。 (2) I/O口总线(22条):PA0PA7、PB0PB7分别为A、B口线,用于和外设之间传递数据;PC0PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。,(3) 控制总线(8条): RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。 :读/写线,控制8155的读、写操作。 ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。 :片选线,低电平有效。 :RAM或I/O口的选择线。当=0时,选中8155的256 B RAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。,TIM ERIN、 :定时/计数器的脉冲输入、输出线。TIMERIN输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。 2. 作片外RAM使用 当=0,=0时,8155只能做片外RAM使用,共256 B。其寻址范围由以及AD0AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256 B RAM的操作使用片外RAM的读/写指令“MOVX”。,3. 作扩展I/O口使用 当 =0, =1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分,为地址分配情况。,表8.4 6个内部寄存器的地址分配表,1) 命令/状态寄存器 和接口芯片8255一样,芯片8155 I/O口的工作方式的确定也是通过对8155的命令寄存器写入控制字来实现的。8155控制字的格式如图所示。 命令寄存器只能写入不能读出,也就是说,控制字只能通过指令MOVX DPTR, A或MOVX Ri, A写入命令寄存器。 在本书的实训电路板中,扩展了8155,用于连接8个LED显示和键盘,A、B口为基本输出方式,C口为基本输入方式,因此编写如下程序:,8155的控制字,MOV DPTR,#CWR;设CWR为命令寄存器的地址 MOV A,#03H ;A、B口为基本输出方式,C口为基本输入方式 MOVX DPTR,A 状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如图所示,图8.22 8155的状态字,状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令MOVX A ,DPTR或MOVX A,Ri来读出,以此来了解8155的工作状态。 2) 计数器高、低8位寄存器 关于计数器高、低8位寄存器的使用,我们将在后面讲到定时器使用时再作介绍。 4. I/O口的工作方式 当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图8.21所示。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。,方式1、2时,A、B、C口都工作于基本I/O方式,可以直接和外设相连,采用“MOVX”类的指令进行输入/输出操作。 方式3时,A口为选通I/O方式,由C口的低三位作联络线,其余位作I/O线;B口为基本I/O方式。 方式4时,A、B口均为选通I/O方式,C口作为A、B口的联络线。其逻辑组态如图所示。,图 8155方式4时的逻辑结构,C口的工作方式和各位的关系见表 。 表8.5 C口的工作方式,5. 定时/计数器使用 8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由 输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率! 定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。其中,低8位寄存器存放计数初始值的低8位,高8位寄存器的格式如下:,1) 定时/计数器的输出方式 定时器的输出方式见表8.6。,表8.6 定时器的输出方式,2) 定时/计数器的工作 8155对内部定时器的控制是由8155控制字的D7、D6位决定的(见图8.22),现总结如表8.7所示。,表8.7 定时/计数器的工作情况,6. 89C51单片机和8155的接口 89C51和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法,这和8255类似。在整个单片机应用系统中要考虑与片外RAM及其它接口芯片的统一编址,读者可参考本书的实训电路图中的方法,确定8155的相关地址。图为一个连接实例。,图 8155和8051的接口电路,8155,I/O口:,此时,8155内部RAM的地址范围为:0000H00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为: 命令/状态口 0400H A口 0401H B口 0402H C口 0403H 定时器低字节 0404H 定时器高字节 0405H,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号