51单片机P0~P3口工作原理

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口使用

  1. P1口作为输出口时,若CPU输出1,Q=1,Q*=0,场效应管截止,P1.x引脚的输出为1;若CPU输出0,Q=0,Q*=1,场效应管导通,P1.x引脚的输出为0。
  2. P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。

总结

  • P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为
    输出口时,不需要在片外接上拉电阻。
  • P1口“读引脚”输入时,必须先向P1口的锁存器写入1。

P2

P2.x的电路结构

在这里插入图片描述

P2.x的工作原理

  1. 作地址总线
    在内部控制信号作用下,MUX与“地址”接通。当“地址”线为0时,
    场效应管导通,P2.x引脚输出0;当“地址”线为1时,场效应截止
    引脚输出1。

  2. 作通用I/O口
    与P1.x相同

总结

  1. 作为高8位地址总线使用时,可输出外部存储器或I/O的高8位地址,与P0口输出并经锁存器的锁存的低8位地址一起构成16位地址,共可寻址64KB的片外地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。
  2. P2口作为通用I/O口使用时,为准双向口,功能与P1口一样。一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用1/O口。如果不作为地址总线口使用,可作为通用I/O口使用。

P3

P3.x的电路结构

在这里插入图片描述

P3.x的工作原理

由于引脚数目有限,在P3口增加了第二功能

  • 第二功能输出:内部总线置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的输出端。
  • 10
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值