51单片机的P0口工作原理详细讲解

合集下载

单片机读引脚及读锁存器

单片机读引脚及读锁存器

51单片机I/O引脚IO口工作原理一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

MCS-51单片机并行口的结构与操作

MCS-51单片机并行口的结构与操作

华中科技大学光学与电子信息学院单片机( 2015 -- 2016学年度第一学期)题目:MCS-51单片机并行端口结构与操作院系:光学与电子信息学院班级:学号:学生姓名:指导教师:成绩:日期: 2015年 9月 21日MCS—51单片机并行口的结构与操作一、MCS—51单片机简介MCS—51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS—51单片机作为代表进行理论基础学习.MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:8位CPU、4kbytes 程序存储器(ROM)、128bytes的数据存储器(RAM)、32条I/O口线、111条指令,大部分为单字节指令、21个专用寄存器、2个可编程定时/计数器、5个中断源,2个优先级、一个全双工串行通信口、外部数据存储器寻址空间为64kB、外部程序存储器寻址空间为64kB、逻辑操作位寻址功能、双列直插40PinDIP封装、单一+5V电源供电。

如图所示:1。

结构(1)中央处理单元(8位)数据处理、测试位,置位,复位位操作(2)只读存储器(4KB或8KB)永久性存储应用程序,掩模ROM、EPROM、EEPROM(3)随机存取内存(128B、128B SFR)在程序运行时存储工作变量和资料(4)并行输入/输出口(I / O)(32条)作系统总线、扩展外存、I / O接口芯片(5)串行输入/输出口(2条)串行通信、扩展I / O接口芯片(6)定时/计数器(16位、加1计数)计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作(7)时钟电路内振、外振。

(8)中断系统五个中断源、2级优先。

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态。

图中有一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。

图中另一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。

D锁存器:一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。

图中的锁存器,D 端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q 非是反向输出端。

对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。

如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。

那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。

51单片机的P0口工作原理详细讲解

51单片机的P0口工作原理详细讲解

51单片机的P0口工作原理详细讲解一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

51系列单片机P0端口具体讲解

51系列单片机P0端口具体讲解

有关单片机P0口具体讲解图1(一)在我们讲解P0端口之前我们首先梳理一下各个端口有什么不同之处:P0口有三个功能:1、外部扩展存储器时,当做数据(Data)总线(如图1中的D0~D7为数据总线接口)2、外部扩展存储器时,当作地址(Address)总线(如图1中的A0~A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻(后面将详细介绍)。

P1口只做I/O口使用:其内部有上拉电阻。

P2口有两个功能:1、扩展外部存储器时,当作地址总线使用(如图1中的A8~A15为地址总线接口)2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

图2(注:该图只是P0口的一位,也就是说P0口有8个相同的这样的结构)图3(二)由图2可以看出每个P0口都有这些元件:一个锁存器,两个三态输入缓冲器和一个输出驱动电路组成在访问外部存储器时,P0是一个真正的双向口,当P0输出地址/数据信息时,CPU内部法控制电平“1”来打开上面的与门,又使模拟开关MUX把地址/数据信息经过反相器和T1接通(我们称上面的场效应晶体管FET为T1,下面的场效应管FET为T2);输出的地址/数据信息既通过与门去驱动T1,又通过反相器去驱动T2,是两个FET构成推拉输出电路;1.当P0口作为外部扩展存储器的数据地址总线时:●若地址数据信息为“0”,那么这个信号就使得T1截止,使T2导通(经过反反相器作用使得T2接收到的信号为“1”,根据场效应晶体管的特性,T2导通),若T2导通,那么T2的上下两个N极就导通,而发射极(下面的N极)接地信号则为“0”,这样P0口就相当于接收到了“0”信号;●若地址数据信息输入“1”,则该信号使T2截止,使T1导通,在T1导通情况下,T1的上下N极导通,使得VCC与P0相同,从而输出高电平,即“1”信号;●若从P0口输入信号,信号从引脚通过输入缓冲器进入内部总线;2.当P0口作为一般I/O口使用时:●CPU内部发布控制信号“0”,封锁与门,使得T1截止,同时使模拟开关MUX把锁存器的非Q端与T2端的栅极接通;●在P0口作为输出时,由于非Q端和T2的倒相作用,那么内部总线上的信息与到达P0口上的信息是同相的,只要写脉冲加到锁存器的CL端,内部总线上的信息就会P0的引脚上;●但是由于此时T2为漏极开路输出,所以要外接上拉电阻。

单片机IO口结构及工作原理

单片机IO口结构及工作原理

、Po端口的结构及工作原理Po端口8位中的一位结构图见下图:地址∕ttiκI i O i XWwfr⅛⅛内部总线i⅛引脚PO 口工作康理图由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成下面,先分析组成P0 口的各个部分:先看输入缓冲器:在P0 口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),上面一个是读锁存器的缓冲器,下面一个是读引脚的缓冲器,读取P0.X引脚上的数据,要使这个三态缓冲器有效,引脚上的数据才会传输到内部数据总线上。

D锁存器:在51单片机的32根I/O 口线中都是用一个D触发器来构成锁存器的。

D 端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。

多路开关:在51单片机中,不需要外扩展存储器时,P0 口可以作为通用的输入输出端口(即I/O)使用,对于8031 (内部没有ROM )的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0 口就作为,地址/数据? 总线使用。

这个多路选择开关就是用于选择是做为普通I/O 口使用还是作为,数据/地址?总线使用的选择开关了。

当多路开关与下面接通时,P0 口是作为普通的I/O 口使用的,当多路开关是与上面接通时,P0 口是作为,地址/数据?总线使用的。

输出驱动部份:P0 口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。

Po 口作为I/O端口使用时,多路开关的控制信号为0 (低电平),V1管截止, 多路开关是与锁存器的Q非端相接的(即P0 口作为I/O 口线使用)。

作为地址/数据线使用时,多路开关的控制信号为1,V1管由地址/数据线决定,多路开关与地址/数据线连接。

输出过程:1、I/O输出工作过程:当写锁存器信号CP有效,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的栅极→V2的漏极到输出端P0.X。

51单片机IO口工作原理——P2、P3(转载)

51单片机IO口工作原理——P2、P3(转载)

51单⽚机IO⼝⼯作原理——P2、P3(转载)三、P2端⼝的结构及⼯作原理:P2端⼝的⼀位结构见下图:由图可见,P2端⼝在⽚内既有上拉电阻,⼜有切换开关MUX,所以P2端⼝在功能上兼有P0端⼝和P1端⼝的特点。

这主要表现在输出功能上,当切换开关向下接通时,从内部总线输出的⼀位数据经反相器和场效应管反相后,输出在端⼝引脚线上;当多路开关向上时,输出的⼀位地址信号也经反相器和场效应管反相后,输出在端⼝引脚线上。

对于8031单⽚机必须外接程序存储器才能构成应⽤电路(或者我们的应⽤电路扩展了外部存储器),⽽P2端⼝就是⽤来周期性地输出从外存中取指令的地址(⾼8位地址),因此,P2端⼝的多路开关总是在进⾏切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。

因此P2端⼝是动态的I/O端⼝。

输出数据虽被锁存,但不是稳定地出现在端⼝线上。

其实,这⾥输出的数据往往也是⼀种地址,只不过是外部RAM的⾼8位地址。

在输⼊功能⽅⾯,P2端⼝与P0和H端⼝相同,有读引脚和读锁存器之分,并且P2端⼝也是准双向⼝。

可见,P2端⼝的主要特点包括:①不能输出静态的数据;②⾃⾝输出外部程序存储器的⾼8位地址;②执⾏MOVX指令时,还输出外部RAM的⾼位地址,故称P2端⼝为动态地址端⼝。

即然P2⼝可以作为I/O⼝使⽤,也可以作为地址总线使⽤,下⾯我们就不分析下它的两种⼯作状态。

1、作为I/O端⼝使⽤时的⼯作过程当没有外部程序存储器或虽然有外部数据存储器,但容易不⼤于256B,即不需要⾼8位地址时(在这种情况下,不能通过数据地址寄存器DPTR读写外部数据存储器),P2⼝可以I/O⼝使⽤。

这时,“控制”信号为“0”,多路开关转向锁存器同相输出端Q,输出信号经内部总线→锁存器同相输出端Q→反相器→V2管栅极→V2管9漏极输出。

由于V2漏极带有上拉电阻,可以提供⼀定的上拉电流,负载能⼒约为8个TTL与⾮门;作为输出⼝前,同样需要向锁存器写⼊“1”,使反相器输出低电平,V2管截⽌,即引脚悬空时为⾼电平,防⽌引脚被钳位在低电平。

单片机的引脚原理图与说明

单片机的引脚原理图与说明

一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X 引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。

51单片机IO口工作原理

51单片机IO口工作原理

51单片机IO口工作原理51单片机(英文名为8051 Microcontroller)是一种由Intel公司于1980年推出的8位单片机,广泛应用于嵌入式系统中。

作为一种高性能、低功耗的单片机,其周围有多个IO口(Input/Output ports),可以用来实现数字输入、输出、模拟输入、输出等功能。

下面将详细介绍51单片机IO口的工作原理。

1.51单片机的IO口介绍51单片机共有4个8位的IO口,依次为P0、P1、P2和P3、每个IO 口都是一个8位的寄存器,称为端口寄存器(port register),用于和外部设备进行数据通信。

其中,P0是一个具有双重输入和输出特性的端口,可以配置为输入口或输出口;P1和P3是纯输出端口;P2是输入输出混合端口。

2.IO口的工作模式IO口的工作模式由P0、P1、P2和P3的寄存器位来配置。

每个IO口的寄存器位都有对应的功能和控制位,通过设置这些位可以控制IO口的工作模式和输出状态。

2.1输入模式在输入模式下,IO口作为输入口,接受来自外部器件的信号。

通过将对应的寄存器位设置为1,可以将IO口配置为输入模式。

在输入模式下,端口寄存器的位对应的为悬空状态,可以通过主动上拉或下拉方法来确保IO口的状态。

2.2输出模式在输出模式下,IO口作为输出口,通过控制寄存器位的值可以输出高电平或低电平信号。

将对应的寄存器位设置为0,可以将IO口配置为输出模式。

在输出模式下,直接修改端口寄存器的位即可改变IO口的输出状态。

对于纯输出端口,即P1和P3,更方便地改变IO口的状态可以通过直接操作对应的位。

2.3产生中断IO口还可以通过设置为中断产生源的方式来实现中断功能。

在输入模式下,将对应的寄存器位设置为1,即可配置IO口为中断输入。

当IO口检测到中断触发条件(例如边沿触发、电平触发等),会触发相应的中断服务程序(ISR)。

3.IO口的读取和写入操作为了读取和写入IO口的状态,可以直接访问相应的寄存器。

单片机P0端口的结构及工作原理

单片机P0端口的结构及工作原理

单片机P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。

MCS-51单片机IO口详解

MCS-51单片机IO口详解

单片机IO口结构及上拉电阻MCS-51有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线。

一、P0口和P2口图1和图2为P0口和P2口其中一位的电路图。

由图可见,电路中包含一个数据输出锁存器(D触发器)和两个三态数据输入缓冲器,另外还有一个数据输出的驱动(T1和T2)和控制电路。

这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。

它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。

图1 单片机P0口内部一位结构图图2 单片机P0口内部一位结构图P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。

外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2^16=64k,所以MCS-51最大可外接64kB的程序存储器和数据存储器。

二、P1口图3为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。

图3 单片机P2口内部一位结构图作为输入口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。

需要说明的是,作为输入口使用时,有两种情况:1.首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读—修改—写操作,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。

2.读P1口线状态时,打开三态门G2,将外部状态读入CPU。

51单片机的P1、P2、P3口的工作原理

51单片机的P1、P2、P3口的工作原理

基于proteus的51单片机仿真实例五十、51单片机的P1、P2、P 3口的工作原理1、P1口某一位的内部电路结构如下图所示,在51单片机的P0,P1,P2,P3口中,P1口的结构最简单,用途也最单一。

仅仅只作为普通的数据输入/输出(I/O)端口使用。

从图中可以看出,P0口与P1口的主要差别在于:P1端口用内部上拉电阻代替了P0端口的场效应管,并且输出的信息只有内部总线的信息,没有了数据/地址总线的复用。

1)P1口用作输入端口如果P1口用作输入端口,即Q=0,/Q=1;则场效应管导通,引脚被直接连到电源的地GND上,即使引脚输入的是高电平,被直接拉低为“0“,所以,与P0端口一样,在将数据输入P1端口之前,先要通过内部总线向锁存器写”1“,这样/Q=0,场效应管截止,P1端口输入的“1”才可以送到三态缓冲器的输入端,此时再给三态门的读引脚送一个读控制信号,引脚上的“1”就可以通过三态缓冲器送到内部总线。

具有这种操作特点的输入/输出端口,一般称之为准双向I/O口,51单片机的P1,P2,P3口都是准双向口。

而P0端口由于输出具有三态功能(输出端口的三态是指:高电平,低电平,高阻态这三态),所以在作为输入端口时,无需先写“1”然后再进行读操作。

2)P1口用作输出端口如果P1口用作输出端口,应给锁存器的写锁存CP端输入写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和/Q端输出,如果D端输入“1”,则/Q=0,场效应管截止,由于上拉电阻的作用,在P1.X引脚输出高电平“1”,反之,如果D端输入“0”,则/Q =1,场效应管导通, P1.X引脚连到地线上,从而在引脚输出“0”。

2、P2口的内部电路结构如下图所示,可以看出P2口既有片内上拉电阻,又有切换开关MUX,所以P2口在功能上兼有P0和P1端口的特点,这主要体现在输出功能上,当切换开关向下接通时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当多路开关向上时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。

51单片机原理图

51单片机原理图

2.3 51单片机增强型学习系统各组成部份原理图及功能简介2.3.1 共阴极数码管动态扫描控制图2.2 51单片机增强型学习系统的四位共阴极数码管动态扫描硬件连接原理图AT89S51单片机P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上接电阻。

AT89S51单片机P2口是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVX @Ri 指令)时,P2口线上的内容(也即特殊功能寄存器SFR 区中P2寄存器的内容),在整个访问期间不改变。

Flash 编程或校验时,P2亦接收高位地址和其它控制信号。

在上面的硬件连接原理图里,我们用到的是P0和P2口控制四位数码管显示的。

四位数码管显示的方式是动态扫描显示,动态扫描显示是单片机中应用最为广泛的一种显示方式之一。

其接口电路如上图是把所有显示器的8个笔划段a-h同名端连在一起由单51单片机增强型学习系统片机的P0.0~P0.7控制,而每一个数码管的公共极(阴极)是各自独立地受单片机P2.7~P2.4控制。

CPU向字段输出口P0口送出字形码时,所有数码管接收到相同的字形码,但究竟是那个数码管亮则取决于P2.7~P2.4的输入结果,所以我们就可以自行决定何时显示哪一位了。

MCS-51单片机IO口详解

MCS-51单片机IO口详解

MCS-51单片机IO口详解单片机I O口结构及上拉电阻MCS-51有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线。

一、P0口和P2口图1和图2为P0口和P2口其中一位的电路图。

由图可见,电路中包含一个数据输出锁存器(D触发器)和两个三态数据输入缓冲器,另外还有一个数据输出的驱动(T1和T2)和控制电路。

这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。

它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。

图1单片机P0口内部一位结构图图2 单片机P0口内部一位结构图P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE 选通作为地址总线的低8位输出口AB0-AB7。

外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD 读写信号选通,因为2^16=64k,所以MCS-51最大可外接64kB的程序存储器和数据存储器。

二、P1口图3为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。

Newbuff图3 单片机P2口内部一位结构图作为输入口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。

需要说明的是,作为输入口使用时,有两种情况:1.首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读—修改—写操作,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。

单片机IO口工作原理

单片机IO口工作原理

单片机IO口工作原理————————————————————————————————作者: ————————————————————————————————日期:ﻩ51单片机I/O口工作原理一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:ﻫ先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

51单片机p0口工作原理

51单片机p0口工作原理

51单片机p0口工作原理51单片机是一种常用的单片机型号,具有广泛的应用领域。

其中,P0口是它的一个IO口,也是最常用的IO口之一。

本文将详细介绍51单片机P0口的工作原理。

我们需要了解什么是IO口。

IO口是输入输出口的简称,用于与外部设备进行数据交互。

在51单片机中,P0口是一个8位的IO口,可以通过编程控制其输入和输出。

P0口是51单片机的默认IO口,即在上电复位后,P0口的功能为普通IO口。

在这种模式下,P0口可以作为输入口或输出口使用。

当我们将某一位的P0口设置为1时,该位即为输出模式,并且输出高电平;当我们将某一位的P0口设置为0时,该位即为输入模式。

P0口的工作原理是通过寄存器来实现的。

在51单片机中,P0口对应的寄存器为P0,我们可以通过对P0寄存器的操作来控制P0口的输入和输出。

在P0口的输入模式下,我们可以通过读取P0寄存器的值来获取P0口的输入状态。

具体来说,P0口每一位的值都对应P0寄存器的相应位。

例如,当P0口的第一位为高电平时,我们可以通过读取P0寄存器的第一位来判断P0口的输入状态。

在P0口的输出模式下,我们可以通过设置P0寄存器的值来控制P0口的输出状态。

具体来说,我们可以将P0寄存器的相应位设置为1,从而将对应的P0口输出高电平;或者将P0寄存器的相应位设置为0,从而将对应的P0口输出低电平。

需要注意的是,P0口的输入和输出可以同时进行。

也就是说,我们可以将P0口的某一位设置为输入模式,同时将其他位设置为输出模式,实现P0口的多功能使用。

除了普通的输入输出功能外,P0口还有其他特殊功能。

例如,P0口的第0位和第1位可以作为外部中断引脚使用。

当外部中断引脚检测到信号变化时,可以触发中断程序的执行。

这对于实时性要求较高的应用非常有用。

P0口的第2位和第3位还可以与定时器/计数器的控制信号相关联,用于定时和计数功能。

51单片机P0口是一个非常重要的IO口,具有广泛的应用。

单片机第5章 输入输出接口P0~P3讲解

单片机第5章   输入输出接口P0~P3讲解

P2口—1.作为输入/输出口。 2.作为高8位地址总线。
P3口—P3口为双功能 1.作第一功能使用时,其功能为输入/输出口。 2.作第二功能使用时,每一位功能定义如下表
所示:
端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能 RXD (串行输入线) TXD (串行输出线) INT0(外部中断0输入线) INT1 (外部中断1输入线) T0 (定时器0外部计数脉冲输入) T1 (定时器1外部计数脉冲输入) WR (外部数据存储器写选通信号入)
为了节省口线,可将按键接成矩阵的形式。
例如:8×8的形式接64个按键,行列用两个接口 表示。每个按键都有行值和列值,行值和列值的组合 (称为按键的扫描码)就可以唯一的标识某个按键。 矩阵的行线和列线分别通过两个并口与CPU通信。按键 的状态用开关量“0/1”表示。
键盘处理程序的任务是: 确定有无键按下; 判哪一个键按下, 键的功能是什么; 还要消除按键在闭合或断开时的抖动。
TAB2 : db 78H,79H,38H,38H,3FH ; “HELLO”的字形码
DAY: MOV R6,#20 ; 延时20ms子程序 DL2: MOV R7,#7DH DL1: NOP
NOP DJNZ R7,DL1 DJNZ R6,DL2
RET
END
5.3.2用并行口设计键盘电路
键盘是计算机系统中不可缺少的输入设备,当按 键少时可接成线性键盘(一个按键对应一位,如图5.2 中的按键 ),按键较多时,这样的接法占用口线较多。
a
5
EE DE BE 7E ED DD BD 7D EB DB BB 7B E7 D7 B7 77
开始

p0口工作原理

p0口工作原理

p0口工作原理
P0口是一种数字输入/输出接口,通常用于嵌入式系统中与外
部设备的连接。

它的工作原理是通过芯片引脚之间的电信号传输来实现数据的输入和输出。

在工作时,P0口需要被正确配置为输入或输出模式。

当配置
为输入模式时,P0口可以接收来自外部设备的数字信号,并
将其传递给嵌入式系统的处理器。

当配置为输出模式时,P0
口可以向外部设备发送数字信号。

P0口的工作原理基于数字电路的基本原理。

当P0口配置为输
入模式时,它会通过内部的电平检测电路来判断输入信号的高低电平,并将其转换为数字信号。

当P0口配置为输出模式时,嵌入式系统的处理器会将数字信号转换为相应的电平信号,并通过P0口引脚将信号发送给外部设备。

P0口的工作原理还与所使用的通信协议有关。

例如,当P0口
用于串行通信时,它会将数字信号转换为连续的高低电平序列,并遵循特定的通信协议规则进行数据传输。

而当P0口用于并
行通信时,它会将数字信号转换为多个并行的电平信号,并按照特定的时序规则进行数据传输。

总的来说,P0口的工作原理是通过配置、转换和传输数字信
号来实现与外部设备的数据输入和输出。

它在嵌入式系统中起到了连接和控制外部设备的重要作用。

MCS-51单片机原理及接口技术

MCS-51单片机原理及接口技术

2 5 6 9 12 15 16 19
19 18 9 12 13 14 15 1 2 3 4 5 6 7 8
1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q
MCS-51
A 1 3 2 74LS32
RD WR PSEN ALE/P TXD RXD
74LS273引脚封装图 引脚封装图
MCS-51与74LS273的接口电路图 与 的接口电路图
ห้องสมุดไป่ตู้
4.3.1简单I/O接口芯片的扩展 4.3.1简单I/O接口芯片的扩展 简单I/O
简单的I/O口扩展通常是采用 电路锁存器、 简单的 口扩展通常是采用TTL或CMOS电路锁存器、三 口扩展通常是采用 或 电路锁存器 态门等作为扩展芯片( 态门等作为扩展芯片(74LS244、74LS245、74LS273、 、 、 、 74LS373、 74LS377等 ) , 通过P0口来实现扩展的一种 、 等 通过 口来实现扩展的一种 方案。它具有电路简单、成本低、配置灵活的特点。 方案。它具有电路简单、成本低、配置灵活的特点。 简单的I/O口扩展主要包括: 简单的 口扩展主要包括: 口扩展主要包括 缓冲器扩展输入口(三态门: 缓冲器扩展输入口(三态门: 74LS244、74LS245等) 、 等 锁存器扩展输出口(锁存器: 锁存器扩展输出口(锁存器: 74LS273、74LS373、 、 、 74LS377等) 等
4.3 输入 输出接口扩展 输入/输出接口扩展
• MCS-51系列单片机内部有4个双向的8位并行I/O端 MCS-51系列单片机内部有4个双向的8位并行I/O端 系列单片机内部有 I/O P0、P1、P2和P3口 口:P0、P1、P2和P3口。 • 在实际的应用系统中,P0口分时地作为低8位地址 在实际的应用系统中,P0口分时地作为低 口分时地作为低8 线和数据线,P2口作为高 位地址线。这时,P0口 口作为高8 线和数据线,P2口作为高8位地址线。这时,P0口 和部分或全部的P2口无法再作通用I/O P2口无法再作通用I/O口 和部分或全部的P2口无法再作通用I/O口。 • P3口的一些口线首先要满足第二功能的要求。这 P3口的一些口线首先要满足第二功能的要求 口的一些口线首先要满足第二功能的要求。 时就需要进行单片机I/O口的扩展。 I/O口的扩展 时就需要进行单片机I/O口的扩展。 常用的I/O扩展有以下两种形式: I/O扩展有以下两种形式 常用的I/O扩展有以下两种形式: 简单I/O I/O接口芯片的扩展 简单I/O接口芯片的扩展 可编程I/O接口电路的扩展 可编程I/O接口电路的扩展 I/O
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机的P0口工作原理详细讲解
时间:2013-07-15 17:51:25 来源:作者:
三态门:三态门缓冲器:51单片机P0口输入缓冲器
P0口的输出驱动:两个MOS管组成的推拉式结构
P0口作为IO线输入状态时:①读引脚;②读锁存器;
P0口作为地址/数据复用口
P0口作为IO线输出时,只能输出低电平、高阻态,需要外接上拉电阻,使高阻态变为输出高电平(对比AVR单片机的推挽输出结构)
一、P0端口的结构及工作原理
P0端口8位中的一位结构图见下图:
由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。

再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。

下面,我们先就组成P0口的每个单元部份跟大家介绍一下:
先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取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非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D 的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。

那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。

大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。

输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。

与门、与非门:这两个单元电路的逻辑原理我们在第四课数字及常用逻辑电路时已做过介绍,不明白的同学请回到第四节去看看。

前面我们已将P0口的各单元部件进行了一个详细的讲解,下面我们就来研究一下P0口做为I/O口及地址/数据总线使用时的具体工作过程。

1、作为I/O端口使用时的工作原理
P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),看上图中的线线部份,多路开关的控制信号同时与与门的一个输入端是相接的,我们知道与门的逻辑特点是“全1出1,有0出0”那么控制信号是0的话,这时与门输出的也是一个0(低电平),与让的输出是0,V1管就截止,在多路控制开关的控制信号是0(低电平)时,多路开关是与锁存器的Q非端相接的(即P0口作为I/O口线使用)。

P0口用作I/O口线,其由数据总线向引脚输出(即输出状态Output)的工作过程:当写锁存器信号CP 有效,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的栅极→V2的漏极到输出端P0.X。

前面我们已讲了,当多路开关的控制信号为低电平0时,与门输出为低电平,V1管是截止的,所以作为输出口时,P0是漏极开路输出,类似于OC门,当驱动上接电流负载时,需要外接上拉电阻。

下图就是由内部数据总线向P0口输出数据的流程图(红色箭头)。

P0口用作I/O口线,其由引脚向内部数据总线输入(即输入状态Input)的工作过程:数据输入时(读P0口)有两种情况
1、读引脚
读芯片引脚上的数据,读引脚数时,读引脚缓冲器打开(即三态缓冲器的控制端要有效),通过内部数据总线输入,请看下图(红色简头)。

2、读锁存器
通过打开读锁存器三态缓冲器读取锁存器输出端Q的状态,请看下图(红色箭头):
在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。

例如,当从内部总线输出低电平后,锁存器Q=0,Q非=1,场效应管T2开通,端口线呈低电平状态。

此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。

又如,当从内部总线输出高电平后,锁存器Q=1,Q非=0,场效应管T2截止。

如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。

为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:为此,8051单片机在对端口P0一P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。

读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。

下面是几条读--修改-写指令的例子。

ANL P0,#立即数;P0→立即数P0
ORL P0,A ;P0→AP0
INC P1 ;P1+1→P1
DEC P3 ;P3-1→P3
CPL P2 ;P2→P2
这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。

P0端口是8031单片机的总线口,分时出现数据D7一D0、低8位地址A7一AO,以及三态,用来接口存储器、外部电路与外部设备。

P0端口是使用最广泛的I/O端口。

2、作为地址/数据复用口使用时的工作原理
在访问外部存储器时P0口作为地址/数据复用口使用。

这时多路开关‘控制’信号为‘1’,‘与门’解锁,‘与门’输出信号电平由“地址/数据”线信号决定;多路开关与反相器的输出端相连,地址信号经“地址/数据”线→反相器→V2场效应管栅极→V2漏极输出。

例如:控制信号为1,地址信号为“0”时,与门输出低电平,V1管截止;反相器输出高电平,V2管导通,输出引脚的地址信号为低电平。

请看下图(兰色字体为电平):
反之,控制信号为“1”、地址信号为“1”,“与门”输出为高电平,V1管导通;反相器输出低电平,V2管截止,输出引脚的地址信号为高电平。

请看下图(兰色字体为电平):
可见,在输出“地址/数据”信息时,V1、V2管是交替导通的,负载能力很强,可以直接与外设存储器相连,无须增加总线驱动器。

P0口又作为数据总线使用。

在访问外部程序存储器时,P0口输出低8位地址信息后,将变为数据总线,以便读指令码(输入)。

在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,
使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线。

请看下图
如果该指令是输出数据,如MOVX @DPTR,A(将累加器的内容通过P0口数据总线传送到外部RAM中),则多路开关“控制”信号为‘1’,“与门”解锁,与输出地址信号的工作流程类似,数据据由“地址/数据”线→反相器→V2场效应管栅极→V2漏极输出。

如果该指令是输入数据(读外部数据存储器或程序存储器),如MOVX A,@DPTR(将外部RAM某一存储单元内容通过P0口数据总线输入到累加器A中),则输入的数据仍通过读引脚三态缓冲器到内部总线,其过程类似于上图中的读取指令码流程图。

通过以上的分析可以看出,当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。

因此,不能再作为通用的I/O 端口。

大家以后在系统设计时务必注意,即程序中不能再含有以P0口作为操作数(包含源操作数和目的操作数)的指令。

相关文档
最新文档