C51的说明书上说:”Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called quasi-bidirectional

ports. When configured as inputs, they pull high and source current (IIL) when externally pulled low.  Port 0, on the other

hand, is considered truly bidirectional, because it floats when configured as an input. "
翻译是:因为P1、2、3有固定的内部上拉电阻,所以有时称它们为准双向口。当用做输入时被拉高,低则要靠外部电路拉低。而P0则是真双向口,因为作为输入时它是悬浮的(因为没有上拉电阻)。

不是很清晰易懂.
我很纳闷,这么重要的一个问题,为什么教科书、老师都没有好好的讲清楚,包括我自己经历的也是这样.我也是一直被这个问题捆饶了很久


我说说我的看法:
像上面说的一样,"准"就是"基本上"的意思.
其实重点在P0口.
P0口是双向指的是它被用作地址/数据端口时,只有在这个时候,P0口才处于两个开关管推挽状态,当两个开关管都关闭时,才会出现高阻状态.

当P0口用于一般I/O口时,内部接Vcc的那个开关管是与引脚(端口)脱离联系的,这个时候,只有拉地的那个开关管起作用,P0口作为输出,是必须外接上拉电阻的,不然就无法输出高电平;如果P0口作为输入,则必须先对端口写1,使拉地的开关管断开,这个时候,如果不接上拉电阻,则是高阻状态,就是一个双向口,如果接上拉电阻,则本身输出高电平,对输入信号的逻辑无影响(注意是对逻辑无影响,对实际参数有无影响我不确定,但是我认为是有的).

双向与准双向,根本原则是双向包含了高阻这个状态,而不在于是否需要先写1或者不写,P1~P3口因为有内部上拉电阻,因此无论如何不是双向;P0口内部无上拉电阻,在处于数据/地址功能时,自动完成3态的转换,是双向,处于一般I/O口时,如果不接外部上拉,而且先向端口写了1,那么就处于高阻状态,此时,它也是一个人为的双向口,这与它处于地址/数据功能时的自动双向有区别,以及与P1~P3处于输入时输出锁存器为1是有区别的

单片机的P0~P3端口进行输入时为什么要设置为1?

给锁存器写1,那么锁存器的反向端就输出0,那么和它相接的MOS管也就在截状态,也就是呈高阻态,这样P0口上数据就会从读引脚的三态缓冲器上正确的输入,如果不写1,那么锁存器上次锁存的可能为0,那么反向端有可能出现1,这样和反向端相接的MOS管就倒通,也就是直接拉到地,那么不管你P0口上输入什么信号都会拉成低电平,输入就错了.

为什么我输入没设置1,还是正确的呢?

一般情况下,单片机复位后P0-P3端口默认值为1,如果仅作为输入,中途不改变,无需我们先设置1

双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1, 是扯淡!!!!

什么是准双向口,双向口?相关推荐

  1. 常见国家S口-O口规范与CID标准一览

    常见国家S口-O口规范与CID标准一览(本文为内部资料,为转载) 目录 1............................................................... ...

  2. android 串口转usb,方口并口打印线

    我们在第一次安装使用打印机时候,可能不清楚打印线怎么使用,下面教大家如何使用方口并口打印线以及USB转9针串口线. 一.方口并口打印线设置教程 1:检测打印线 将打印线先连接好,鼠标右键点击计算机-设 ...

  3. POE交换机分类有哪些?4口/8口/16口/24口千兆POE交换机有哪些选择?

    POE交换机分类有哪些?4口/8口/16口/24口千兆POE交换机有哪些选择? POE供电技术凭借简化用电设备的部署,以及节能.安全.可靠等优势,成为安防监控.无线覆盖以及智能电网等场景的宠儿.在安防 ...

  4. SW3518全协议OPPO闪充、支持QC-A+C-PD 口任意口快充输出车充IC

    深圳市展嵘电子有限公司 有需要的上帝可联系小陈:136-6225-3950 : 3412-1522-98 支持 PD 的多快充协议双口充电解决方案 概述 SW3518 是一款高集成度的多快充协议双口充 ...

  5. STM32 IO口双向问题

    为什么80%的码农都做不了架构师?>>>    如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain, 同时在引脚上连接一个上拉电阻 ...

  6. 串口与COM口 USB口、TTL、RS-232、RS-485区别 释疑

    Point: 1.串口.COM口是指的物理接口形式(硬件),COM口简称是串口.而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vc ...

  7. 常见国家S口-O口规范与CID标准一览(本文为内部资料,为转载)

    目录 目的 范围 定义及缩略语 引用标准和参考资料 2.1.什么是FXS和FXO接口 2.2.几个关键概念 2.3.FXS口接口功能 2.4.FXO口接口功能 3 各国CID标准测试规范 4  各国F ...

  8. Linux 如何加载并口/打印口驱动

    实际上Linux是自带并口驱动的,因此不需要再使用第三方驱动编译加载了. 设置并口的具体步骤如下: rmmod lp rmmod parport_pcinsmod /usr/lib/modules/$ ...

  9. linux遍历双向队列,双向循环队列

    Sam之前看2.4 kernel时,常看到List.也仔细看了一下,但现在长期没有看kernel,没有写程序,已经忘记了很多.今天又看一看并记录下来. Linux Kernel中,常常需要使用双向链表 ...

  10. 交换机,路由器上的 S口 F口 E口 Gi是什么?

    S口是 serial接口的意思,也叫高速异步串口,主要是连接广域网的V.35线缆用的,说白了就是路由器和路由器连接时候用的,可以用命令设置带宽,一般也就在10M.8M左右. F口是 FastEther ...

最新文章

  1. webView 显示一段 html 代码
  2. GB2312,GBK,UTF-8的关系
  3. jzoj1029-电子眼【树形dp】
  4. JavaOne 2012 – 2400小时! 一些建议
  5. 2013年3月编程语言排行榜:有毒的Java
  6. 【tarjan缩点】受欢迎的牛
  7. div和span标签(HTML)
  8. 查看linux电脑内存free命令,Linux free命令查看内存状态
  9. 【牛客2021暑假多校10】Train Wreck(出栈顺序,建树,优先队列维护)
  10. 学习yii2.0框架阅读代码(九)
  11. 常用的不透明度的值,以黑色为例
  12. SpringBoot单元测试保姆级教程,文末介绍Postman的基本使用
  13. Unity3d之AR小游戏
  14. 矩阵方程的计算求解(Matlab实现)
  15. 微信公众号群发功能的页面元素加载不全的解决办法
  16. AD 绘制原理图库default designator不显示
  17. 室内定位技术及机场方案建议
  18. 太极图形课-01-Taichi编程
  19. 绝绝子!这些技巧真方便
  20. 用dd测试SD卡的读写速度

热门文章

  1. 期货开户无为的趋势跟踪
  2. 数学建模与数据分析 || 3. 面向数据的特征提取方法: 探索性数据分析
  3. 计算机视觉方面的三大国际会议及期刊会议影响因子
  4. CAJ文件如何转换成PDF格式?这一个方法就够用了
  5. 基于Unity3D的体素沙盒游戏设计与实现(上)
  6. 无线遥控发射接收模块简介(SYN480R F115 433M )
  7. 【C++】用一棵红黑树同时封装出map和set
  8. 【项目实战】——USB双路继电器电脑控制灯的开关(Python)
  9. 合规数——合规监管大数据产品 以法律为依据,以数据为准绳
  10. Microsoft Office for Mac 2021 (Office 365) 16.55 Universal