MCS-51单片机应用教程 第5章.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 源程序的编辑可以在开发系统的软件包中进行。下面以一个延时程序为例介绍如何在伟福E2000仿真器的软件包中进行源程序的编辑。 (1) 单击WINDOWS界面的[开始]|[程序]|[WAVE for WINDOWS]|[wave],进入伟福软件模拟器选择界面,单击[好]进入编辑器管理窗口。如图5-3所示。 5.2.2 汇编源程序的编辑方法 图5-3 程序编辑器管理窗口 (2) 单击[文件]|[新建文件]或工具栏的[新建文件]图标,进入程序编辑器,编辑器自动为程序取名为“NONAME1”。 (3) 在编辑器中输入并修改程序,注意,字符可以大写或小写,符号和特殊字符必须为英文状态。 (4) 编辑完成后单击[文件]|[保存文件]或[文件]|[另存文件]或工具栏的[保存文件]图标,出现保存对话框或另存对话框,输入文件名TIME1.ASM后,单击[保存]按钮,完成汇编源文件的保存。如图5-4所示。 图5-4 存储窗口 由于单片机只能执行机器语言的程序(目标程序),因此设计者将自己的源程序编写好并以扩展名ASM保存之后,应将源程序编译成目标程序。在编译过程中,能够检验程序的正确性,并能发现源程序中的语法错误和一般性的逻辑错误,但不能检查结构上的错误。如果有错误,汇编程序会报告,指出错误位置及错误类型。程序错误被纠正后,要重新进行编译调试,直至程序汇编无误为止。 5.3 源程序的编译 下面以前面编辑过的程序TIME1.ASM为例说明汇编的过程: (1) 打开已编辑好的源程序TIME1.ASM。 (2) 单击 [项目]|[编译]或按F9键或工具栏的[编译]按钮,如图5-5所示。 图5-5 编译窗口 (3) 编译器开始对源程序进行编译,如果源程序有错误,那么当编译到错误处时,编译会中止并出现提示信息窗口,提示出现错误并报告错误类型和错误出现的位置,如图5-6所示。第一行出现错误并报告错误类型为331: 操作数错。原因就是操作数的“#”使用的是中文格式的“#”。可以直接到编辑窗口修改错误,也可以在信息窗口双击错误提示行,自动转到错误程序行处进行修改(这对于较长的源程序相当有用)。 图5-6 提示信息窗口 (4) 将所有符号和特殊字符错误修改完毕后,再重新进行编译,结果如图5-7所示。发现又出现了错误,第7行出现错误353:符号未定义。原因是被调用的子程序DELAY1不存在,将子程序补上或去掉对子程序DELAY1的调用后再进行编译。这时由于源程序没有错误,将不会出现信息框,编译通过并产生一个扩展名为.HEX和一个扩展名为.LST的文件,并自动与源文件放在同一个目录下。.HEX文件为目标程序文件,可以在调试后写入程序存储器,.LST文件为列表文件,将原文件与对应的目标文件组合在一起,以备查验。 图5-7 信息窗口 对源程序编译形成目标程序,只是排除了语法错误和一般性的逻辑错误,只有将目标程序应用到目标样机中,经过仿真调试满足功能要求才能最后写到程序存储器中。仿真调试是对程序功能是否能实现所做的最后检查。 5.4 程序的仿真调试 对于模块结构程序,要逐个模块分别调试。调试模块时,一定要符合现场环境,即符合入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU内部资源状态、RAM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。 5.4.1 仿真调试的一般步骤 通过检查,可以发现程序中的死循环错误、转移地址错误、用户系统中的硬件故障、软件算法及硬件设计的错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过各个程序模块。各程序模块通过后,可以把有关的功能模块联合起来一起进行整体程序的综合调试。若在这阶段发生故障,可以考虑各子程序在运行时是否破坏现场、缓冲单元是否发生冲突、标志位的建立和清除在设计上是否有失误、堆栈区域是否有溢出、输入设备的状态是否正常,等等。 单步和断点调试后,还应进行程序连续运行调试。这是因为单步运行只能检验程序的正确与否,而不能确定定时精度和CPU的实时响应等问题。待全部调试完成后,应反复运行多次。此时,除了观察稳定性外,还要观察用户系统的操作是否符合原始设计要求以及安排的用户操作是否合理等,必要时还要作适当修正。 实时多任务控制系统的调试方法与上述方法有很多相似之处,只是实时多任务控制系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试。在调试

文档评论(0)

精品天地 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档