复位的过程中,全部IO为高,P1.0和ALE当然也是高。这样模拟部分不上电。

那么,ALE的输出角就等效于通过一个二极管向这四块模拟芯片供电!!!(如图)

ALE的输出能力不强,自然,ALE就被拉低了。

在查看51的手册,ALE和/PROG脚是复用的!!

在复位过程中,ALE如果为低,芯片进入编程状态!!!

也就是说,我的系统在上电复位的过程中就进入了PROG编程模式,难怪一条语句都不能执行

那么,也很好解释为什么四个芯片中拔掉一个就能正常工作了,因为负载轻了,ALE可能还没有被拉到2.5V以下,所以正常复位进入程序。

解决的办法:ALE接2K的上拉,再通过47K电阻接到Cd4024上,上电,一切正常!

结论:单片机编程模式/ISP模式是通过用户很不容易出现的一个时序来启动的,在一些特殊应用时要小心避开这些非用户代码模式。

关于控制,MCU就介绍完了,您有什么想法可以联系小编。