什么是准双向口,双向口?
来源:互联网 发布:苏州智科讯优网络 编辑:程序博客网 时间:2024/04/30 13:26
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.
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
- 什么是准双向口,双向口?
- 什么是准双向口,双向口?
- 双向口 与 准双向口 区别
- 单片机双向口与准双向口
- 单片机双向口与准双向口
- 准双向口
- 准双向口和双向口的区别
- 双向口和准双向口操作的不同!
- 单片机准双向口IO详解
- FPGA学习之inout双向口
- 图像配准----双向匹配
- 集电极开路,漏极开路,推挽,上拉电阻,弱上拉,三态门,准双向口
- 双向排序
- 双向链表实列
- 双向容器
- 双向冒泡
- 双向可控硅
- 双向排序
- Node.js 文件系统
- poj 1085 Triangle War
- 结对编程就是两个人用同一个设计、同一个算法以及同一段代码,并且两人的角色可以随时互换;
- JMeter核心抽象
- eclipse中添加mybatis generator插件教程
- 什么是准双向口,双向口?
- stl 中 set容器用法
- css hack
- springMvc架构流程图及常用注解总结
- 看我如何用**.qq.com两位短域名钓鱼收集用户敏感信息(如QQ\密码\密保手机号\身份证)
- OSWAF 的JavaEE实现
- JAVA IO的使用原则及stream 和 reader的区别
- Node.js GET/POST请求
- 【leetcode】【33】Search in Rotated Sorted Array