最佳答案 - 由提问者11个月前选出
答: 出现这种情况有以下几种可能性 :
(1)用户板的程序块电路有问题:如PSEN不通或接错。电路插座是2764,但程序块用的是27128或27256,地址线高位浮空等。使用89C51内部程序,但EA未接高电平等。
(2)用户板晶振电路有问题。用户板复位电路不正确。
(3)用户系统内有需要复位的接口电路,如8155,8255,8279等,在它们还未完成复位时,这时如果CPU就给它们写控制字,就会造成它们工作不正常。这种情况下,CPU 应确保在外设复位后再输出控制字。
(4)堆栈溢出。8051系列的单片机,有的型号内部有256个RAM,有的只有128个RAM,现在高级语言编译系统都默认是256个 RAM。如果您使用的是128个RAM的型号的芯片, 就应注意堆栈是否会溢出,如果溢出程序就不能运行。 如果这种情况,把CPU换成带256个RAM的型号试试。
(5)程序片烧写不正确,这有以下几种情况:A、格式不对,或者是烧的内容不对 B、光写程序,未写芯片的设置字,如PIC系列,LPC764,80C196的保留字等。这些设置字中凡是需要用户写的应正确填写,不需要写的应写入“FF”。
(6)检验程序片是否烧写正确的方法是,从一片烧好的芯片中读出机器码,并生成机器代码文件,然后让仿真器运行这个机器代码文件。如果不能正确运行,应重新烧写程序片。
(7)系统接线有错,造成固化后的程序,不在系统所要求的地址空间内,当然不能运行。 控制脚接,特别对于80196系列芯片,如果READY脚,NMI脚浮空,则也会出现固化后程序不能运行的现象。