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

这篇具有很好参考价值的文章主要介绍了51单片机P0~P3口工作原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

P0

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

  • 多路开关MUX决定P0.x是作数据/地址引脚还是作通用I/O引脚。
  • 三态缓冲器BUF1,BUF2由C1,C2控制是读锁存器还是读引脚

作数据/地址引脚

控制线置1,MUX连通地址/数据线,此时作P0.x数据/地址引脚

发出信号

  • 数据/地址线置1,V1导通,V2截止。P0.x输出1的数据/地址信号;

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

  • 数据/地址线置0,V1截止,V2导通。P0.x输出0的数据/地址信号;

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

接受信号

  • 数据输入:在取数据期间,“控制”信号为“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端。

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

  • 读锁存器:Q暂存着数据,C2控制BUF1导通,最后暂存的数据被送入内部总线。

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

注意:凡属于读-修改-写方式的指令,从锁存器读入信
号,其它指令则从端口引脚线上读入信号。

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

P1

P1.x的电路结构

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

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的电路结构

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

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的电路结构

c51p0-p3四个端口的工作原理,51单片机,51单片机,单片机,stm32

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (51单片机)第五章-A/D和D/A工作原理-A/D

            模拟量 数字量 模/数转换(A/D, Analog to Digital)数/模转换(D / A, Digital to Analog)         在A/D转换器中,由于输入的模拟信号在时间上是连续的,而输出的数字信号是离散的,因此在A/D转换器转换时必须在一系列选定的瞬间(时间坐标轴上一点)对输入的模拟

    2024年03月09日
    浏览(43)
  • 单片机 | 51单片机原理

    【金善愚】 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=51090 三类 电源及晶振引脚(共4只) 控制引脚(共4只) 端口引脚(共32只) Vcc(40脚):电源端,接+5V电源。 Vss(20脚):接地端。 XTAL1(19脚):接外部晶振和微调电容的一端。 XTAL2(18脚):

    2024年02月02日
    浏览(58)
  • 【MCS-51】51单片机结构原理

    至今为止,MCS-51系列单片机有许多种型号的产品:其中又分为普通型51(8031、8051、89S51)和增强型52(8032、8052、89S52等)。它们最大的区别在于存储器配置各有差异。下面我举例子的都是8051这一系列的单片机。 目录 8051单片机的构成 CPU 🐱计算器 🎈计算单元及其寄存器 🎈

    2024年02月02日
    浏览(50)
  • 单片机原理与应用课程设计-基于51单片机的时钟日历

    摘 要 本课程设计是基于51单片机的日历时钟设计。作为嵌入式系统中常用的控制器,单片机在各种电子设备和系统中广泛应用。日历时钟作为一个常见的功能模块,在现代生活中具有重要意义。因此,设计一个基于51单片机的日历时钟,不仅有助于我们掌握单片机编程技术和

    2024年02月20日
    浏览(72)
  • 51单片机蓝牙模块(HC05)运行原理

    在所有工作进行之前首先看一看自己的蓝牙模块是否是正常的,这一步很重要。一块正常的蓝牙模块是所有后续工作的基础! 首先把蓝牙模块链接到51单片机上 这时需要注意!!!我们需要将 蓝牙模块的RXD和单片机上的P30(RXD)引脚连接,将蓝牙模块的TXD和单片机上的P31(

    2023年04月08日
    浏览(69)
  • 基于51单片机的电子时钟(原理图,代码)

    所需要使用的元器件:  代码:(使用的是keil5) #include reg52.h             //调用单片机头文件 #define uchar unsigned char  //无符号字符型 宏定义    变量范围0~255 #define uint  unsigned int     //无符号整型 宏定义    变量范围0~65535   //数码管段选定义      0     1    2    

    2024年02月07日
    浏览(47)
  • 51单片机静态数码管原理及代码

    单个数码管有 8个LED灯 ,通过输入电平点 亮a~g可显示数字 ,以下为原理图:   数码管原理图分为共阴极与共阳极两种 : ① 共阴极 :a~dp位于发光二极管的阳极(即高电平的一端)部分,左接GND端 ② 共阳极 :a~dp位于发光二极管的阴极(即低电平的一端)部分,右接VCC电源

    2024年02月06日
    浏览(62)
  • 51单片机8*8 LED点阵实现原理讲解

    本篇文章将为大家讲解LED8*8点阵的使用方法。 LED 8 8点阵是由64个LED灯珠组成的,它们排列在一个8 8的矩阵中。每个LED灯珠都可以独立控制,因此可以通过控制不同的LED灯珠来显示不同的图形、数字、字母等。 LED 8 8点阵的原理是利用LED灯珠的发光特性,通过控制LED灯珠的亮灭

    2024年02月09日
    浏览(46)
  • 单片机——SG90舵机工作原理

    前言: 舵机控制的另一个专业名字叫伺服控制。 经过百度,伺服”—词源于希腊语“奴隶”的意思。人们想把“伺服机构”当个得心应手的驯服工具,服从控制信号的要求而动作。在讯号来到之前,转子静止不动;讯号来到之后,转子立即转动;当讯号消失,转子能即时自

    2023年04月08日
    浏览(42)
  • 【51单片机】利用【时间延迟】的原理规避【按键抖动问题】

    前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 本章是51LCD单片机设计的一个环节,完整可前往相应博客查看完整 传送门 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Lin

    2024年02月20日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包