综合电子论坛首页 --> 学习资料 --> 综合文献 --> 仿真时工作正常,程序固化后却不能运行?

仿真时工作正常,程序固化后却不能运行?


仿真时工作正常,程序固化后却不能运行?
出现这种情况有以下几种可能性:
(1).用户板的程序块电路有问题:如PSEN不通或接错。地址线高位浮空等(我没遇到过这样的情况,但有文章有过这样的分析)。使用89C51内部程序,但EA未接高电平等。
(2).用户板晶振电路有问题。用户板复位电路不正确。还要注意的是那2个电容,有次我拿错电容(473),结果拿万用表量电压晶振2边是2.5V,但拿示波器一看什么都没有。所以,测晶振2脚电压有时也未必完全准确。
(3)堆栈溢出。8051系列的单片机,有的型号内部有256个RAM,有的只有128个RAM, 现在高级语言编译系统都默认是256个RAM。如果您使用的是128个RAM的型号的芯片, 就应注意堆栈是否会溢出,如果溢出程序就不能运行。如果这种情况,把CPU换成带 256个RAM的型号试试。 (这点是比较重要,和对于初学者容易忽略掉的)
(4)用户系统内有需要复位的接口电路,如8155,8255,8279等,在它们还未完成 复位时,如果CPU就给它们写控制字,就会造成它们工作不正常。这种情况下,CPU 应确保在外设复位后再输出控制字。
(5)程序片烧写不正确,这有以下几种情况: A。格式不对,或者是烧的内容不对 B。光写程序,未写芯片的设置字,如PIC系列,LPC764,80C196的保留字等。这 些设置字中凡是需要用户写的应正确填写,不需要写的应写入“FF”。 最好在烧写时看看烧写器读进来的BUFF,前面是不是02 00 开头。
(6)检验程序片是否烧写正确的方法是,从一片烧好的芯片中读出机器码,并生成机器 码文件,然后让仿真器运行这个机器码文件。如果不能正确运行,应重新烧写程序片。
(7)系统接线有错,造成固化后的程序,不在系统所要求的地址空间内,当然不能运行。 控制脚接,特别是80196系列芯片面,如果READY脚,NMI脚浮空,则也会出现固化后程 序不能运行的现象。 (综合电子论坛)

 *注:部份文章为网上收录供大家共同学习参考之用,并不代表本站意见。如存在版权问题请马上通知我们,我们将马上删除。