P0
- 多路开关MUX决定P0.x是作数据/地址引脚还是作通用I/O引脚。
- 三态缓冲器BUF1,BUF2由C1,C2控制是读锁存器还是读引脚
作数据/地址引脚
控制线置1,MUX连通地址/数据线,此时作P0.x数据/地址引脚
发出信号
- 数据/地址线置1,V1导通,V2截止。P0.x输出1的数据/地址信号;
- 数据/地址线置0,V1截止,V2导通。P0.x输出0的数据/地址信号;
接受信号
- 数据输入:在取数据期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,使V2管截止(高组态时才能读数据),在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线。
注意:当P0作为地址/数据总线使用时,在接收数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。
作通用I/O引脚
控制线置0,MUX连通D锁存器,此时作P0.x通用I/O引脚(此时V1永久截止)
- 输出1:内部总线输出1,C1端给入时钟信号,使得 Q ‾ \overline{Q} Q置0,使得V2也截止,此时P0.x引脚变成高阻态,此时需在片外附加上拉电阻才能正常输出1信号
- 输出0:内部总线输出0,C1端给入时钟信号,使得 Q ‾ \overline{Q} Q置1,V2导通,此时P0.x引脚接地,正常输出1信号
注意:在P0.x作通用I/O引脚,读取外部信号时,需先用内部总线写入1,使P0.x处于高阻态,随后P0.x的信号方可送入输入缓冲器BUF2。
P0.x只有写入1才能正常读,因此P0.x在作通用I/O引脚为准双向口(双向口:无需其他操作,即可完成读和写)
- 读引脚:外部信号通过P0.x送入缓冲器BUF2;C1控制BUF2导通,数据被送入内部总线。同时也送入了D脚,数据就被暂时保存在了Q端。
- 读锁存器:Q暂存着数据,C2控制BUF1导通,最后暂存的数据被送入内部总线。
注意:凡属于读-修改-写方式的指令,从锁存器读入信
号,其它指令则从端口引脚线上读入信号。
读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上(如ANL)。
P1
P1.x的电路结构
P1.x的工作原理
P1.x只能作通用IO口使用
- P1口作为输出口时,若CPU输出1,Q=1,Q*=0,场效应管截止,P1.x引脚的输出为1;若CPU输出0,Q=0,Q*=1,场效应管导通,P1.x引脚的输出为0。
- P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。
总结
- P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为
输出口时,不需要在片外接上拉电阻。 - P1口“读引脚”输入时,必须先向P1口的锁存器写入1。
P2
P2.x的电路结构
P2.x的工作原理
-
作地址总线
在内部控制信号作用下,MUX与“地址”接通。当“地址”线为0时,
场效应管导通,P2.x引脚输出0;当“地址”线为1时,场效应截止
引脚输出1。 -
作通用I/O口
与P1.x相同
总结
- 作为高8位地址总线使用时,可输出外部存储器或I/O的高8位地址,与P0口输出并经锁存器的锁存的低8位地址一起构成16位地址,共可寻址64KB的片外地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。
- P2口作为通用I/O口使用时,为准双向口,功能与P1口一样。一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用1/O口。如果不作为地址总线口使用,可作为通用I/O口使用。
P3
P3.x的电路结构
文章来源:https://www.toymoban.com/news/detail-849088.html
P3.x的工作原理
由于引脚数目有限,在P3口增加了第二功能文章来源地址https://www.toymoban.com/news/detail-849088.html
- 第二功能输出:内部总线置1,与非门可以当成,第二功能输出口连接了一个非门使用,由第二功能输出口控制P3.x输出。当第二输出为1时,场效应管截止,P3.x引脚输出为1;当第二输出为0时,场效应管导通,P3.x引脚输出为0;
- 第二功能输入:内部总线和输出口应置1,此时第二功能输入口即可读取BUF3的内容
- 通用I/O口:第二功能输出口置1,P3.x作通用I/O口使用同P1.x
总结
- 由于P3口每一引脚有第一功能与第二功能,究竟是使用哪
是由单片机执行的指令控制来自动切换的,用户不需要进行任何设置。 - 引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的输出端。
到了这里,关于51单片机P0~P3口工作原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!