独闷闷网

 找回密码
 立即注册
搜索
查看: 3252|回复: 0
打印 上一主题 下一主题
收起左侧

[原创] 为什么51单片机的IO口在读取数据时要先写1?已解答。

[复制链接]
跳转到指定楼层
楼主
发表于 2016-1-27 15:29:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沐风-合肥:
为什么51单片机的IO口在读取数据时要先写1?

★坚鸿-深圳:
51的IO口都是靠上拉电阻输出高电平的,所以它的输出电流很小,驱动能力弱。你可以理解成,当你写0时内部某个开关闭合可以把上拉电阻制造出来的高电平强制拉低。但是当你写1时,相当于内部断开了某个开关所以悬空了所以这时上拉电阻就起作用了并且输出高电平,同时这个高电平是上拉电阻制造的,所以也有可能被你外部的电路拉低而且不会出现短路大电流的情况。并不是所有的单片机都要在读IO口时写1。PIC,stm8,stm32这类单片机读IO状态不用写1,因为它们不是准双向口,它们是真双向口。有兴趣你可百度查查“准双向口”,看看它内部的结构。另外要提醒一下,51单片机的P0口要自己在外面加上拉电阻,P1,P2,P3口读IO口状态时要先写1,但是P0口再读IO口状态时不用写1,P0口跟其它的P1,P2,P3口结构上有点不一样,但是P0口你先写1再读也没关系。

乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-11-29 20:53 , Processed in 0.166424 second(s), 18 queries .

快速回复 返回顶部 返回列表