单片机并行I-O口的扩展方法
- 格式:doc
- 大小:6.40 KB
- 文档页数:2
单片机io口扩展技术详解
单片机如何扩展IO口?
首先我们先讲讲为什幺要扩展IO口。
在我们使用51单片机的时候,有时候会出现IO口不够用的情况。
比如键盘!这个时候IO口的资源就十分有限了。
按键是我们常用的器件,做某些东西的时候又不能缺少按键。
如果一个按键对应一个IO口,那幺可想而知,按键所占的IO口的数量是很大的。
单片机IO口的资源是有限的,因此我们要采取一些方法来扩展单片机的IO 口,控制按键所占的单片机IO口。
下面有几种方法可以扩展单片机的IO口:
1. 通过数据缓存器、锁存器来扩展单片机IO口。
这里采用74HC164来扩展单片机IO口。
80C196单片机并行I/O端口扩展的方法汪建孙开放摘要:当用80C196单片机构成实际应用系统时,许多情况下需要扩展输入/输出端口。
本文介绍了用8243等芯片扩展该型单片机I/O端口的方法,从硬件连接和软件设计两个方面详细讨论了进行这种扩展的接口技术。
关键词:单片微机并行I/O 系统扩展1 引言80C196芯片是16位MCS-96系列单片机的重要成员,在工程应用领域有着广泛的应用[1]。
80C196KB/KC单片机共有5个8位的并行I/O端口:P0、P1、P2、P3和P4口。
虽然看起来I/O端口较多,但P0口同时用作片内A/D转换器的输入引脚ACH.0~ACH.7;P2口是多功能口,其中P2.0~P2.5共6个脚,具有复用功能,与芯片的其它功能共享;P3口和P4口一般用作系统总线AD0~AD15,通常不能再用作I/O口,这样当构成单片机应用系统后,只剩下P1口能作一般的I/O口使用,这对于稍大、稍复杂的系统而言,难以满足应用上的需求,实际中常需进行I/O口的扩展。
在单片机外部扩展I/O口时,可使用8155和8255等芯片[2, 3, 4]。
除此之外,还可用其它的集成电路芯片进行扩展。
本文从硬件连接和软件设计两个方面详细讨论了8243等多种芯片用于扩展80C196单片机系统并行I/O端口的方法。
2 用8243芯片扩展单片机的并行I/O口2.1 8243芯片的基本特性8243为24脚的双列直插式芯片,其引脚配置如图1所示。
该芯片共有4个4位的并行I/O端口,即P4、P5、P6和P7口,这四个端口均可独立地设置或为输入口或为输出口。
由于各端口均为4位,因此十分适宜用于BCD码的输入/输出。
CS为芯片的片选信号,低电平有效。
图1 8243引脚图8243芯片的P2口(P2.0~P2.3)为控制及信号端口,其有两个作用,一是传送设置芯片各端口工作方式的命令及端口地址,二是传送经芯片输入/输出的数据。
在第一种情况下,由P2.1、P2.0指定端口的地址,由P2.3、P2.2规定端口的工作方式,各位具体的定义见表1。
实验八、8155可编程并行I/O扩展接口实验一、实验目的1.熟悉8155并行接口芯片的基本工作原理及应用2.掌握单片机与8155的接口电路设计和编程二、实验设备1.仿真器2.8155可编程并行I/O扩展接口模块3.单片机最小系统模块4.数码管动态扫描显示模块5.矩阵式键盘模块三、实验要求连接单片机最小系统、8155扩展接口实验模块、数码管动态扫描显示模块、矩阵式键盘模块,要求在键盘按下时,8位LED动态显示器上最低位显示相应的字符,以前的各位字符向高位推进1位。
四、实验原理8155芯片内包含有256字节RAM,2个8位、1个6位的可编程并行I/O口,和1个14位定时器/计数器。
由于8155既具有RAM又具有I/O口,因而是单片机系统中最常用的外围接口芯片之一。
4.1引脚说明8155共40个引脚,采用了双列直插的封装,主要引脚功能如下:◆AD7—AD0:地址数据总线;单片机和8155之间的地址、数据、命令、状态信息都是通过它来传送的。
◆CE:片选信号线,低电平有效。
◆RD:存储器读信号线,低电平有效。
◆WR:存储器写信号线,低电平有效。
◆ALE:地址及片选信号锁存信号线,高电平有效。
在下降沿时将地址及片选信号锁存到器件中。
◆IO/M:IO接口与存储器选择信号线,高电平选择I/O,低电平选择存储器。
◆PA7—PA0:A口输出/输入线。
◆PB7—PB0:B口输出/输入线。
◆PC5—PC0:C口输出/输入或控制信号线,用作控制信号时其功能如下:◆PC0:A INTR(A口中断信号线)◆PC1:A BF(A口缓冲器满信号线)◆PC2:ASTB(A 口选通线)◆PC3:B INTR(B口中断信号线)图8-1 8155引脚与逻辑图◆PC4:B BF(B口缓冲器满信号线)◆PC5:BSTB(B 口选通线)表8-1 地址与寄存器映射◆TIMER OUT:定时器/计数器输出端;◆RESET:复位信号线。
◆8155引脚与逻辑如图8-1所示。
单片机并行I/O口的扩展方法
摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。
因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。
关键词: MCS-51单片机; 并行I/O口; 扩展
MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。
这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。
这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。
下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。
为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。
采用单片机的P1口设计流水灯,电路。
由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。
1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。
当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。
,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。
当单片机的串行口工作在模式0(作为移位寄存器使用)时需要注意:单片机原来的串行通信引脚RXD和TXD在这种工作方式下给出新的定义,原来用于串行接收数据的引脚RXD在这种工作模式下既可以接收也可以发送数据; 原来的串行发送引脚TXD在这种工作模式下则作为移位寄存器的脉冲输入端使用(通常接时钟端)。
单片机和串入/并出移位寄存器74LS164的连接:单片机的串行通信接收引脚RXD连接到串入/并出移位寄存器74LS164的输入引脚;单片机的串行通信发送引脚TXD连接到串入/并出移位寄存器74LS164的脉冲输入端;串入/并出移位寄存器74LS164的输出引脚连接8只发光二极管。
这样,选择单片机的串行口工作模式0,通过通信引脚RXD发送实现流水灯的串行数据,然后通过74LS164转换成并行数据后传送给发光二极管,即可实现流水灯。
这里需要注意74LS164数据的转换时间问题。
从图2可以看出,同样设计一个8位流水灯,采用上述方法只需要使用单片机的两个串行通信引脚RXD和TXD就可以完成。
此时,对于P3口的其他位可以作为第二功能使用(定时、中断等)。
2 使用8255A(或8155)扩展并行I/O口可编程并行接口芯片8255A[3]有3个并行的I/O口,分别为PA、PB和PC,这3个并行I/O口都可以通过编程决定它们的工作情况。
8255A与单片机的连接。
从图3中可以看出单片机与8255A的连接情况,利用单片机的P0口来分时传送地址和数据:P0口与8255A的8 bit数据线连接,用来传送数据和8255A的编程控制字;P0口连接地址锁存器74LS373输入端,74LS373的输出端连接8255A 的地址线A0、A1和片选信号CS。
通过A0、A1(即P0.0、P0.1)的4种不同组合(00~11)选择8255的3个并行的I/O口之一和控制口。
这样,通过对单片机和8255A编程,即可实现流水灯。
从图3可知,利用这种方法
扩展I/O口一次可以扩展3个并行的I/O口。
同样,也可以使用可编程并行接口芯片8155来进行并行I/O口的扩展。
8155有两个8 bit和一个6 bit的并行I/O口,同时它还有256 B 的静态RAM和一个14 bit的计数器。
3 使用芯片74LS138扩展并行I/O口 74LS138 为3 线~8 线译码器,可将地址输入端(A、B、C)的二进制编码在输出端Y0~Y7对应地以低电平译出。
比如:ABC=110时,则Y6输出端输出低电平信号。
74LS138与单片机的连接。
图4中,单片机的引脚P2.5、P2.6和P2.7分别连接74LS138的3个输入端A、B和C,74LS138的8个不同的输出端Y0~Y7分别连接8只发光二极管。
这样,A、B和C的8种不同组合(000~111)分别选择74LS138的8个不同的输出端Y0~Y7,即可实现流水灯。
4 几种扩展并行I/O口方法比较
使用单片机的串行口扩展并行I/O口时,单片机与串入/并出的移位寄存器(74LS164)连接比较简单,只需连接串行发送或接收引脚和移位脉冲引脚即可。
但是这种扩展方法只能扩展一个8 bit并行I/O口,若需扩展更多的并行I/O口时就需要更多的移位寄存器芯片;在使用这种方法扩展并行I/O口时,需要了解串入/并出移位寄存器74LS164和并入/串出移位寄存器74LS165芯片的工作原理,还需要了解单片机的串行工作方式0工作模式。
同时,如果单片机工作时需要进行串行通信,则这种方法就不能使用了。
使用并行接口芯片8255A 扩展并行I/O口时,单片机与8255A的连接比较复杂,需要考虑数据线、地址线和控制线之间的连接,同时需要根据地址线的连接情况给出8255A各个并行I/O口的正确地址及8255A 控制口的地址。
另外,需要对8255A的编程控制字的定义及写入方法有很好的了解。
但是这种扩展方法可以同时扩展3个8 bit并行I/O口,在需要扩展多个并行I/O口时此种方法比较好。
使用芯片74LS138扩展并行I/O口时,单片机与74LS138的连接比较简单,只需连接3个引脚即可。
这种扩展方法也只能扩展一个8 bit并行I/O口,若需扩展更多的并行I/O 口就需要更多的3线~8线芯片。
但是,如果在单片机扩展其他的芯片时不需要使用高位的3根地址线(即P2.5~P2.7),则这种方法就能很好地把这3根地址线利用起来。