第5章输入、输出接口P0∽P3
《单片机原理及应用》第5章 P0~P3口应用基础

3、矩阵键盘:
5.4 实验与设计
• 实验1 闸刀型开关输入/8段LED静态显示输出
5.4 实验与设计
• 设计1:LED模拟交通
• 6个灯—南北:黄、红、绿
•
东西:黄、红、绿
• (红、绿是10秒,黄闪烁2秒)
• 2个应急开关:南北绿或东西绿
• 画出硬件设计,编出模拟程序。
实验2 并行接口键盘/LED指示灯输出
同,每个显示缓冲器对应着一位显示器。
(3)查表并操作相应的显示器
• MOV • MOV • MOVC
A,#data DPTR,#DSPTAB A,@A+DPTR
• (4)显示子程序的调用
3、静态显示示例
• 【例5-4】利用51单片机的并行口作为静态显示的控制 口的示例
请修改:
(1)显示“12”; (2)轮流显示“12”、“--”、“AB”; (3)计数器:从00开始,1S加1。
设计1 计时秒表的设计
• (1)两位LED显示 • 可以显示00~99秒; • (2)两个按键 • 分别为启动/停止键、清零键。 • 要求:设计硬件电路,编写出软件程序(延时由软件
形成)。
设计2 模拟交通信号灯控制装置的设计
• (1)6个发光二极管模拟交通灯 • 南北:黄、红、绿 ;东西:黄、红、绿。 • (2)2个应急开关 • 南北绿东西红或东西绿南北红。 • 要求:设计硬件模拟电路,编写软件程序。
• 单片机原理及应用(第4版)
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第5章 P0~P3口应用基础
• 片内并行I/O口的应用。 • 5.1 P0~P3口概述 • 5.2 输出操作 • 5.3 输入操作 • 5.4 实验与设计
第五章单片机的输入输出设备接口

2.键盘输入接口解决的任务
⑴键盘扫描和去抖动 按键开关在电路中的连接图
按键未按下时,A点的电平位 +5V; 按下时,A点的电平位低电平; 由于按键是机械的弹性开关,在按下和断开时,触点在 闭合和断开时,会引起A点电位的不稳定,一般有 5~10ms的抖动,导致误信号,使CPU产生错误的处理。
硬件去抖动方法:
利用串行口扩展两片静态显示电路
设显示缓冲区为30H、31H,由R1作显示缓冲区的地址指 针,74LS164的清零端CLR由P1.0控制,低电平有效。 程序设计如下: DISP:MOV R6, #02H ;显示位数 MOV R1, #30H ;设显示区指针 MOV SCON, #00H ;设串行口控制寄存器,方式0 LOOP:MOV A, @R1 MOV DPTR, #TAB MOVC A, @A+DPTR ;查表,获得显示码 MOV SBUF ,A ;送去显示 JNB TI,$ ;等待发送完毕 CLR TI INC R1 ;取下一个数 DJNZ R6, LOOP RET TAB:DB C0H,F9H,A4H,B0H,99H, 92H,82H,F8H,80H,90H
2.程序流程及程序清单 (1)主程序(MAIN) 主程序的主要功能是进 行定时器/计数器的初 始化编程,然后通过反 复调用显示子程序的方 法,等待125ms定时中 断的到来。 (2)显示子程序 (DISUP)
ORG 0000H START:LJMP MAIN ORG 000BH LJMP PITO ORG 1000H MAIN:MOV SP,#60H MOV R0,#79H MOV R7,#06H ML1:MOV @R0,#00H INC R0 DJNZ R7,ML1 MOV TMOD,#01H MOV TL0,#B6H MOV TH0,#17H SETB TR0 SETB EA SETB ET0 MOV 30H,#08H ML0:LCALL DISUP SJMP ML0
并行接口P0~P3

K
30P
XTAL2 GND
第5章 并行接口P0~P3和单片机的中断系统
编程如下:
CLR P1.0 AGA:SETB P1.1 JB P1.1,LIG SETB P1.0 SJMP AGA LIG: CLR P1.0 SJMP AGA
;使发光二极管灭 ;先对P1口写入“1” ;开关开,转LIG ;开关合上,二极管亮
LED数码管的g~a七个发光二极管因加正电压而发亮, 因加零电压而不能发亮,不同亮暗的组合就能形成不同的字 形,这种组合称之为字形码,显然共阳极和共阴极的字形码 是不同的 ,其字形码见下表。LED数码管每段需10~20ma 的驱动电流,可用TTL或CMOS器件驱动。 字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或 74LS46、74LS47、CD4513
P1.7
SCቤተ መጻሕፍቲ ባይዱ引脚,在系统编程时钟输入
第5章 并行接口P0~P3和单片机的中断系统
3.P2口 内部上拉电阻的8位准双向并行I/O口,P2口的位结构比P1 多了一个转换控制部分,当P2口作通用I/O口时,多路开关 MUX倒向左; 读锁存器
1 内部总线 写锁存器 P2.x 锁存器 CL 2 读引脚 D Q
/数据复用总线(用于口扩展) 两个输入缓冲器(BUF1和BUF2) 读锁存器
P0R1
地址/数据
BUF1
AD0
控制 Vcc
b c
内部总线
D0
D C
a
T1
写锁存器
P0W
锁存器
Q
Q
P00
3、P0W为端口输出写信号,用于 推拉式I/O驱动器 锁存输出状态 多路开关 4、P0R1为读锁存器信号,执行 功能:用于控制选通I/O方式 “ANL P0,#0FH”时该信号有效 A 还是地址/数据输出方式 5、P0R2为读引脚信号,执行 2) “MOV A,P0”时该信号有效 方式控制:由内部控制信号
实验4 P1、P3口输入输出

实验四P1、P3口输入输出实验一、实验目的了解单片机准双向口的特性,掌握准双向口的使用方法。
二、实验内容单片机P1口作为输入口,P1口的P1.0~P1.7分别用连线对应接到实验箱(左下角)的拨动开关K0~K7,P3口作为输出口分别对应接到LED发光二极管L0~L7。
编制一段程序,从P1口读入开关状态,当开关为“1”(高电平)时,从P3口输出,使之对应的LED 发光二极管亮,反之则不亮。
三、实验原理单片机除P0口为三态双向口外其余的的P1、P2、P3均为准双向口(作为输入时必须先使口锁存器置“1”)。
编程时,当P1、P2、P3口作为输入口用时,因为电路设计的原因在读入数据前需要先做一次写操作,使得口的每位引脚上的输出驱动器的场效应管处于截止状态,这样才能保证读入的数据的正确性。
程序从P1口读入连接到P1口的K0~K7的开关状态(开关电路如P110图1所示,开关K0~K7为单刀双掷开关,每个开关有2个状态“0”或“1”),由于实验箱上的LED发光二极管的L0~L7接正电源亮(电路如P111图2所示)因此读入后的开关状态可以直接送P3口,控制连接在P3口上的LED发光二极管的亮与灭。
四、实验步骤与要求a、根据实验内容要求连接好P1.0~P1.7与K0~K7、P3.0~P3.7与LED的连接线;b、将多余的线头放到实验箱的附件盒里,确认没有多余东西后再开电源;c、按照实验要求画出程序流程图并根据流程图编制出相应的循环程序,在全速运行的情况下能够从P1口读入K0~K7的状态,并可根据读入状态的情况从P3口输出控制字,使得对应K=”1”的LED亮,K=”0”的LED不亮。
d、记录开关如下表组合时对应P3口的LED发光二级管的状态P1口开关状态P3口LED状态K7 K6 K5 K4 K3 K2 K1 K0 L7 L6 L5 L4 L3 L2 L1 L00 0 0 0 0 0 0 01 0 0 0 1 0 0 01 0 1 0 1 0 1 01 1 1 1 1 1 1 1五、思考题运用所学电路知识并参照教科书P68图4-2P1口每一位的结构示意图,说明在对准双向口进行输入操作前为什么要对需要读入的位进行一次写“1”的操作?。
第5章 并行接口P0~P3

大多数口线都有双重功能,具体介绍如下:
PO口—1.作为输入/输出口。
2.作为地址/数据总线 ,接外围芯片时PO口分时输出低 8 位地址与数据信号。
P1口—作为输入/输出口。
P1.0 T2引脚,定时/计数器2外部计数脉冲输入 P1.1 T2EX引脚,定时/计数器2触发和方向控制 P1.5 MOSI引脚,在系统编程数据输入 P1.6 MISO引脚,在系统编程数据输出 P1.7 SCK引脚,在系统编程时钟输入
这是为了避免错读引脚的电平信号,例如用一根口线去 驱动一个晶体管基极,当向口线写“1”,晶体管导通,导通 的PN结会把引脚的电平拉低,如读引脚数据,则会读为0 , 而实际上原口线的数据为1。因而采用读锁存器Q的值而避免 了错读。究竟是读引脚还是读 锁存器,CPU内部会自行判断 是发读引脚脉冲还是读锁存器脉冲,读者不必在意。
归纳四个并行口使用的注意事项如下:
1.如果单片机内部有程序存贮器,不需要扩展外部存贮器和 I/O接口,单片机的四个口均可作I/O口使用。
2.四个口在作输入口使用时,均应先对其写“1”,以避免误 读。
3.P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。 4.P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。 5.P3口的某些口线作第二功能时,剩下的口线可以单独作I/O
内容提要
★单片机的并行接口P0~P3
★ PO~P3端口的功能和内部结构 ★ PO~P3端口的编程 ★ 用并行口设计LED数码显示和键盘电路 ★ 并行接口小结
★MCS-51单片机的中断系统
★ 中断的基本概念 ★ 中断的系统结构 ★ 中断的响应过程 ★ 中断的的应用编程
★小结
I/0接口
第5章 输入、输出接口P0~P3--1讲解

武汉科技大学
电信系
2. P1口 字节地址90H,位地址90H—97H
P1.0—P1.7: 准双向I/O口 输出时一切照常,输入时要先对其写“1”
读锁存器
内部 总线
写锁 存器
2
DQ CK /Q
1
读引脚
单片机及接口技术
Vcc 内部上拉电阻
引脚P1.X
17
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
输入数据时,要先对其写“1”
读锁存器
Vcc 内部上拉电阻
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
截 引脚P1.X 止
1
读引脚 =1
18
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
读锁存器
输出数据 1 时
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
1
Vcc 内部上拉电阻
1
读引脚 =0
控制=1时,此脚作通用输出口: 输出=1时
23
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P2口
读锁存器
内部 总线 0
写锁 存器
2
DQ CK /Q
地址高8位 控制 =1
Vcc 内部上拉电阻
0
1
3
=0
导 引脚P2.X 通
1 读引脚 =0
单片机及接口技术
控制=1 时,此脚作通用输出口: 输出=0 时
例5-1.设计一电路,监视某开关K,用发光二极 管LED显示开关状态,如果开关合上,LED亮、 开关打开,LED熄灭
《输入输出接口》课件
01 传输速率
衡量数据传输速度的重要指标,决定设备的数据处 理效率。
02 数据稳定性和可靠性
保证数据传输过程中数据稳定性和可靠性,避免数 据丢失或损坏。
03 兼容性和扩展性
设备与不同设备之间的兼容性,以及接口的扩展性, 是影响设备互通性的重要因素。
总结
输入输出接口在计算机系统中扮演着至关重要的角色,其技 术原理涉及物理连接、通信协议、数据处理和性能指标等多 个方面。只有深入了解和掌握输入输出接口的技术原理,才 能更好地应用于实际生产和工作中。
未来输入输出接口的趋势
个性化定制接 口
根据不同用户需求 定制接口功能
多功能集成接 口
整合多种接口功能, 提升设备性能
01 技术标准的统一和整合
不同设备间的兼容性与统一标准问题
02 硬件与软件协同发展
接口硬件与软件的协同设计与优化
03
创新技术的应用推 不动断探索新技术,推动输入输
出接口的创新与发展
输入输出接口的分类
并行接口
同时传输多个数据 位
通用接口
具有多种功能
串ห้องสมุดไป่ตู้接口
逐位传输数据
● 02
第2章 输入输出接口的技术 原理
输入输出接口的 物理连接
输入输出接口的物理连接包括插口、插槽等连接方式。这 些连接方式在设备之间传输数据起着至关重要的作用,而 接口标准及接口规范则规定了各种设备之间通信的准则和 规范。
输入输出接口的通信协议
数据传输方式
串行传输
通信协议
USB
通信协议
RS232
数据传输方式
并行传输
数据缓冲与缓存
数据缓冲用于临时存储数据, 以平衡不同速度设备之间的数 据传输。缓存则用来提高数据 访问速度和性能。
第5章输入、输出接口P0∽P3
com
g f com
10 9 8 7 6
a b a b b c a b c d e f g dp a
f
g
d c e
f
5
e d
1
2 3 4
g
com e d c dp (a)
dp
com
(b)
(c)
图5.4
LED数码管的g~a七个发光二极管因加正电 压而发亮,因加零电压而不能发亮,不同亮暗 的组合就能形成不同的字形,这种组合称之为 字形码,显然共阳极和共阴极的字形码是不同 的 ,其字形码见表5.2。LED数码管每段需10~ 20mA的驱动电流,可用TTL或CMOS器件驱动。
;使发光二极管灭 ;先对P1口写入“1” ;开关开,转LIG ;开关合上,二极管亮
;开关开,二极管灭
在上述电路图中二极管亮度不够,按下 面两种电路接法,增加了驱动能力,二极管 更亮些。
接成灌电流形式:
P1.0 LED +5V
加驱动电路:
P1.0
1
LED
+5V
例5-2.在图5.3中P1.4~P1.7接四个发光二极管 LED,P1.0~P1.3接四个开关,编程将开关的状 态反映到发光二极管上 +5V
5.1.2 端口的内部结构
四个端口的一位结构见图5.1,同一个端口的 各位具有相同的结构。由图可见,四个端口的结 构有相同之处:
1、都有两个输入缓冲器,分别受内部读锁存器和
读引脚控制信号的控制。
2、都有锁存器(即专用寄存器PO~P3)
3、都是场效应管输出驱动。
依据每个端口的不同功能,内部结构亦有不 同之处,以下重点介绍不同之处。
1.PO口字节地址80H,位地址80H—87H,可字节寻址,可位寻址
单片机输入输出引脚
输入/输出引脚
MCS-51系列单片机有P0、P1、P2和P3共4组I/O接口,每组接口又有8个引脚:P0端口引脚P0.0~P0.7,P1端口引脚P1.0~P1.7,P2端口引脚P2.0~P2.7,P3端口引脚P3.0~P3.7。
这4组接口既可用作输入端口将外部信号输入单片机,也可以用作输出端口将信号从单片机内输出。
另外,这些接口还具有一些其他功能,具体说明如下。
P0端口(32~39脚)的功能有:输入8路信号,输出8路信号,用作8位数据总线,或用作16位地址总线中的低8位地址总线。
P1端口(1~8脚)的功能有:输入8路信号,输出8路信号。
P2端口(21~28脚)的功能有:输入8路信号,输出8路信号,用作16位地址总线中的高8位地址总线。
P3端口(10~17脚)的功能有:输入8路信号,输出8路信号。
P3端口的8个引脚还具有其他功能,具体说明如下。
P3.0:用作串行数据输入端(RXD)。
P3.1:用作串行数据输出端(TXD)。
P3.2:用作外部中断0请求信号输入端(INTO)。
P3.3:用作外部中断1请求信号输入端(INTI)。
P3.4: 用作定时器/计数器TO的外部脉冲信号输入端(TO)。
P3.5:用作定时器/计数器T1的外部脉冲信号输入端(T1)。
P3.6:该端在写片外RAM时,输出写控制信号(WR)。
P3.7:该端在读片外RAM时,输出读控制信号(RD)。
P0、P1、P2、P3端口具有多种功能,具体应用哪一种功能,由单片
机内部的程序来决定。
需要注意的是,在某一时刻,端口的某一引脚只能用作一种功能。
单片机原理及接口技术第5章 IO口应用-显示与开关键盘输入
图5-1
发光二极管与单片机并行口的连接
5
如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将
大大增加流过的灌电流值,如图5-1(b)所示。所以,AT89S51单片机任 何一个端口要想获得较大的驱动能力,要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如 74LS04、74LS244等。 5.1.2 单片机I/O端口控制发光二极管的编程 发光二极管与单片机的I/O端口的连接,如图5-1(b)所示。如要点亮 某发光二极管,只需该I/O端口位写入“0”即可。下面通过一个例子介绍如
21
图5-6 4位LED静态显示的示意图
示字符。这样在同一时间,每一位显示的字符可以各不相同。但是,静态
显示方式占用I/O口线较多。 对于图5-6所示电路,要占用4个8位I/O口(或锁存器)。如果数码管 数目增多,则还需要增加I/O口的数目。在实际的系统设计中,如果显示位 数较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般 采用动态显示方式。 2. 动态扫描显示方式 显示位数较多时,静态显示所占用的I/O口多,为节省I/O口与驱动电路
单片机控制的8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字 符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到
送入下一个显示字符的段码。因此,静态显示方式的显示无闪烁,亮度较
高,软件控制比较容易。 图5-6所示为4位LED数码管静态显示电路,各个数码管可独立显示,
只要向控制各位I/O口锁存器写入相应的显示段码,该位就能保持相应的显
闭合时,P3.0引脚为低电平。单片机对开关状态的检测是由程序检测
10
图5-3
开关、LED发光二极管与P1口的连接
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第
二 功 能
RXD (串行输入线) TXD (串行输出线) INT0(外部中断0输入线)
P3.2
P3.3 P3.4 P3.5 P3.6
INT1(外部中断1输入线)
T0 (定时器0外部计数脉冲输入) T1 (定时器1外部计数脉冲输入) WR (外部数据存储器写选通信号入)
P3.7
RD (外部数据存储器读选通信号入)
例3.用P1.0输出1KHz和500Hz的音频信号驱动 扬声器,作报警信号,要求1KHz信号响 100ms,500Hz信号响200ms,交替进行,P1.7 接一开关进行控制,当开关合上响报警信号, 当开关断开告警信号停止,编出程序 分析:500Hz信号周期为2ms,信号电平 为每1ms变反1次。1KHz的信号周期为1ms, 信号电平 每500µS变反1次,编一个延时 500µS子程序,延时1ms只需调用2次。用R2 控制音响时间长短,A作音响频率的交换控 制的标志。A=0时产生1KHz信号,A=FF时产 生500Hz信号。
5.2 编程举例
下面举例说明端口的输入、输出功能,其他 功能的应用实例在后面章节说明。 例5-1.设计一电路,监视某开关K,用发光二极 管LED显示开关状态,如果开关合上,LED亮、 开关打开,LED熄灭 分析:设计电路如图5. 2如示。 开关接在P1.1口线,LED接P1.0口线,当开 关断开时,P1.1为+5V,对应数字量为“1”,开 关合上时P1.1电平为0V,对应数字量为“0”, 这样就可以用JB指令对开关状态进行检测 。
第五章 输入、输出接口P0∽P3
本章介绍的主要内容
★ PO~P3端口的功能和内部结构 ★ PO~P3端口的编程
★ 用并行口设计LED数码显示
★ 用并行口设计键盘电路
MCS-51单片机有P0、P1、P2、P3四个8 位双向I/O口,每个端口可以按字节输入或输 出,也可以按位进行输入或输出,四个口共 32根口线,用作位控制十分方便。P0口为三 态双向口,能带8个TTL电路;P1、P2、P3口 为准双向口,负载能力为4个TTL电路。 5.1 PO~P3端口的功能和内部结构 5.1.1 端口功能
1.PO作I/O口使用
CPU发控制电平“0”封锁与门,使T1管截 止,同时使MUX开关同下面的触点接通,使锁 存器的 Q 与T2栅极接通。
当CPU向端口输出数据时,写脉冲加在锁 存器的 CL上、内部总线的数据经Q反相,再经 T2管反相,PO口的这一位引脚上出现正好和内 部总线同相的数据。由于输出驱动级是漏极开 路电路(因T1截止),在作I/O口使用时应外接 10K的上拉电阻。
字形码的控制输出可采用硬件译码方式, 如采用BCD 7段译码/驱动器74LS48、74LS49、 CD4511(共阴极)或74LS46、74LS47、CD4513
归纳四个并行口使用的注意事项如下: 1、如果单片机内部有程序存贮器,不需要扩展外部 存贮器和I/O接口,单片机的四个口均可作I/O口 使用。 2、四个口在作输入口使用时,均应先对其写“1”, 以避免误读。 3、P0口作I/O口使用时应外接10K的上拉电阻,其它 口则不必。 4、P2可某几根线作地址使用时,剩下的线不能作 I/O口线使用。 5、P3口的某些口线作第二功能时,剩下的口线可以 单独作I/O口线使用。
这是为了避免错读引脚的电平信号,例如用 一根口线去驱动一个晶体管基极,当向口线写 “1”,晶体管导通,导通的PN结会把引脚的电平 拉低,如读引脚数据,则会读为0 ,而实际上原 口线的数据为1。因而采用读锁存器Q的值而避免 了错读。究竟是读引脚还是读锁存器,CPU内部会 自行判断是发读引脚脉冲还是读锁存器脉冲,读 者不必在意。 应注意 ,当作输入端口使用时,应先对该口 写入“1”使场效应管T2截止,再进行读入操作, 以防场效应管处于导通状态,使引脚钳位到零, 而引起误读。
5.1.2 端口的内部结构
四个端口的一位结构见图5.1,同一个端口的 各位具有相同的结构。由图可见,四个端口的结 构有相同之处:
1、都有两个输入缓冲器,分别受内部读锁存器和
读引脚控制信号的控制。
2、都有锁存器(即专用寄存器PO~P3)
3、都是场效应管输出驱动。
依据每个端口的不同功能,内部结构亦有不 同之处,以下重点介绍不同之处。
P1.5
P1.6
MOSI引脚,在系统编程数据输入
MISO引脚,在系统编程数据输出
P1.7
SCK引脚,在系统编程时钟输入
P2口—1.作为输入/输出口。
2.作为高8位地址总线。
P3口—P3口为双功能
1.作第一功能使用时,其功能为输入/输出口
2.作第二功能使用时,每一位功能定义如下表
所示:
端口引脚 P3.0 P3.1
内部上拉电阻 P3.x 引脚
3 4
T
(d)P3口位结构
当作为普通I/O口使用时,第二输出功能端保 持“1”,打开与非门3,用法同P1口。 当作第二功能输出时,锁存器输出为“1”打 开与非门3,第二功能内容通过与非门3和T送至引 脚。 输入时,引脚的第二功能信号通过三态缓冲器 4进入第二输入功能端。两种功能的引脚输入都应 使T截止,此时第二输出功能端和锁存器输出端Q 均为高电平。 P3的各位如不设定为第二功能则自动处于第一 功能,在更多情况下,根据需要, 把几条口线设 为第二功能,剩下的口线可作第一功能(I/O)使用, 此时,宜采用位操作形式 。
com
g f com
10 9 8 7 6
a b a b b c a b c d e f g dp a
f
g
d c e
f
5
e d
1
2 3 4
g
com e d c dp (a)
dp
com
(b)
(c)
图5.4
LED数码管的g~a七个发光二极管因加正电 压而发亮,因加零电压而不能发亮,不同亮暗 的组合就能形成不同的字形,这种组合称之为 字LED数码管每段需10~ 20mA的驱动电流,可用TTL或CMOS器件驱动。
当输入操作时,端口中两个三态缓冲 器用于读操作。缓冲器2用于读端口引脚 的数据。当执行端口读指令时,读引脚脉 冲打开三态缓冲器2,于是端口引脚数据 经三态缓冲器2送到内部总线。缓冲器1用 于读取锁存器Q端的数据。当执行“读-修 改-写”指令(即读端口信息,在片内加以 运算修改后,再输出到该端口的某些指令 如:ANL PO,A指令),即是读的锁存器Q 的数据。
;使发光二极管灭 ;先对P1口写入“1” ;开关开,转LIG ;开关合上,二极管亮
;开关开,二极管灭
在上述电路图中二极管亮度不够,按下 面两种电路接法,增加了驱动能力,二极管 更亮些。
接成灌电流形式:
P1.0 LED +5V
加驱动电路:
P1.0
1
LED
+5V
例5-2.在图5.3中P1.4~P1.7接四个发光二极管 LED,P1.0~P1.3接四个开关,编程将开关的状 态反映到发光二极管上 +5V
2)、PO口作地址/数据线 (扩展,多见)
当PO口作地址/数据线使用时,CPU及 内部控制信号为“1”,转换开关MUX打向 上面的触点, 使反相器的输出端和T2管 栅极接通,输出的地址或数据信号通过与 门驱动T1管,同时通过反相器驱动T2管完 成信息传送,数据输入时,通过缓冲器进 入内部总线。
2.P1口 P1口的结构见下图字节地址90H,位地址90H—97H
LED正偏时才能发亮,按电路接法,当P1.0
输出“1”,LED正偏而发亮,当P1.0 输出“0” , LED 的两端电压为 0 而熄灭。
+5V 10uF
Vcc -EA
RST
LED P1.0
+5V 89C51 89S51 1K
1K 30P
XTAL1
P1.1
K
30P
XTAL2 GND
编程如下: CLR P1.0 AGA:SETB P1.1 JB P1.1,LIG SETB P1.0 SJMP AGA LIG: CLR P1.0 SJMP AGA
P2口的位结构比P1多了一个转换控制部分, 当P2口作通用I/O口时,多路开关MUX倒向左。
读锁存器 1 内部总线 写锁存器 P2.x 锁存器 CL 2 读引脚 D Q MUX 地址 控制 Vcc 内部上拉电阻 P2.x 引脚 1 T
当扩展片外存贮器时,MUX开关打向右,P2 口作高八位地址线输出高八位地址信号。 其MUX的的倒向是受CPU内部控制的。
89C51
P1.0 1K×4
P1.1
P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 EA 330×4 +5V
图5-3 例5-2图
用汇编语言编程 ORG 0000H MOV P1,#0FFH
;高四位的LED全灭, 低四位输入线送“1”, ABC: MOV A,P1 ;读P1口引脚开关状态,并送入A SWAP A ;低四位开关状态换到高四位 ANL A,#0F0H ;保留高四位 MOV P1,A ;从P1口输出 ORL P1,#0FH ;高四位不变,低四位送“1”, 准备下一轮读开关 SJMP ABC ;循环执行,方便反复调整开关 状态观察执行结果 上述程序中每次读开关之前,输入位都先置“1”,保 证 了开关状态的正确读入。
。。。。
500µ S 500µ S
T
100个T (变反200次即100ms)
。。。。 1ms
T
1ms 100个T (变反200次即200ms)
P1.0 波 形 图
ORG 0000H CLR A ;A作1KHz,500Hz 转换控制 BEG: JB P1.7, $ ;检测P1.7的开关状态 MOV R2, #200 ;开关闭合报警,R2控制音响时间 DV:CPL P1.0 CJNE A, #0FFH, N1 ;A≠FFH,延时500µ S ACALL D500 ;A=FFH ; 延时1ms P1.0变反 N1:ACALL D500 DJNZ R2,DV CPL A SJMP BEG D500:MOV R7, #250 ;延时500µS子程序 DJNZ R7, $ RET END