我用的咱们公司的star系列仿真器,仿真时工作正常,程序固化后却不能运行?这是什么原因呢?
回复:
可能是下面原因造成的: 1、 用户系统晶体振荡电路有问题,复位电路有问题。 2、 用户系统电路有问题 1)从CPU到EPROM间电路有问题,CPU的/EA是否正确接地或高电平。 2)对于MCS196类CPU,NMI、RESET引脚不能浮空。 3、 如果用户系统中,除CPU外,还有如8155、8255等需要复位的芯片,请在程序最前边加上一段延时(如500ms),以确保8155等已完成复位,然后对它们初始化。 4、 堆栈问题 对于MCS51类CPU,有的有256个内部RAM,有的只有128个内部RAM,而编译软件通常默认为256个内部,如果您使用128个内部RAM的CPU,应注意内部RAM的使用情况(在m51文件中),注意堆栈是否溢出,变量是否在后128个内部RAM中。您可以选用一片有256个内部RAM的CPU试一下。对于MCS196类CPU,程序的第一条指令最好是对SP赋值(偶地址),因为复位后,CPU的SP值是一个随机值。 5、 芯片烧写不正确 ,如MCS196类CPU的CCR等不正确;内容不对或烧写的位置不对。您可以从芯片内读出机器码,形成代码文件,把它装入仿真器,如果不能正确运行,这芯片有问题。
|