1、1.问: 仿真调试时, “复位” 是怎么回事? 答:如果仿真系统要求“复位” ,实际上是仿真系统无法工作,出现这种现象的原因有多种,如晶振跳线位置不正确,用户板上无电源,仿真头接触不良,仿真头的选择和仿真系统内的设置不一致等,如果出现这种情况,可以先将仿真头从用户板上拔下,把晶振跳线跳到 1 位置(用仿真头上的晶振),再进入仿真系统。如果正常,则问题在用户板上;否则问题在仿真器设置上。有看门狗(WDT)功能的芯片(如此 80196,PIC系列 ,LPC764 等) ,在仿真时应关闭看门狗功能。否则也会导致“复位” 。 2.问: 仿真时工作正常,程序固化后却不能运行? 答: 出现这种情况有以下几
2、种可能性 : (1)用户板的程序块电路有问题:如 PSEN 不通或接错。电路插座是 2764,但程序块用的是 27128 或27256,地址线高位浮空等。使用 89C51 内部程序,但 EA 未接高电平等。 (2)用户板晶振电路有问题。用户板复位电路不正确。 (3)用户系统内有需要复位的接口电路,如 8155,8255,8279 等,在它们还未完成复位时,这时如果 CPU就给它们写控制字,就会造成它们工作不正常。这种情况下,CPU 应确保在外设复位后再输出控制字。 (4)堆栈溢出。8051 系列的单片机,有的型号内部有 256 个 RAM,有的只有 128 个 RAM,现在高级语言编译系统都默
3、认是 256 个 RAM。如果您使用的是 128 个 RAM 的型号的芯片, 就应注意堆栈是否会溢出,如果溢出程序就不能运行。 如果这种情况,把 CPU 换成带 256 个 RAM 的型号试试。 (5)程序片烧写不正确,这有以下几种情况:A、格式不对,或者是烧的内容不对 B、光写程序,未写芯片的设置字,如 PIC 系列,LPC764,80C196 的保留字等。这些设置字中凡是需要用户写的应正确填写,不需要写的应写入“FF”。 (6)检验程序片是否烧写正确的方法是,从一片烧好的芯片中读出机器码,并生成机器代码文件,然后让仿真器运行这个机器代码文件。如果不能正确运行,应重新烧写程序片。 (7)系统
4、接线有错,造成固化后的程序,不在系统所要求的地址空间内,当然不能运行。 控制脚接,特别对于 80196 系列芯片,如果 READY 脚,NMI 脚浮空,则也会出现固化后程序不能运行的现象。 3.问:调试时为什么不能在源程序上进行? 答:如果源程序文件编译不正确或者链接(LINK)出错, 仿真时就会跳到 CPU 窗口,出现这种现象,就仔细检查编译和链接是否正确。另外,在 PLM 语言中,模块文件的头尾是否与文件名相同,例如,某一模块文件名为 ABC.PLM,则该文件的开始应有 ABC:do; 文件的结束应有 END ABC;,否则也会出现这种现象。 4.问:为什么要采用项目的方式开发程序? 答:
5、项目是用户程序和系统设置的集合,采用项目形式开发,可以大大地减少设置出错,简化操作,便于管理。 5.问: 如何以单个文件的形式进行仿真? 答:以单个文件形式进行仿真的步骤如下:(以 8031 为例) (1)进入 WINDOWS 环境下的伟福仿真系统。 (2)选菜单文件/新建项目,以清除系统当前项目,此时将出现一个空的项目窗口 (3)选菜单文件/打开文件,打开 C:WAVESAMPLESMAIN.ASM 文件。 (4)选菜单仿真器/仿真器设置/CPU, 设置好仿真器,仿真头(POD) ,CPU 的类型。 (5)选菜单仿真器/仿真器设置/目标文件,设置好目标文件的类型和格式。如选择 BIN,HEX 两种格式,源程序编译好,将产生 相应的目标文件,以备烧写程序片用。 (6)如果源程序是高级语言,还需要选菜单仿真器/仿真器设置/语言,以设置相应的语言编译所要求的环境。 (7)选菜单项目/全部编译,对当前源文件进行编译。 (8)如果程序有错,将在信息窗口中指出。 (9)如果没错,则可以按要求进行仿真。