如何调试单片机程序的步骤详解
21ic 2024-08-26

单片机以其体积小、重量轻、价格低及功能强等特点得到了广泛的应用,但单片机上一般仅集成 CPU 、RAM 和 I/O 接口,而无用户接口 (键盘和显示器) 及监控程序,因而单片机自身无编程功能,必须依赖单片机开发工具(又称单片机仿真器)。单片机开发工具有输入程序、编辑程序和调试程序的功能,目前国内使用较多的有 WAVE 、KeilC、MedWin 等,在此就 WAVE 仿真器作一简介。

WAVE(伟福) 仿真器支持多类 CPU 仿真,可仿真 MCS 51 系列 、MCS 196 系列、 Microchip PIC 系列 CPU 。采用双 CPU 结构,不占用户资源。软件将编辑器、编译器、调试器集成在一起,源程序编辑、编译、下载、调试可以在一个环境下完成。调试程序时,可以观察到寄存器、RAM 、外部端口 、定时器 、串行口中断 、外部中断等相关状态,有丰富 的窗口显示方式,可动态地展示仿真的各种过程。其调试程序的过程如下:

1. 建立程序

选择[文件/新建文件] 功能 ,出现一个文件名为 NONAME1 的源程序窗口,在此窗口中输入程序。

2 .保存程序

选择[文件/保存文件] 或[文件/另存为] 功 能,给出文件所要保存的位置,例如,C:\ VW\SAMPLES 文件夹,再给出文件名 MY1.ASM 。保存文件。文件保存后,程序窗口上文件名为:保存文件所在路径 C:\WAVE2000\SAMPLES\MY1.ASM 。

3. 建立项目

选择[文件/新建项目] 功能,新建项目会自动分三步进行。

(1) 加入模块文件。在加入模块文件的对话框中选择刚才保存的文件 MY1.ASM,按 打开键。

(2) 加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件。如果没有包含文件,按取消键。

(3) 保存项目。在保存项目对话框中输入项目名称。MY1 无须加后缀,软件会自动将 后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择[窗口/项目窗口]功能来打开。可以通过仿真器设置快捷键或双击项目窗口第一行选择仿真器和要仿真的单片机。

4. 设置项目

选择[设置/仿真器设置] 功能或按“仿真器设置”快捷 图标或双击项目窗口的第一行来打开“仿真器设置”对话框,在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”可选择为“伟福汇编器”。按“好”键确定 ,当仿真器设置好后,可再次保存项目。

5 .编译程序

选择[项目/编译] 功能或按编译快捷图标或 F9 键编译项目。在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,在源程序 中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了。

6 .单步调试程序

选择[执行/跟踪] 功能或按跟踪快捷图标或按 F7 键进行单步跟踪调试程序,单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。观察程序每步执行的结果,如果程序太长可设置断点:将光标移至此行并将光标移到源程序窗口的左边灰色区,光标变成“手指圈”,单击左键设置断点。也可以用弹出的[设置/取消断点] 功能 或用 Ctrl+F8 组合键设置断点。有效断点的图标为“红 圆绿钩”,无效断点的图标为“红 圆 黄叉”。断点设置好后,用[全速执行]功能全速执行程序。当程序执行到断点时,会暂停下来,这时可以观察程序中各变量的值及各端口的状态,判断程序是否正确。

7 .连接硬件仿真

将仿真器通过 USB 电缆连接到计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。参见第 4 步,设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的钩去掉,按 “好”键确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现[硬件仿真]的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。如果仿真器初始化过程中 有错,软件就会再次出现仿真器设置对话框,这时应检查仿真器、仿真器的选择是否有错,硬件接线是否有错,检查纠正错误后,再次确认。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 单片机时序图基础知识

    单片机是通过什么样的办法进行取指令,执行指令和其它操作的呢?在这里引入了一个时序的概念。

    09-13
  • 数字滤波器在实际工程中的应用有哪些?

    数字滤波器可以分为两大部分:即经典滤波器和现代滤波器。经典滤波器就是假定输入信号x(n)中的有用成分和希望滤除成分分别位于不同的频带,因而我们通过一个线性系统就可以对噪声进行滤除,如果噪声和信号的频谱相...

    09-12
  • HDLC数据链路控制协议的三种操作方式

    HDLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是某站点以主站方式操作,还是以从站方式操作,或者是二者兼备。在链路上用于控制目的站称为主站,其...

    09-12
  • 钽电解电容器在未来的发展方向是什么?

    继电器有很多具体的类型,比如干簧继电器、电磁继电器、计数继电器等等。为增进大家对继电器的认识,本文将对计数继电器、计数继电器的替代方法予以介绍。如果你对继电器或者对计数继电器具有兴趣,不妨和小编一起...

    09-12
  • MCU芯片在智能设备中的应用

    芯片对于各个企业、各个国家的发展来说,都是非常重要的一环。目前,各个国家都在积极地发展芯片行业。为增进大家对芯片的认识,本文将对MCU芯片、MCU芯片技术原理以及MCU芯片的应用予以介绍。如果你对芯片具有兴趣...

    09-12
  • 总结51单片机的汇编指令

    你会这些方法吗?

    09-06
  • 轮式移动机器人控制系统的硬件设计要点

    1 引言 轮式移动机器人是机器人研究领域的一项重要内容,它集机械、电子、检测技术与智能控制于一体,是一个典型的智能控制系统。智能机器人比赛集高科技、娱乐、竞技于一体,已成为国际上广泛开展的高技术对抗活动...

    09-04
  • 如何利用嵌入式系统技术优化排爆机器人

    排爆机器人(EOD robot)是一种遥操作地面移动机器人,操作机主体一般是由一个机械手和一个可移动平台组成,主要用于拆除疑似爆炸物品,以减少作业现场人员伤亡,是军警部门必须装备的设施。目前国际上主要流行美国Remote...

    09-04
  • MSP430单片机与其他单片机的比较

    1 引言 液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代[1]。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量...

    09-04
  • 分得清自动驾驶中的DCU、MCU、MPU、SOC吗?

    本文探讨自动驾驶中的DCU、MCU和MPU在电子电气架构中的作用,比较了分布式与集中式架构的优势,以及ADAS系统从L0-L2+的发展历程。

    09-04
下载排行榜
更多
评测报告
更多
广告