单片机第5章 输入输出接口P0~P3
- 格式:ppt
- 大小:1.24 MB
- 文档页数:42
思考题与练习55.2 8XX51的4个I/O端口的作用是什么?8XX51对外的三总线是如何分配的?答:p0口:p0口可以作输入输出口,但在实际的应用中,常作为地址数据总线,即低8位地址与数据线分时使用p0口。
低8位地址由ALE信号的下跳沿锁存到外部地址锁存中,而高8位地址有p2口输出P1口:p1口每一位都能作为可编程的输入输出口线。
P2口:p2口可以作为出入口或输出口使用,外接存储器和I/O口时,又作为扩展系统的数据总线,输出高8位地址,与p0口一起组成16位地址总线。
对于内部无存储器的单片机来说,p2口一般只作为地址总线使用,而不作为I/O口线直接使用连接。
P3口:p3口为双功能口,作为第一功能使用时,其功能与p1口相同。
当作为第二功能口使用时,另有定义。
5.4 为什么说8XX51能全部作为I/O口使用的仅有P1端口?四个口都可以作为I/O口使用,不过P0,P2,P3都有第二功能。
P0还可作地址总线的低8位及数据总线,P2还可作地址总线高8位,P3口的每一位都有单独的第二功能。
如下图5.6 利用8XX51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意),画出电路并编出程序。
用P1.7监测按键开关,P1.0引脚输出正脉冲,正脉冲的产生只需要将P1.0置零、置1、延时、再置零即可。
P1.0接一示波器可观察波形。
如果再接一发光二极管,可观察到发光二极管的闪烁。
电路设计可参考图5.4汇编语言程序ORG 0000HABC:CLR P1.0SETB P1.7JB P1.7,$ ;未按键等待JNB P1.7,$ ;键未弹起等待SETB P1.0MOV R2,#0DA Y: NOPNOPDJNZ R2,DA Y图5.4SJMP ABC5.8 用89C51/89S51并行口设计显示一个数码的电路,使数码管循环显示“0”~“F”。
汇编语言程序ORG 0000H NOPMOVDPTR,#TAB DJNZR7,DAY AGAIN: MOVR0,#0 INCR0NEXT: MOV A,R0 CJNER0,#10H,NEXT MOVCA,@A+DPTR SJMP AGAINMOVP3,A TAB: DB 3FH,06H…;段码表(略) MOVR7,#0 END DAY: NOP5.10 利用89C51/89S51并行口设计8*8的矩形键盘并用箭头标明信号的方向。
输入/输出引脚
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端口具有多种功能,具体应用哪一种功能,由单片
机内部的程序来决定。
需要注意的是,在某一时刻,端口的某一引脚只能用作一种功能。
51单片机P0口工作原理详细讲解 、P0端口的结构及工作原理P0端口 8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、 切换开关、一个与北门、一个与门及场效应管驱动电路 构成。
再看图的右边,标号为P0.X 引脚的图标,也就 是说P0.X 引脚可以是P0.0到P0.7的任何一位,即在P0 口有8个与上图相同的电路组成。
下面,我们先就组成P0口的每一个单元部份跟大家介 绍一下:先看输入缓冲器:在P0口中,有两个三态的缓 冲器,在学数字电路时,我们已知道,三态门有三个状 态,即在其的输出端可以是高电平、低电平,同时还有 一种读锁存器 输入缓冲器地址/数据 控制信号(0、D___ VI& T |ZP0. X 脚锁存器 P0 口工作原理 +VCC内部M 线—I —— D写锁存器 CI.K 1输入缓冲器多路开关读引脚就是高阻状态(或者称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器'端)有效。
下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为'读引脚'的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。
D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O 口线中都是用一个D触发器来构成锁存器的。
大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q 是输出端,Q非是反向输出端。
对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。
如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。
单片机P0,P1,P2,P3口的区别
2007年02月22日星期四 23:47
P0口:真正的双向口,输出锁存,输入缓冲,输入前要先置1(KEIL包含的头文件已经有动作了,如果用汇编,要人工置1),输出为漏极开路,输出一般都要上拉电阻。
输入为高阻态,能驱动8个TTL负载。
当有片外存储器时,作数据线使用。
P1口:是最简单的口,输入也要先置1,无高阻态,只能是输出或者输入。
能驱动4个TTL负载。
P2口:I/O与P1口一样,当有片外存储器时,作地址线使用,寻址64K片外数据存储器。
能驱动4个TTL负载。
P3口:I/O与P1口一样,但无论输入输出都要先置1。
具有很多复用功能。
口的一般使用方法:做复用时一般不要加上拉和下拉电阻。
但单输出驱动负载时都应加1K左右的上拉电阻,单输入时要加10K左右的下拉电阻,且输入为低电平触发。