伟福仿真快速入门
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、设置项目
选择菜单【设置】 仿真器设置, 选择菜单【设置】/仿真器设置, 打开“仿真 器设置”对话框。 在“仿真器”栏中,选择仿真器类型和配 置的仿真头以及所要仿真的单片机。在 “语言”栏中,“编译器选择”根据本例 的程序选择为“伟福汇编器”。
第二章
辽宁科技大学 高职学院 刘莉
4、编译你的程序
设置或取消断点 执行到光标所在行
在代码中放置断点的方法是事先将光标移动到用 户希望放置断点的文本行位置时。
第二章 辽宁科技大学 高职学院 刘莉
查看变量
观察窗口 数据窗口 程序空间窗口 内部数据 外部数据
通过添加观察菜单可以将用户希望观察的变量 添加到观察窗口中,长期进行观察。程序在单 步或断点停下时,将更新变量的取值。
第二章
辽宁科技大学 高职学院 刘莉
Result equ 20h org 0 ljmp Start BinToBCD: mov b, #100 div ab mov Result, a mov a, b mov b, #10 div ab
; 除以 100, 得百位数
第二章
辽宁科技大学 高职学院 刘莉
第二章 辽宁科技大学 高职学院 刘莉
(2)P1口的8盏灯循环点亮 P1口的 口的8 Loop: mov a, #01h mov r2, #8 Output: mov P1, a rl a call Delay djnz r2, Output ljmp Loop
第二章
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
选择菜单【项目】 编译,编译你的项目。 选择菜单【项目】/编译,编译你的项目。 在编译过程中,如果有错可以在信息窗口 中显示出来,双击错误信息,可以在源程 序中定位所在行。纠正错误后,再次编译 直到没有错误。在编译之前,软件会自动 将项目和程序存盘。在编译没有错误后, 就可调试程序了,首先我们来单步跟踪调 试程序。
通过型单步
通过型单步仅执行下一条源语句程序,然后又停止。如果是调用一 函数,运行完整个函数并停止在函数返回处。
第二章
辽宁科技大学 高职学院 刘莉
断点调试
如果已知程序中某块代码实际运行正常的情况下,仍用跟 踪调试方法,将大大浪费时间,因此调试中第二个重要工 具是在源代码中预定处设置断点,大多数调试程序通过使 用断点终止程序执行。 软件提供以下方法来设置断点达到终止程序执行的目的:
第二章
辽宁科技大学 高职学院 刘莉
我们现在用硬件仿真方式来调试这个程序, 因为程序是对P1端口加一操作,我们可以 因为程序是对P1端口加一操作,我们可以 打开外设的端口来观察P1口。方法是选择 打开外设的端口来观察P1口。方法是选择 主菜单【外设】 主菜单【外设】/端口,打开端口窗口。重 新编译程序,全速执行程序,因为有断点, 程序会暂停在断点处。我们观察端口窗口 的P1口值,会发生变化。再次全速运行, P1口值,会发生变化。再次全速运行, 观察P1口的变化。同时也可以用电压表去 观察P1口的变化。同时也可以用电压表去 测量P1管脚,可以看到P1管脚也随之发生 测量P1管脚,可以看到P1管脚也随之发生 变化。点击端口窗口的P1口的白框来改变 变化。点击端口窗口的P1口的白框来改变 P1口值,再次运行程序,P1从改变后的值 P1口值,再次运行程序,P1从改变后的值 加1.(P1口的值也可以从SFR窗口观察、 1.(P1口的值也可以从SFR窗口观察、 修改)。
本例是将P1端口加一,然后延时,再重复, 本例是将P1端口加一,然后延时,再重复, 这样若P1就是一个二进制加法器,若P1口 这样若P1就是一个二进制加法器,若P1口 接发光二极管,就会闪亮。不过到此为止, 我们都是用软件模拟方式来调试程序,如 果想要用仿真器硬件仿真。就要连接上仿 真器。
第二章
辽宁科技大学 高职学院 刘莉
跟踪调试
跟踪应用程序使用户能够在运行应用程序时,看到PC指针在应用 跟踪应用程序使用户能够在运行应用程序时,看到PC指针在应用 程序中的确切位置,伟福提供以下方法对程序的执行进行跟踪:
跟踪型单步
跟踪型单步仅执行一条源语句程序。但是,如果调用一函数,则进 入函数中,在执行函数的第一条源语句行前停止。
第二章
辽宁科技大学 高职学院 刘莉
没关系,我们有“执行到光标处”的 功能,将光标移动到程序想要暂停的 功能,将光标移动到程序想要暂停的 地方, 地方,本例中为延时子程序返回后的 LOOP”行 选择菜单【执行】 “SJMP LOOP”行。选择菜单【执行】 \执行到光标处,程序全速执行到光标 执行到光标处, 所在行。 所在行。如果想下次不想单步调试 “DELAY”延时子程序里的内容,可以 DELAY”延时子程序里的内容,可以 按F8 F8 F8F8F8F8F8F8F8F……是不 F8F8F8F8F8F8F8F……是不 是太烦了?那就移动光标到暂停行再 按F4,如果程序太长,每次这样移来 F4,如果程序太长,每次这样移来 移去,是不是也太累?那就设置断点 吧。
伟福软件调试
调试是编程的重要部分,调试的目的是找到程序 的逻辑错误。 一、调试界面 伟福是一个集成开发环境,调试、编辑和编译都 在同一界面下完成 二、调试主要方法和技巧通常一个调试程序应该具 备至少四种性能: 1、跟踪调试 2、断点调试 3、查看变量 4、更改数值 辽宁科技大学 高职学院 刘莉 第二章
第二章
辽宁科技大学 高职学院 刘莉
程序编译
检查源文件语法错误,如果没有语法错误, 编译器将生成源文件的目标代码。 如果有错可以在信息窗口中显示出来,双 击错误信息,可以在源程序中定位所在行。 在编译没有错误后,就可调试程序了
第二章
辽宁科技大学 高职学院 刘莉
单步调试程序
选择
第二章
辽宁科技大学 高职学院 刘莉
6、 连接硬件仿真 将仿真器通过串行电缆连接计算机上, 检查接线是否有误,确信没有接错后,接 上电源,打开仿真器的电源开关。参见第 三步,设置项目,在“仿真器”和“通信 设置”栏的下方有“使用伟福软件模拟
第二章
辽宁科技大学 高职学院 刘莉
器”的选择项。将其前面框内的勾去掉。在通 信设置中选择正确的串行口。按“好”确认。 如果仿真器设置正确,并且硬件连接没有 错误,就会出现如图的“硬件仿真对话框”, 如果仿真器初始化过程中有错,软件就会再次 出现仿真器对话框,这时你应检查仿真器、仿 真器的选择是否有错,硬件接线是否有错,检 查纠正错误后,再次确认。直至显示如图的硬 件仿真确认对。
第二章 辽宁科技大学 高职学院 刘莉
org 0000h ljmp start org 0100h start: mov r0,#20h mov dptr,#0000h mov r2,#10h mov a,#00h loop: mov @r0,a movx @dptr,a inc a inc r0 inc dptr djnz r2,loop sjmp $
第二章 辽宁科技大学 高职学院 刘莉
设置断点
将光标移动源程序窗口的左边灰色区,光 标变成“手指圈”,单击左侧设置断点, 断点设置好后,就可以用全速执行的功能, 全速执行程序,当程序执行到断点时,会 暂停下来,这时你可以观察程序中各变量 的值,及各端口的状态,判断程序是否正 确。
第二章
辽宁科技大学 高职学院 刘莉
第二章 辽宁科技大学 高职学院 刘莉
延时子程序: 延时子程序: Delay: mov r6, #0 mov r7, #0 DelayLoop: djnz r6, DelayLoop ; 内环:1ms (6M晶振) 内环: (6M晶振 晶振) djnz r7, DelayLoop ; 外环:约260ms 外环: ret end
第二章
辽宁科技大学 高职学院 刘莉
快速入门
完成一个单片机应用系统软件的设计,一 般要经过软件流程设计, 程序编写、 程序编译、 程序调试、 程序修改、 程序再编译再调试等反复的过程,
第二章
辽宁科技大学 高职学院 刘莉
1、建立你的新程序
选择菜单【文件】 选择菜单【文件】/新建文件
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程 出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程 序 ORG 0000H MOV A, #0 MOV P1, #0 LOOP: INC P1;p1加1 P1;p1加 CALL DELAY;调用延时子程序 DELAY;调用延时子程序 SJMP LOOP;转移到LOOP LOOP;转移到LOOP DELAY: MOV R2, #3;计数器赋初值 #3;计数器赋初值 MOV R1,#0;计数器赋初值 R1,#0;计数器赋初值 DLP: DJNZ R0, DLP ;R0减1不为零转移到DLP R0减 不为零转移到DLP DJNZ R1, DLP;R1减1不为零转移到DLP DLP;R1减 不为零转移到DLP RET;子程序返回 RET;子程序返回 END;程序结束 END;程序结束 现在将此文件存盘
第二章 辽宁科技大学 高职学院 刘莉
5、单步调试程序
选择【执行】 跟踪, 选择【执行】/跟踪,进行单步跟踪调试 程序。 程序。 单步跟踪就一条指令一条指令地执行程序, 若有子程序调用,也会跟踪到子程序中去。 你可以观察程序每步执行的结果,“=>” 所指的就是下次将要执行的程序指令。此 行产生了可以执行的机器指令。程序单步 跟踪到”DELAY”延时子程序中, 跟踪到”DELAY”延时子程序中,
470 P1.2 74LS245
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
ቤተ መጻሕፍቲ ባይዱ
(3)延时子程序(约1s) 延时子程序( 1s) DELAY: DELAY:MOV R5,#5 R5, D1:MOV R6,#200 D1: R6, D2:MOV R7,#250 D2: R7, D3:DJNZ R7,D3;1ms D3: R7,D3; DJNZ R6,D2;约0.2s R6,D2; DJNZ R5,D1;约1s R5,D1; RET
第二章 辽宁科技大学 高职学院 刘莉
2、保存你的程序
选择菜单【文件】 选择菜单【文件】/保存文件 例如 文件名MY1.ASM, 文件保存后,程序 文件名MY1.ASM, 窗口上文件名变成了: C:\WAVE6000\SAMPLES\MY1.ASM C:\WAVE6000\SAMPLES\
第二章
辽宁科技大学 高职学院 刘莉
mov Result+1, a
; 余数除以 10, 得十位数 ; 余数为个位数
mov Result+2, b ret Start: mov sp, #40h mov a, #123 call BinToBCD ljmp $ end
第二章
辽宁科技大学 高职学院 刘莉
ORG 0000H LJMP START ORG 0003H ; /INT0中断入口地址 LJMP INT0 ORG 0040H START: MOV SP, #60H SETB EX0 ;INT0 ;INT0中断有效 SETB EA ; 允许中断 MOV TCON, #00H ; INT0为电平触发 LOOP3: LCALL DELAY ; 调延时子程序 CPL P1.7 ;使用L8监视延时时间 SJMP LOOP3 ;返回LOOP3等待中断
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
程序调试
检查源文件逻辑错误 1、跟踪调试 2、断点调试 3、查看变量 4、更改数值
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
辽宁科技大学 高职学院 刘莉
第二章
第二章 辽宁科技大学 高职学院 刘莉
在程序行的“R0”的值,观察一下“R0”的 在程序行的“R0”的值,观察一下“R0”的 值,可以看到“R0” 值,可以看到“R0” 在逐渐减少。因为当前指令要执行256次才 在逐渐减少。因为当前指令要执行256次才 到下一步,整个延时子程序要单步执行 3×256次才能完成,单步执行太慢了! 256次才能完成,单步执行太慢了!