希望你能有IO的逻辑电路图,不然想要理解这个问题是真的不容易了
IO做输入时,非门关闭,读入引脚值通过缓冲器读入,其中非门关闭必须要通过输出高电平来实现
不是说输出高电平就叫输入,而输出低电平就叫输入,而是要时IO口读取输入值正确必须通过输出1将非门关闭,否则当非门打开时,直接将IO引脚拉低而为定值,外部的电平就无法影响IO引脚电平了。
其实你观察IO口的逻辑电路就可以发现它是通过锁存器输出而通过一个缓冲器读入的,锁存器反相输出端与缓冲器的输出是用一个CMOS非门电路相连的,当CPU输出为1,锁存器反相输出端为0,从而将非门关闭使得引脚为高电平,既输出与CPU输出一致;而当将其作为 输入引脚时必须先将非门关闭,所以CPU要先输出1。这时候IO电平为高电平,即IO引脚为高电平。显然IO的输入是通过缓冲器进入的,且非门关闭的。