是的,在复位后就相当于写入了1,就可以直接读P口的输入值。
如果程序运行过程中口显得数据被改写过,不能确定是1时,如果想让其做输入口,就得重新写入1.
手打不易,如有帮助请采纳,或点击右上角的满意,谢谢!!
单片机的P口做输入时需要先向端口写1,不写1难道就读不了输入值了吗?
--可以读。
--但是不一定正确。
P口在复位上电时默认都是高电平,与写1后的结果也是一样的。
--是的。
那我是否可以这样理解,我不写1,在复位时也可以读到P口的输入状态值?
--可以。
所以我认为这个写1不是必要的?
--你如果没有写过0,就没有必要再写1。
不写1,程序也能通过,需要先写1可能是为了读取的值更精确。
P1、2、3口复位后是高电平。
如果读之前I/O口向外写过0,那需要写1才能读数据,如果读之前没改动过,则不需要。
但是这个读前写1的动作是cpu自己加上去的,并不需要你在程序里读之前写1,那是画蛇添足。