6.软件提供了对flash及EEprom数据区的直接修改功能,对一些有特殊需要的编程提供了方便。
7.“芯片操作”菜单中,“其它操作”提供了对单片机下载程序时采用何种加密方式。 8.此外,在“芯片操作”菜单中提供了独特的“复位目标板芯片”功能,让调试中一旦程序跑飞时直接就可通过ispdown软件进行复位。
1.4 keil环境下仿真调试实例讲解
实例1:单字节十六进制数转换成双字节ASCII码
第一步:分析函数要求
入口条件:待转换的单字节十六进制数在累加器A中。
出口信息:高四位的ASCII码在A中,低四位的ASCII码在B中。 影响资源:PSW、A、B 堆栈需求: 4字节
第二步:建立工程 双击桌面Keil uVision2图标,或者在开始-程序-Keil uVision2中打开keil 集成开发环境。
图3-29打开Keil IDE
新建一个工程,放在D:/code/hasc目录下面,工程名称hasc。并选择MCU为ATmel89c52。
图3-30 建立工程
图3-31 选择器件
第三步:建立程序文件
新建程序文件并保存,命名为hasc.asm。编辑程序如下: HASC: MOV B,A;暂存待转换的单字节十六进制数 LCALL HAS1;转换低四位 XCH A,B;存放低四位的ASCII码 SWAP A;准备转换高四位
HAS1: ANL A,#0FH;将累加器的低四位转换成ASCII码 ADD A,#90H
DA A ADDC A,#40H DA A RET END
第四步:把程序文件添加至工程文件中
在工程窗口中,鼠标右键点击Source Group1,会出现如下菜单,选择ADD Files,选择文件hasc.asm,点击ADD键,然后关闭文件添加窗口。这时,会看到文件已经添加进工程中。
图3-32添加文件
图3-33添加文件成功
第五步:工程设置
由于该程序是一个纯软件算法,只需要软件模拟调试即可,故不需要生成HEX文件。其他选项可以选择默认即可。
图3-34工程项目设置
第六步:编译连接
选择快捷键,或者F7或者菜单Project-build target,对工程项目进行编译。这时可能会出现编译报错:
图3-35编译出错
双击错误信息,可以直接转到程序的错误行上。阅读所给出的错误信息提示,仔细在错误行附件检查。Keil的程序中的字母、符号、数字必须是在英文输入下完成,注释可以是中文的。在写程序的时候,很多学院开始都会对中英文切换弄混,这样在程序里就会产生很多中文的符号如逗号、冒号、分号。这些中文下的符号在编译的时候都会出现错误。上面显示的错误就是在程序的第4行,分号使用了中文下面的分号。对程序的错误进行修改,这个时候可以得到:
图3-36编译成功
这表示程序已经编译通过。 第七步:程序调试:
点击debug菜单栏的start/stop debug session或直接点击快捷图标进入到调试环境。
图3-37开始调试
在工程窗口中修改寄存器A的值,如修改成1F
图3-38修改寄存器
单步运行程序,一边运行一边观察寄存器的变化,当程序运行至XCH A,B时,观察结果
图3-39程序调试观察寄存器
此时可见寄存器A中的值是46H,这是1F中的“F”的ASCII码,继续单步运行程序,注意观察寄存器及PSW的变化情况。当程序运行结束前,可以观察到结果,注意此时A,B寄存器的值已经是最后结果。
图3-40程序调试观察寄存器
第八步:程序的反复调试
由于程序中有各种情况,有的程序有分支,对于不同的条件程序会进入不同的代码段。如果仅仅是调试一个数据是不可取的,该数据可能具有一定的特殊性。多选几个有代表性的数据进行调试,是判断程序正确的必要手段。此程序调试中,我们可以调试“1FH”,“11H”,“F1”,“FF”这几个数据来检验程序。调试过程完全与第七步相同。 第九步:保存 当程序调试完毕后,关闭调试状态,对整个工程项目保存一下,以备以后使用。