51单片机的准双向I/O口在使用前必须进行写1操作,但上电时,单片机默认为高电平,即还需要进行写1操作不?

 我来答
做而论道
高能答主

推荐于2017-12-16 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
51单片机的准双向I/O口在使用前必须进行写1操作,
--只是在《读》IO口之前,需要写1。

但上电时,单片机默认为高电平,即还需要进行写1操作不?
--不用了。

只是当做输入接口来用,才有写 1 这个说法。
写过一次 1 (或复位后自动置 1),就可以正确输入数据了。

但是,如果写了 0,那么,接着输入的数据,将有可能是不准确的。
所以,应该强调的是:《千万不要写 0。》!!!

写 1,完全没有必要这么重视。
因为开机时,自动就写了1。
wolf_lhy
2013-01-18 · TA获得超过6608个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:536万
展开全部
这是一个古老的问题,对于现在的单片机,其实不存在这个问题,但是讲解一下还是好的.
这个要从微电子角度回答:这里,我以P2为例子,其他口一样
单片机的P2口是双向口,就是可以输入,输出,不需要先进行设置,而其他单片机则不然,比如AVR单片机,你想要输出数据,你先要把引脚设置成输出状态,再决定向输出寄存器写0还是1,从而达到输出低电平或者高电平,你想要读入数据,先要把引脚设置成输入状态,再让CPU读输入寄存器.
51单片机是双向口,所以只有一个P2寄存器,不存在P2的输出寄存器或者P2的输入寄存器,只有一个P2.
那么,单片机复位的时候,P2的引脚是高电平,那么P2的寄存器是什么呢?一定是0xFF吗?
不一定,这里涉及两个概念,P2寄存器,P2引脚,所以,先要执行 P2 = 0xFF,这是把P2的寄存器设置成0xFF这时候,同时也是保证了P2寄存器与P2引脚的可靠联通,这样,再读取P2引脚的时候,P2寄存器就能保证与P2引脚一致了.

如果没有这句,有可能P2的引脚虽然是高电平,但是没有与P2寄存器可靠联通,从而误判断,明明P2引脚全是高电平,P2的寄存器却有一个低电平在里面......
当然,随着后续工艺的改进,这个问题在现在的51单片机上几乎不存在了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c3344c
2013-01-18 · TA获得超过2418个赞
知道小有建树答主
回答量:966
采纳率:57%
帮助的人:673万
展开全部
51单片机的准双向I/O口在使用前并不一定要进行写1操作,从来没见过有这方面的硬性规定。根据应用的实际需要,写0也是完全可以的。但上电复位时,单片机确实将IO置1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程小猿厮
2013-01-18 · 超过22用户采纳过TA的回答
知道答主
回答量:196
采纳率:75%
帮助的人:35.8万
展开全部
不用了的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式