对标准51而言,在CPU正常工作(在程序控制IO以前),必须是上拉高阻态.大家设计电路通常也是按照这个思路的.CPU内部也是应该用逻辑电路实现的.所以根本不要再外加电路的.如果你的输出确实要求比较高,比如引信触发,那就要有另外的硬件保护电路,即使CPU跑飞也没有问题. ATMEL的89c51就是在启动时候IO设计有缺陷的.89c51在上电时输出=0,但晶体震荡器工作后,却又恢复正常了.我估计他的IO控制逻辑电路是时钟触发的同步电路,不是上电复位的异步触发.所以有问题! PHILIP没有这个问题,好像STC也没有这个问题的.其他几个大品牌的CPU通常都明确上电时候IO的状态的. 所以楼主先说明一下用的是那个CPU,如果是ATMEL的也就不要讨论了,换CPU;如果是PHILIP的,那就是你的程序问题了,和启动代码没有任何关系的. |