单片机的P口做输入时需要先向端口写1,不写1难道就读不了输入值了吗?

2025年03月19日 04:36
有4个网友回答
网友(1):

是的,在复位后就相当于写入了1,就可以直接读P口的输入值。
如果程序运行过程中口显得数据被改写过,不能确定是1时,如果想让其做输入口,就得重新写入1.
手打不易,如有帮助请采纳,或点击右上角的满意,谢谢!!

网友(2):

单片机的P口做输入时需要先向端口写1,不写1难道就读不了输入值了吗?
--可以读。
--但是不一定正确。

P口在复位上电时默认都是高电平,与写1后的结果也是一样的。
--是的。

那我是否可以这样理解,我不写1,在复位时也可以读到P口的输入状态值?
--可以。

所以我认为这个写1不是必要的?
--你如果没有写过0,就没有必要再写1。

网友(3):

不写1,程序也能通过,需要先写1可能是为了读取的值更精确。

网友(4):

P1、2、3口复位后是高电平。
如果读之前I/O口向外写过0,那需要写1才能读数据,如果读之前没改动过,则不需要。
但是这个读前写1的动作是cpu自己加上去的,并不需要你在程序里读之前写1,那是画蛇添足。