本人初学单片机,在学习外部中断和键盘时候,有问题一直想不通。
1.51单片机的I/o口,其实就是对应的一些寄存器,每个寄存器八位。
2.51单片机在通电后,I/o口默认都是高电平,也就是对应寄存器各个位都是1,如果在外部接上的器件的话,输出的都是高电平。
3.在程序中,对某个位赋值,比如语句P1.0 = 0,这时候寄存器相应位位就变成了0。
4.而对于外部的动作,比如某个引脚P2.4,通了一个低电平(比如按键,或者是外部中断),这时就应该也是相应寄存器的位会发生变化,我在程序中也是检测这种变化做出相应处理,但是,当外部接入的电平断开后,为什么该引脚的电平(或者说是相应寄存器的相应位)会恢复成原来的高电平呢,之前不是寄存器的值已经改变了呢,怎么会变回来?
希望高手帮忙看看,问题出在哪里,或是哪一条其实是想错了,出了偏差,帮忙指正一下,万分感激!