zhu070 发表于 2013-8-3 08:52 
我现在是通过按键中断,在中断程序中,将P1^1口置高电平。我在想,是每次进入中断后都执行P1^1 = 1,还是判 ...
你不是黄金圣斗士,不可能以光速按键,所以按键是一个频率很低的事情,所以你可以每次都置。如果考虑到51是准双向口,如果编译器采用了读修改写整个端口的方式,可能造成有的脚被意外修改,你可以落实一下汇编的端口位操作是否只针对单个口,是的话,就用在线汇编来写,不是的话,在RAM里用一个变量保存端口状态,先在RAM里修改了,再送出端口。
反复操作要看是哪种单片机,51这种端口,越操作越危险,近代的其他单片机都有锁存器,有的还有回读的Latch寄存器,就不存在这个风险。所以没有什么方案是最优的,只有自己搞懂才行。
另外,说外部干扰要强到影响片内寄存器的程度,估计旁边的人都已经挂了,搞开发不能想当然。
|