第04讲:MCS-51单片机的并行IO口M

合集下载

MCS 51的并行口

MCS 51的并行口

当地址/数据输出线置1时,控制上拉电路的“与”门输出为1, 上拉FET导通,同时地址/数据输出通过反相器输出0,控制 下拉FET截止,这样A点电位上拉,地址/数据输出线为“1”。
当地址/数据输出线置0时,“与”门输出为0,上拉FET截止, 同时地址/数据输出通过反相器输出1,控制下拉FET导通, 这样A点电位下拉,地址/数据输出线为“0”。
P1.i位作输出口用时:CPU输出0时,D=0,Q=0,Q=l, 晶体管Q0导通,A点被下拉为低电平,即输出0;CPU输出1 时,D=l,Q=1,Q=0,晶体管Q0截止,A点被上拉为高电 平,即输出l。
⒉ 、 P1口的特点
输出锁存器,输出时没有条件;
输入缓冲,输入时有条件,即需要先将该口设为输入状态, 先输出1;
⑵ 作地址/数据复用总线用。
此时P0口为一个准双向口。但是有上拉电阻,作数据输入 时,口也不是悬浮状态。作地址/数据复用总线用。作数据 总线用时,输入/输出8位数据D0~D7;作地址总线用时, 输出低8位地址A0~A7。当P0口作地址/数据复用总线用之 后,就再也不能作I/O口使用了。
7-1-2 P1口
⒈ P2口位结构和工作原理
P2口位结构原理图示于图7-3。
多路开关的输入有两个:一个是口输出锁存器的输出端 Q;一个是地址寄存器(PC或DPTR)的高位输出端。多路 开关的输出经反相器反相后去控制输出FET的 Q0。多路开关 的切换由内部控制信号控制。
输出锁存器的输出端是Q而不是Q,多路开关之后需接反 相器。
P2口的I/O口状态。
在内部控制信号的作用下,多路开关的输入投向输出锁存 器的输出Q(C点)侧,这样多路开关将接通输出锁存器。
若经由内部总线输出0,输出锁存器的Q端为”0”,信号经 多路开关和反相器后输出”1”,Q0导通,A点为”0”,输出 低 电 平 ; 若 经 由 内 部 总 线 输 出 ” 1” , 输 出 锁 存 器 的 Q 端 为”1”,反相器后输出”0”,Q0截止,A点为”1” ,输出高 电平。

第三章 MCS-51单片机的并行IO口

第三章 MCS-51单片机的并行IO口

Q
第 3章
并行接口P0-P3
各部分功能
1、P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任
何一位,即在P0口有8个与上图相同的电路组成。 2、输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有 三个状态,即在其的输出端可以是高电平、低电平,同时还 有一种就是高阻状态(或称为禁止状态)。上面一个是读锁 存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据 ,那就得使读锁存器的这个缓冲器的三态控制端有效。下面 一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使
标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上
的数据才会传输到我们单片机的内部数据总线上。
第 3章
并行接口P0-P3
3、D锁存器:构成一个锁存器,通常要用一个时序电路,在51 单片机的32根I/O口线中都是用一个D触发器来构成锁存器的 。大家看上图中的D锁存器,D端是数据输入端,CP是控制 端(也就是时序控制信号输入端),Q是输出端,Q非是反向 输出端。
第 3章
并行接口P0-P3
作为I/O端口使用时的工作原理
PO作I/O口使用
CPU发控制电平“0”封锁与门,使T1管截止,同时使MUX 开关同下面的触点接通,使锁存器的 Q 与T2栅极接通。
当CPU向端口输出数据时,写脉冲加在锁存器的 CL上 、内部总线的数据经反相,再经T2管反相,PO口的这一位 引脚上出现正好和内部总线同相的数据。由于输出驱动级 是漏极开路电路(因T1截止),在作I/O口使用时应外接10K 的上拉电阻。
0 P1.0
CP Q
注意: 1、P1口作输入口时,P1.0—P1.7上的信号经过缓冲器送到内部数据总线上。 在读引脚之前,要先将锁存器置1,否则可能读错。 2、CPU对P1口的读操作有2种:读引脚和读—改—写锁存器。

单片机应用技术实例教程第4章 51单片机的并行I O端口及其应用

单片机应用技术实例教程第4章 51单片机的并行I O端口及其应用

前一页
首页
前一页
4.6 应用案例4.2-按键指示灯的实现
4.6.1 51单片机通过并行端口读入电平 4.6.2 独立按键基础 4.6.3 按键指示灯的硬件电路 4.6.4 按键指示灯的应用代码

前一页
首页
4.6.1 51单片机通过并行端口读入电平
51单片机通过并行端口读入电平的方法很简单,首先向对应的端口写入一个高电平, 然后读取该端口寄存器的值即可,如例4.8,分别是读取P0~P1端口的C51语言代码。 【例4.8】51单片机的并行端口数据读取。 (代码请详见教材) 和控制51单片机某位输出电平电压类似,51单片机的I/O端口同样可以读取某一位的值, 如例4.9所示。 【例4.9】51单片机的并行端口位数据读取。 (代码请详见教材)
前一页
4.6.3 按键指示灯的硬件电引脚上,另一端连 接在GND上,当按键没有被按下时,P1端口通过上拉电阻连接到VCC,为高电平;当按 键被按下时,P1被连接到GND,为低电平。
前一页
4.6.4 按键指示灯的应用代码
按键指示灯的C51语言应用代码如例4.10所示,P1上读入的数据则为对应的按键编码, 如果对应位为“0”,则表明有键被按下,延时10ms后再次读取,以消除抖动,如果 两次读取的状态相同,则证明不是抖动,将P1状态从P0口输出,否则清除。 【例4.10】按键指示灯的应用代码。 (代码请详见教材)
前一页
首页
4.2 普通I/O端口P1
51单片机的P1口仅能作为普通通用I/O口使用,在其输出端接有内部上拉电阻,故可以直 接输出而无需外接上拉电阻,同P0口一样,当作为输入口时,必须先向锁存器写“1”, 使场效应管T截止。和P0口的内部结构比起来,P1中仅仅是少了多路开关,并且有一个场 效应管被改为了上拉电阻,其位结构如下图所示。

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 将进位位送接口的某位 清接口的某一位 接口的某一位置位

MCS-51单片机并行IO端口PPT课件

MCS-51单片机并行IO端口PPT课件

P1端口只作为普通I/O端口使用。
23.04.2021
机电与汽车工程学院
18
(3)P2端口
a.地址总线 b.控制信号线
切换开关
MUX
非门G3,
图17 P2口每位的内部结构
VT 管 栅 极 串 接 G3 后改接再Q端上。
23.04.2021
机电与汽车工程学院
19
P2端口的工作模式
X
X
0 1 01
XX
3条 控 制 线
23.04.2021
2条 数 据 线
图9 MCS-51端口工作原理示意图
机电与汽车工程学院
10
(1)输出(写)操作
X
X
X
X
锁存器打开
图10 MCS-51端口写操作示意图
23.04.2021
机电与汽车工程学院
11
(2)输入(读引脚)操作
X
X
G2打开
图11 MCS-51端口读引脚操作示意图
X
控控制制信信号号==01
X X
图18 P2口两种工作模式示意图
(1)作为普通I/O端口使用
(2)作为地址总线口使用
23.04.2021
机电与汽车工程学院
20
(4)P3端口
第二功能 输入和输出
图19 P3口每位的内部结构
23.04.2021
机电与汽车工程学院
与非门G4, VT 管 栅 极 串 接 G4 后 改 接 在 Q 端
机电与汽车工程学院
5
2.1 端口引脚的内部结构
2条
3条

控 (a)P0口的位结构
(b)P1口的位结据构

输出 线
线

第四讲 并行IO口的应用

第四讲  并行IO口的应用
5V
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
89C51
开关应用接口电路
四.独立式按键的程序处理
键盘实质上是一组开关,常用的按键都为机械弹 性开关,利用机械触点的断、合作用来实现按键功 能。当按键或键松开时,由于机械撞击的作用,开 关的动作会产生抖动,时间在5~10mS,若不作处 理,很容易误把一次按键当多次按键。 解决的办法是: A: 加去抖动硬件电路。 B:用软件延时,待键稳定后再作键输入处理
A AB B BC C CA
注:若按6、5、4、3、2、1方向输出,则电机反方向运行
输出波形图:
P1.0
P1.1
P1.2
(2)转速显示: 设最快转速时相序输出周期为1ms,可用按键调 节,调节分10档,每档周期增加1ms,档位用LED数 码管显示0~9来指示。 (3)键盘电路:如右图
系统采用其中四个按键, 安排如下: K1: 正转启动 K2:反转启动 K3:停机 K4:速度循环调节
1.特性 4个口可以字节输入、输出,也可以位输入、输出。 P0口作输出口使用时要加上拉电阻,阻值约0.5K~10K, 视负载而定。 P0口最大负载能力为8个TTL负载;P1~P3口最大负载能 力为4个TTL负载(注:指的是高电平输出,若低电平 输出负载能力可加大)。 4个都是准双向I/O口,作输入时,必须先向端口写入 “1”,使端口处于高阻状态。 单片机复位时,所有端口全为“1”。
二、静态LED数码管显示与驱动 1.LED显示器结构及其工作原理 LED显示器是由发光二极管组成的用来显示特定字 段的显示器。常用的有7段码和“米”字形两种,当 然也可以由用户根据自己的需要定制。 发光二极管分共阳极和共阴极两种,如图所示。

MCS-51单片机的并行接口

MCS-51单片机的并行接口
9
4、MCS-51内部I/O口应用
所有4个I/O口都是可以位寻址的,就是说,其中每一 位都可以用做输入或输出。 由于MCS-51的I/O 口只有数据口而没有状态口或控制 口,在实际使用时,可以用I/0口的某一位(或几位)来 作为状态信息的传送者,或者是命令的控制位。
例:P1口八个灯作跑马灯 。??
8
3、对锁存器的“读-修改-写”
☆有一类指令是对I/O口输出锁存器中的数据进行操作, 如对端口数据进行逻辑操作。这一类指令是先读出端口锁 存器中的内容,再按指令的规定进行操作,最后将操作的 结果写回端口锁存器,称之为“读一修改一写”指令。
这类指令不是对端口引脚上的数据进行操作。若要 对引脚上数据进行操作则只能先读入到CPU,然后再 进行运算。
16
7.2.2 可编程通用并行接口8255A
8255是一种8位并行I/O接口芯片,8255有3个8位的 并行口:PA、PB、PC,3种工作方式。其中,PC口具有 按位进行操作功能。
在与外设相连时,根据不同的初始化编程可用于无条 件传送、查询式传送、中断式传送,以完成单片机与外设 的数据交换。
17
1、 8255的内部结构和引脚
11
7.2 MCS-5l并行I/O口的扩展
常用并口扩展方法: ➢ 用三态缓冲器和锁存器扩展简单I/O口。 ➢ 用专用并口芯片扩展I/O口(8255,8155等)
注意:
MCS-51没有专门的外设操作指令和控制信号,将外设看 作外部数据存储单元来访问,因此扩展外设占用外部RAM存
储器的地址空间,使用访问外部数据存储器指令对外设进行 操作。
第7章 MCS-51单片机的并行接口
7.1 MCS-5l内部I/O口及其应用 7.2 MCS-5l并行I/O口的扩展 (含8255) 7.3 MCS-51内部定时/计数器及其应用 7.4 并行口应用——单片机显示/键盘系统

第04 MCS-51单片机的8位并行输入输出端口

第04 MCS-51单片机的8位并行输入输出端口

上图为汇科公司生产的继电器,其技术指标如下:
线圈额定电压 DC12V 触点最大电压、触点最大电流 AC220V/DC30V、3A
西华大学电气信息学院 郑海春
29
使用三级管驱动继电器
西华大学电气信息学院 郑海春
30
光电隔离为了保证单片机系统的安全,减少外部电路 对系统的干扰,采用光电隔离是一种有效的方法 。
MOV A,#00000100B
MOV P0,A
是否可以?
西华大学电气信息学院 郑海春
17
2. P0口的总线方式
控制电路的“控制”=1,此时与门打开,MUX接向 “地址/数据”信号.在这种情况下,输出极的两个 FET都处于正常的工作状态 。
地址、数据信息通过“地址/数据”线经反相器送 至FET的输入,并输出。
P0.X
单片机的引脚设计为输出时
西华大学电气信息学院 郑海春
13
为什么端口作输出时还要读入操作?
当端口输出时(MOV P0,A) ,往往要再将前 面输出的状态取回来,进行再处理然后重新输出。 如:
ORL P0,A
将P0口前次输出的数据与累加器A的内容相“或” 后再送回P0口(输出)。此时P0口的数据是从锁 存器中读回的,而不是从引脚输入。
在通用I/O模式下,“第二输出功能”端为“1”电平, 以保证与门打开。
原则上在进行系统设计时,P3口不做通用I/O口, 以充分利用单片机的内部模块资源。
西华大学电气信息学院 郑海春
25
P3口各位的第二功能
P3口各位 第二功能


P 3.0 P 3.1 P 3.2 P 3.3 P 3.4 P 3.5 P 3.6 P 3.7
西华大学电气信息学院 郑海春
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机技术
电气学院:易先军第02章:MCS-51单片机结构原理
RE:
●硬件编程结构及引脚[已介绍]
●CPU主要部件与特殊功能寄存器(SFR)[已介绍] ●片内外存储器的组织结构和编址[已介绍]
●并行I/O口【本次课内容!】
●中断及中断系统
●定时/计数器、串行口(外设)
4、MCS51单片机的并行I/O口
所谓并行I/O口,即各位的数据同时被输入或输出,它的最大特点是速度快。

(1)结构特点
MCS-51系列单片机的32根I/O线分为四个双向并行口P0~P3,每根I/O 线由一个锁存器(相当于特殊功能寄存器中的一位),一个输出驱动器(场效应管FET)和一个输入缓冲器(三态门)组成。

由于功能的不同,P0~P3各口的结构有所区别。

各锁存器由D触发器构成,在CPU“写锁存器”
信号的作用下,内部总线的数据写入D触发器。

两个三态门分别用来读锁存器或读引脚的信息。

P1、P2、P3口均有内部上拉电阻,而P0口的引脚是通过场效应管接到VCC。

显然,当P0口的上、下两只场效应管均关断时,引脚相当于“浮空”状态,即可作为高阻抗的输入端口(∴P0口为真正的双向口)。

P0、P2口的驱动器的输出与多路转换器MUX的状态有关,P3口的驱动器也与输出功能的类型有关,这些均为这些端口的多重作用创造了条件。

(2)输入功能
单片机有两种读一个端口的方法:读锁存器和读引脚。

①读锁存器:在CPU“读锁存器”信号的作用下,锁存器的
状态通过三态门送到内部总线,然后读到CPU中进行处理,而处理后的值将被重新写入锁存器。

能实现这种功能的指令称为“读—修改—写”指令,它们有:
ANL(逻辑与指令)
例如:ANL P1,A
ORL(逻辑或指令)
例如:ORL P2,A
XRL(逻辑异或指令)
例如:XRL P3,A
INC(增量指令)
例如:INC P2
DEC(减量指令)
例如:DEC P1
DJNZ(循环判跳指令)例如:DJNZ P2,LOOP JBC(位测试转移指令)例如:JBC P1. 1, LOOP MOV(位传送指令)
例如:MOV P1.3, C CPL(位取反指令)
例如:CPL P1.0
CLR (位清“0”指令)
例如:CLR P1.0
SETB(位置位指令)
例如:SETB P3.3
!读锁存器操作的共同点(特征):先读入并行I/O口锁存器中的内容,作一定的修改,然后再写入该口的锁存器中(读出—修改—写回)。

上述的后五条指令,属于位操作指令,实际上也是先要将8位锁存器的内容一起读入,再按指定位进行修改,然后再一起写入锁存器中。

②CPU“读引脚”信号时,接在该端口引脚的外部信号通过三态门读到内部总线,并送CPU处理,因而实现了数据的输入。

但必须注意,在读引脚时,该端口的锁存储器必须事先写“1”。

这是因为该端口既是输出端同时也是外部信号的输入端。

比如:假设该端口的状态此时为0,则驱动器的下方场效应管会导通,此时相当于输出“0”;如果有一外部输入信号是高电平且加到该引脚上,则该引脚会被强行箝拉到低电平,故造成读到CPU中的数据为“0”,同时也可能造成器件损坏!
而事先给锁存器写“1”,对于P0口,此时上、下两只场效应管均夹断,则构成高阻输入;对于P1、P2和P3口,此时的输出给拉成高电平,故其电平状态取决于外部信号。

(在复位时,各端口的锁存器均置成“1”!)
当单片机执行改变锁存器值的输出指令时,在该指令的最后周期的状态时,CPU 向锁存器产生出有效的“写锁存器”信号,将内部总线上的新值写入锁存器(即D 触发器) 。

P0口输出驱动器能驱动8个LSTTL 输入,P1、P2、P3口可驱动4个LSTTL 输入 。

(3)输出功能与负载能力
(4) 特殊功能
P0
口还起了数据总线和地址总线(低八位)的作用。

在进行正常的输
出(普通IO )时, “控制”端为“0”,多路转换器MUX 接在锁存器的Q 端。

此时上方的场效应管关断,下方的场效应管受锁存器的控制,P0口具有开漏输出,这时驱动外部电路时P0口需外加上拉电阻(上拉电阻的阻值取5.1K 或者4.7K ) 。

在CPU 进行外部存储器存/取时,P0口起数据总线或地址总线的作用,
“控制”端为“1”,多路转换器MUX 接反相器的输出端,即相当于接在“地址/数据”端。

当这个“地址/数据”为“1”时,上方的场效应管导通而下主的场效应管关断,P0.X 输出高电平,反之输出低电平。

这时P0口不需外接上拉电阻(作为总线用) 。

1)P0口(BUS ,数据/地址时分复用)
除了以上的输入、输出指令外,P0、P2、P3口还有其特殊的功能。

a )P0. X 结构图
在CPU 需要对外部存储器进行写操作时,“地址/数据”端应先送
出地址,然后在把要写的数据输出。

很显然,P0口的地址、数据是分时输出,这就是需要加入外部地址锁存器将先输出的地址锁存起来,地址锁存信号取自ALE 。

一般的情况下,P0口只在系统中用作总线,而不作为一般的I/O 口,因而P0口不外加上拉电阻。

与P0口类似,P2口除了作I/O 口之外,还作为地址总
线的高8位地址输出端。

在作为I/O 口用时,“控制”端为“0”,故多路转换器MUX 接在锁存器的Q 端,场效应管受锁存器的控制。

在作为地址总线输出 时,“控制”端为“1”,多路转换器MUX 接在“地址”端,故场效应管由“地址”端来控制,此时锁存器(P2的特殊功能寄存器SFR )的内容不变,在外部存储器读/写完毕时,P2口的地址输出的作用也结束,则“控制”端又变为“0”,P2口继续按锁存器原来的状态输出。

由于P2口在CPU 对外部存储器读/写过程中,始终能输出地址信号,所以P2的地址不需要外部锁存器的锁存。

2)P2口(地址高八位)
b )P2. X 结构图
3) P3口(第二功能)
P3口除了用作为一般I/O 口外,每一根线
都可以执行与口功能无关的第二种I/O 功能。

由图2-5可以看出,输出驱动器受控于锁存器的状态与第二输出功能的状态。

若要进行第二功能使用时,锁存器必须
先写入“1”,否则口线将被拉为0。

c )P3. X 结构图
P3口的第二功能有哪些?
d )P1. X 结构图
4)P1口只能做I/O (不具备第二功能)
强调!
说明:对P0~P3口 :
●1) 各个端口引脚在作输入口之前,都要先向对应的口寄存器中写“1”,不然不能作输入口用。

●2) P0口内部没有上拉电阻(其他都有),所以作通用IO 口用时为“开漏”输出,必须外加上拉电阻。

在作总线使用时不需要加上拉。

其他的口可加可不加。

(上拉电阻的阻值确定,5.1K 或者4.7K 都可以)。

●3) P3口作第二功能使用时,相应的口锁存器必须为 “1” 状态。

●4) 如果使用了外部存储器,不要再写P0口(外部存储器挂在P0口)。

本讲小结:
●读锁存器与读引脚的区别?
●为什么说P1、P2、P3是准双向口,而P0是真正的双向口?P0口用作I/O 使用时要外接上拉电阻吗?为什么? ●读引脚时,相应端口的锁存器如何处理?为什么?
●P3口用作第二功能时如何处理?第二功能具体指哪些? ●思考题。

相关文档
最新文档