单片机 独立式按键时的一个程序 P2=0xff 书上解释为 置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单片机上几乎不存在了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-29
你的单片机应该是不带推挽输出功能的51,这样io口结构为上拉电阻加下拉的n管。Px置0时开n管强下拉,置1时开上拉电阻弱上拉。所以作为输入时,应置1
第2个回答  2012-12-29
因为单片机基本上都是开漏极或开集电极输出的,再配合上拉电阻(内置或外置),以实现高低电平的输出。所以在使用单片机的时候,多数情况是,低电平有效的,当需要将某端口设为输入端时,必须先将其置1。
供参考。