单片机并行I-O口的扩展方法

合集下载

3.1MCS-51单片机的并行IO口

3.1MCS-51单片机的并行IO口

一、并行I/O口的功能结构
2、接口功能 (2)通用I/O接口
(四)P0口
此时“控制”信号为“0”,多路开关 MUX向下,输出驱动器处于开漏状态,故需 外接上拉电阻,这种情况下,电路结构与P1 相同,所以也是一个准双向口,当要作为输 入时,必须先向口锁存器写“1”。
一、并行I/O口的功能结构
(四)P0口
这是由接口的特殊结构所决定的。每一个 口都包含一个锁存器,一个输出驱动器和两 个(P3口为3个)输入缓冲器。各口的结构也 P 3 有些差异,下面分别介绍。
一、并行I/O口的功能结构
1、接口结构
(一)P1口
P1口一位的结构如下图所示:
图2.15
一、并行I/O口的功能结构
1、接口结构
(一)P1口
接口结构中锁存器起输出锁存作用, 8位锁存器组成特殊功能寄存器P1,场 效应管和上拉电阻组成输出驱动器,以 增大负载能力,三态门1和三态门2分别 用于控制输入引脚和锁存器的状态。
作为I/O口应用的一个实例,下面介绍 8031单片机的最小应用系统如下图所示
二、产生接口控制信号的指令
(四)P0口
8051指令系统中能与接口打交道的指令 大体可分两类 1.一般的输入/输出指令 2.“读-修改-写”指 令
二、产生接口控制信号的指令
1.一般的输入输出指令
(四)P0口
输入指令执行时,内部产生“读引脚”信号, 直接从口线读入,亦称“读引脚”指令。 下面是属于这种指令的各种实例:
二、产生接口控制信号的指令
(四)P0口 2.“读-修改-写”指令 INC P2 接口锁存器加1 DEC P1 接口锁存器内容减1 DJNZ P3,LOOP 减1后不为零则跳转 还有三条虽不明显,但也属此列: MOV P1.1,C CLR P1.1 SETB P1.1 将进位位送接口的某位 清接口的某一位 接口的某一位置位

IO接口的扩展方法

IO接口的扩展方法

P2.7 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 /WR
8051
OE D7 Q7 D6 Q6 D5 Q5 D4 Q4 D3 Q3 D2 Q2 D1 Q1 D0 Q0 G
74LS373
D7 D6 D5 D4 D3 D2 D1 D0
输出Байду номын сангаас备
程序如下: MOV DPTR, #7FFFH MOV A, 60H MOVX @DPTR, A
C口置位/复位控制字
D7 × × × D3 D2 D1 D0 0: 复位 1: 置位 位选择 0 00 0 01 0: 复位 1: 置位 位选择 0 00 0 01 PC0 PC1 0 10 0 11 1 00 1 01 1 10 1 11 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
例:如图上页所示,假设8255A芯片的PA接一组8只状态指示灯,PB接一组
8个开关,现须将开关闭合的状态输入到片内60H单元保存,将70H单元的内 容送状态指示灯显示,并置位PC7引脚,编写相应程序。
解:根据题意,设置8255A的A口方式0输出,B口方式0输入,C口高四位输
出 , 则 8255A 的 方 式 字 为 82H ( 10000010B ) , C 口 置 位 / 复 位 字 为 0FH ( 00001111B), 8255A的方式字及置位 /复位控制字地址为 7FFFH。初始化 过程及输入/输出的程序如下:
方式 1: 选通输入/输出方式。 共有3口, 被分为两组。A组包括A口和PC7-PC4, A口可由 编程设定为输入或输出, PC7-PC4作为输入/输出操作的选通信 号和应答信号。B组包括B口和PC3-PC0, 这时C口作为 8255A和 外设或CPU之间传送某些状态信息及中断请求信号。 方式 2: 双向传送方式。 只有A口有方式 2, 此时, A口为8位双向传送数据口, C

单片机io口扩展技术详解

单片机io口扩展技术详解

单片机io口扩展技术详解
单片机如何扩展IO口?
首先我们先讲讲为什幺要扩展IO口。

在我们使用51单片机的时候,有时候会出现IO口不够用的情况。

比如键盘!这个时候IO口的资源就十分有限了。

按键是我们常用的器件,做某些东西的时候又不能缺少按键。

如果一个按键对应一个IO口,那幺可想而知,按键所占的IO口的数量是很大的。

单片机IO口的资源是有限的,因此我们要采取一些方法来扩展单片机的IO 口,控制按键所占的单片机IO口。

下面有几种方法可以扩展单片机的IO口:
1. 通过数据缓存器、锁存器来扩展单片机IO口。

这里采用74HC164来扩展单片机IO口。

MCS51单片机总线系统与IO口扩展

MCS51单片机总线系统与IO口扩展

6.2.2 单片机总线扩展的编址技术
OE
LE
Dn
Qn
L
H
H
H
L
H
L
L
L
L
L
Qn-1
L
L
H
Qn-1
H
×
×
Z
地址锁存器74LS373
CLR D0-D7Q0-Q7 4 6 2 6 74LS24474LS273 E 0123456789E GG 12Q0-Q7CLKD0-D7AAAAAAAAAAA10A11A12I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OWCE1CE2 56? UUU P0.0-P0.7P0.0-P0.7 +5V 11 01234567 E >> QQQQQQQQ O 01234567 E DDDDDDDDL 2 U74LS373 012 YYY ABC 3 U74LS138 R AD E R P20P07P21P06P22P05P23P04P24P03P25P02P26P01P27P00 W ALE 89C51 1 U
MOV
DPTR,#0FEFFH ;确定扩展芯片地址
MOVX
A,@DPTR
;将扩展输入口内容读入累加器A
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线 输入为0。
6.2.1 单片机I/O口扩展
输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端 有效,选通74LS273, P0上的数据锁存到74LS273的输出端,控制发光二极管 LED , 芯 片 地 址 与 74LS244 的 选 通 地 址 相 同 ( 都 是 ×××× ×××0 ×××× ××××B,通常取为FEFFH)。当某线输出为0时,相应的LED发 光。

并行IO扩展芯片8255

并行IO扩展芯片8255

1
1
1
PC7
8255与单片机的连接
74LS373
AT89C51
P0.0-P0.7 ALE P2.7 WR RD RESET 8D G Q0 Q1 OE
D0-D7
PA
A0 A1
8255
CS WR RD RESET
PC
PB
EA
+5V
接片选/CS端,8255的(一组)寄存器地址可以是:
PA口:7000H PB口:7001H PC口:7002H 命令口:7003H
8255与单片机的连接
74LS373
AT89C51
P0.0-P0.7 ALE 8D G Q0 Q1 Q7 OE WR RD RESET
D0-D7 PA A0 A1 CS PC7 PC0
微型 打印机
8255
WR RD RESET
EA
+5V
Q7接片选/CS端,8255的(一组)寄存器地址可以是:
PA口:0000H PB口:0001H PC口:0002H 命令口:0003H
CPU向PA口输出数据
CPU向PB口输出数据 CPU向PC口输出数据 对控制寄存器写控制字 初始化8255时必须做的工作 没有选中,8255不工作 非法状态 非法状态 8255对系统总线呈高阻态 控制寄存器只能写不能读 8255对系统总线呈高阻态 向8255的I/O口写有效
注意:对PA,PB,PC三个口的任何读/写操作,就是对 PA,PB,PC这三个寄存器进行I/O操作.第4个寄存器是 控制字寄存器(命令字寄存器)
K0 K1 K2 K3 K4 K5 K6 K7
图8.5 简单I/O接口扩展电路
74HC244
简单并行I/O扩展(锁存器扩展) 在单片机的I/O口线不够用的情况下,可以借助 外部器件对I/O口进行扩展。可资选用的器件很 多,方案也有多种。

单片机扩展芯片8243的中文资料

单片机扩展芯片8243的中文资料

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。

单片机的IO扩展

单片机的IO扩展

8.3 用51单片机的串行口扩展并行口
串口的方式0用于I/O扩展。方式0为同步移位寄存器工作方
式,波特率为fosc/12。数据由RXD端(P3.0)输入,同步移
位时钟由TXD端(P3.1)输出。
1. 用74LS165扩展并行输入口
如图8-13,用51单片机的串口扩展两个8位并行输入口。
• 74LS165是8位并行输入串行输出的寄存器。当74LS165的S/L#端由高到低 跳变,并行输入端的数据被置入寄存器;
MOVX @DPTR,A
;WR#为低,数据经74LS273口输出
第26页/共97页
【例8-1】 程序编写程序把按钮开关状态通过图8-12的发光二
极管显示出来。
程序如下:
DDIS: MOV DPTR,#0FEFFH ;输入口地址→DPTR
LP: MOVX A,@DPTR
;按钮开关状态读入A中
MOVX @DPTR,A
关状态。 • 当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后
,其相应位为“0”,然后再将口线的状态经74LS273输出,某位低电平时 二极管发光,从而显示出按下的按钮开关的位置。
第24页/共97页
【例8-1】 分析 该电路的工作原理如下
• 当P2.0=0,RD#=0(WR#=1)时,选中74LS244芯片,此时若无按钮开关按 下,输入全为高电平。当某开关按下时则对应位输入为“0”,74LS244的 输入端不全为“1”,其输入状态通过P0口数据线被读入AT89S51片内。
8.1 单片机的系统扩展概述
1. 系统扩展的含义
在单片机芯片外加相应的芯片、电路,使得有关功能得以扩 充,称为系统扩展。
系统扩展包括:外部存储器扩展,I/O接口扩展,总线扩展 等

四 MCS-51单片机存储器系统扩展

四 MCS-51单片机存储器系统扩展
RD、WR为数据存储器和 I/O口的读、写控制信号。执 行MOVX指令时变为有效。
74LS373引脚
1、控制位OE: OE=0时,输出导通 2、控制位G: 接ALE 3、Vcc=+5V 4、GND接地
1 74LS373为8D锁存器,其主要特点在于:
控制端G为高电平时,输出Q0~Q7复现输入D0~ D7的状态;G为下跳沿时D0~D7的状态被锁存在Q0 ~Q7上。
MOV DPTR, #0BFFFH ;指向74LS373口地址
MOVX A, @DPTR ;读入
MOV @R0, A
;送数据缓冲区
INC R0
;修改R0指针
RETI
;返回
用74LS273和74LS244扩展输入输出接口
地址允许信号ALE与外部地址锁存信号G相连;
单片机端的EA与单片机的型号有关;
存储器端的CE与地址信号线有关。
P... 2.7 P2.0
ALE 8031
P... 0.7 P0.0
EA
PSEN
外部地址
G
锁存器
I...7
O... 7
I0 O0
A... 15
CE
A8
外部程序
存储器
A... 7 A0
D7. . . D0 OE
6264的扩展电路图
图中CS(CE2)和CE引脚均为6264的片选信号,由于该扩展电路 中只有一片6264,故可以使它们常有效,即CS(CE2)接+5V ,CE接地。6264的一组地址为0000H~1FFFH。
存储器地址编码
SRAM6264:“64”—— 8K×8b = 8KB 6264有13根地址线。 地址空间: A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最低地址: 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H 最高地址: 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH MCS-51单片机寻址范围:64KB 26×210 = 216即16位地址线 地址空间: A15A14A13A12A11A10A9A8A7······A0 单片机
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机并行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根地址线利用起来。

相关文档
最新文档