您的位置 首页 产品

8051单片机I/O口的作业原理

一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及…

一、P0端口的结构及作业原理

P0端口8位中的一位结构图见下图:

由上图可见,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截止。

P0口作为I/O端口运用时,多路开关的操控信号为0(低电平),V1管截止,多路开关是与锁存器的Q非端相接的(即P0口作为I/O口线运用)。作为地址/数据线运用时,多路开关的操控信号为1,V1管由地址/数据线决议,多路开关与地址/数据线衔接。

输出进程:

1、I/O输出作业进程:当写锁存器信号CP有用,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的极→V2的漏极到输出端P0.X。这时多路开关的操控信号为低电平0,V1管是截止的,所以作为输出口时,P0是漏极开路输出,类似于OC门,当驱动上接电流负载时,需求外接上拉电阻
下图便是由内部数据总线向P0口输出数据的流程图(赤色箭头)。

2、地址输出进程

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

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

可见,在输出“地址/数据”信息时,V1、V2管是替换导通的,负载才干很强,能够直接与外设存储器相连,无须添加总线驱动器。

3、作为数据总线的输出进程

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

输入进程:

1、I/O读引脚作业进程:
读芯片引脚上的数据时,读引脚缓冲器翻开,经过内部数据总线输入,请看下图(赤色简头)。

2、I/O读锁存器作业进程:

经过翻开读锁存器三态缓冲器读取锁存器输出端Q的状况,请看下图(赤色箭头):

3、地址/数据时读指令码和数据进程

作为数据总线运用。在拜访外部程序存储器时,P0口输出低8位地址信息后,将变为数据总线,以便读指令码(输入)。在取指令期间,“操控”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU主动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,使V2管截止,在读引脚信号操控下,经过读引脚三态门电路将指令码读到内部总线,这个进程和I/O读引脚进程是相同的。

在输入状况下,从锁存器和从引脚上读来的信号一般是共同的,但也有破例。例如,当从内部总线输出低电平后,锁存器Q=0,Q非=1,场效应管T2注册,端口线呈低电平状况。此刻不管端口线上外接的信号是低电乎仍是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q=1,Q非=0,场效应管T2截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此,8031单片机在对端口P0一P3的输入操作上,有如下约好:为此,8051单片机在对端口P0一P3的输入操作上,有如下约好:凡归于读-修正-写方法的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。读-修正-写指令的特色是,从端口输入(读)信号,在单片机内加以运算(修正)后,再输出(写)到该端口上。这样组织的原因在于读-修正-写指令需求得到端口原输出的状况,修正后再输出,读锁存器而不是读引脚,能够避免因外部电路的原因而使原端口的状况被读错。当P0作为地址/数据总线运用时,在读指令码或输入数据前,CPU主意向P0口锁存器写入0FFH,破坏了P0口本来的状况。因而,不能再作为通用的I/O端口。在体系规划时有必要留意,即程序中不能再含有以P0口作为操作数(包含源操作数和意图操作数)的指令。

二、P1端口的结构及作业原理

由图可见,P1端口与P0端口的首要不同在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,而且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。要正确地从引脚上读入外部信息,有必要先使场效应管关断,以便由外部输入的信息确认引脚的状况。为此,在作引脚读入前,有必要先对该端口写入l。具有这种操作特色的输入/输出端口,称为准双向I/O口。8051单片机的P1、P2、P3都是准双向口。P0端口因为输出有三态功用,输入前,端口线已处于高阻态,无需先写入l后再作读操作。单片机复位后,各个端口已主动地被写入了1,此刻,可直接作输入操作。假如在运用端口的进程中,已向P1一P3端口线输出过0,则再要输入时,有必要先写1后再读引脚,才干得到正确的信息。此外,随输入指令的不同,P1端口也有读锁存器与读引脚之分。

三、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管截止,即引脚悬空时为高电平,避免引脚被钳位在低电平。读引脚有用后,输入信息经读引脚三态门电路到内部数据总线。

2、作为地址总线运用时的作业进程
P2口作为地址总线时,“操控”信号为‘1’,多路开关车向地址线(即向上接通),地址信息经反相器→V2管栅极→漏极输出。因为P2口输出高8位地址,与P0口不同,无须分时运用,因而P2口上的地址信息(程序存储器上的A15~A8)功数据地址寄存器高8位DPH保存时间长,无须锁存。

四、P3端口的结构及作业原理

P3口是一个多功用口,它除了能够作为I/O口外,还具有第二功用,P3端口的一位结构见下图

上图可见,P3端口和Pl端口的结构类似,差异仅在于P3端口的各端口线有两种功用挑选。当处于榜首功用时,第二输出功用线为1,此刻,内部总线信号经锁存器和场效应管输入/输出,其效果与P1端口效果相同,也是静态准双向I/O端口。当处于第二功用时,锁存器输出1,经过第二输出功用线输出特定的内含信号,在输入方面,即能够经过缓冲器读入引脚信号,还能够经过代替输入功用读入片内的特定第二功用信号。因为输出信号锁存而且有两层功用,故P3端口为静态双功用端口。

使P3端品各线处于第二功用的条件是:

1、串行I/O处于运转状况(RXD,TXD);

2、翻开了处部中止(INT0,INT1);

3、定时器/计数器处于外部计数状况(T0,T1)

4、履行读写外部RAM的指令(RD,WR)

在运用中,如不设定P3端口各位的第二功用(WR,RD信号的发生不必设置),则P3端口线主动处于榜首功用状况,也便是静态I/O端口的作业状况。在更多的场合是依据运用的需求,把几条端口线设置为第二功用,而别的几条端口线处于榜首功用运转状况。在这种情况下,不宜对P3端口作字节操作,需选用位操作的方式。

四、驱动才干

P0端口能驱动8个LSTTL负载。如需添加负载才干,可在P0总线上添加总线驱动器。P1,P2,P3端口各能驱动4个LSTTL负载。因为P0-P3端口已映射成特别功用寄存器中的P0一P3端口寄存器,所以对这些端口寄存器的读/写就完成了信息从相应端口的输入/输出。例如:
MOV A, P1 ;把Pl端口线上的信息输入到A
MoV P1, A ;把A的内容由P1端口输出
MOV P3, #0FFH ;使P3端口线各方位l

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/266947.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部