版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章51单片机的程序编制与调试7.1Proteus环境中的程序编制与调试7.2KeilμVision中的程序编制与调试7.3Keil与Proteus联调本章小结
本章介绍单片机程序的编制与调试。
本章首先介绍在ProteusISIS环境中单片机程序(汇编)的编制与调试过程;接着介绍了在KeilμVision环境中单片机程序的编制与调试过程;最后介绍了KeilμVision与Proteus联调的有关内容。
通过本章的学习,读者可较快掌握单片机程序的编制与调试。内容提要
ProteusVSM提供了简单的程序编辑器,可用来编制简单的单片机程序。对于不同系列单片机,Proteus提供了相应的编译器,使用时可根据单片机型号和编程语言选择。
Proteus提供的编译器类型如下:
ASEM51:51系列单片机编译器
ASM11:Motorola单片机编译器
AVRASM2:AtmelAVR单片机编译器
MPASM:PIC单片机编译器
MPASMWIN:PIC系列单片机编译器7.1Proteus环境中的程序编制与调试7.1.1源程序编制
1.源程序文件的创建
在ProteusISIS环境中,选择菜单命令Source/Add/RemoveSourceFiles,弹出Add/RemoveSourceCodeFiles对话框,如图7-1所示。图7-1Add/RemoveSourceCodeFiles对话框由图7-1可知,在CodeGenerationTool下拉列表框选择编译器ASEM51,单击“New”按钮,弹出新建程序文件对话框,如图7-2所示。单击“是”按钮可完成汇编程序文件的创建,如图7-3所示。图7-2新建源程序文件对话框图7-3新建源程序文件添加新建源程序文件以后,在ProteusISIS界面的Source菜单下即添加了汇编程序文件“流水灯控制.ASM”,如图7-4所示。图7-4Source菜单下加载的源程序文件
2.编译器的设置
在ProteusISIS环境中,选择菜单命令Source/DefineCodeGenerationTools,弹出Add/RemoveCodeGenerationTools对话框,如图7-5所示。在该对话框中可设置编译以后的目标文件类型(*.HEX)和调试数据文件类型(*.LST)。图7-5Add/RemoveCodeGenerationTools对话框
3.源程序文件的编辑
在Source菜单下,单击“流水灯控制.ASM”,则弹出源程序编辑器,如图7-6所示。在编辑器中编辑汇编程序并存盘。图7-6源程序编辑器7.1.2源程序的编译与调试
1.源程序编译
加载源程序后(在Source菜单下能显示源程序文件),选择菜单命令Source/BuildAll,则完成对源程序的编译,源程序编译日志如图7-7所示。从编译结果可看出,程序编译通过;若程序有错误,则编译时会提示出错信息。编译源程序以后,生成的目标代码文件为:流水灯控制.HEX。图7-7源程序编译日志
2.程序调试
程序调试要在单片机芯片中加载目标代码文件(HEX文件)以后进行,可进行单步、跟踪、设置断点等操作,并能给出调试信息。
(1)放置单片机芯片。在ProteusISIS界面中放置AT89C51单片机,如图7-8所示。图7-8AT89C51单片机
(2)加载目标代码文件。单击AT89C51单片机图标,弹出单片机属性设置对话框,如图7-9所示。在ProgramFile文本框加载HEX文件。图7-9单片机属性设置对话框
图7-10选择右击菜单命令图7-11程序调试窗口图7-11程序调试窗口右上角的六个调试命令按钮的含义分别是:
(RunSimulation):全速运行;
StepOverSourceLine):单步运行,但不进入
子程序;
(StepIntoSourceLine):单步运行,进入子程
序;
(StepOutFromSourceLine):单步运行,从
子程序中跳出;
(RuntoSourceLine):运行到指定的行;
(ToggleBreakpoint):添加/删除断点。通过程序调试,可看出单片机内部资源状态(在Debug菜单下选择)如图7-12所示。内部资源包括内部数据存储器、CPU内部寄存器和特殊功能存储器。图7-12单片机内部资源状态调试程序时,还可通过变量观测窗口(在Debug菜单下选择)观测寄存器的数值变化。变量观测窗口如图7-13所示。随着程序的运行,变量观测窗口中的寄存器的数值随之变化。图7-13变量观测窗口变量观测窗口中的变量添加过程:右击变量观测窗口,选择右击菜单命令AddItems(ByName),弹出AddMemoryItem对话框,如图7-14所示。在该对话框中双击需要的寄存器,便可将该寄存器加至变量观测窗口。
通过程序的原码级调试,可看出单片机内部资源状态的变化。同时单片机的外部状态(相应端口电平)也随之变化,若单片机端口连接有电路,则电路的工作状态也随之变化。这样就实现了单片机的软硬件联调,对于单片机的学习和应用来说非常有帮助。图7-14AddMemoryItem对话框
KeilμVision是集成的程序编制与调试环境,它通过工程来管理文件,而不是单个文件形式。对于单片机控制程序来说,首先建立一个工程文件,用工程文件来管理源程序文件(C程序及汇编程序)、头文件等。在Keil中设计单片机控制程序的步骤如下:7.2KeilμVision中的程序编制与调试
①创建一个工程文件;
②选择目标器件(如Atmel公司的AT89C51单片机);
③为工程项目配置软硬件环境(将单片机初始化程序添加至工程文件);
④创建源程序文件并编制程序代码;
⑤将源程序文件添加至工程文件;
⑥编译调试工程文件,生成目标代码文件(HEX文件或OMF文件)。7.2.1创建工程文件
双击KeilμVision图标,进入Keil编程界面,如图7-15所示。在图7-15中,选择菜单命令Project/NewμVisionProject,弹出工程文件存储对话框,如图7-16所示。图7-15Keil编程界面图7-16工程文件存储对话框图7-17选择目标器件对话框图7-18配置单片机初始化程序对话框图7-19创建工程文件后的Keil界面
注:若源程序为汇编程序,在图7-18中可选择“否”,即不将STARTUP.A51添加至工程文件。若源程序为C语言程序,在图7-18中必须选择“是”,即将STARTUP.A51添加至工程文件,否则编译时会出现提示错误。7.2.2创建源程序文件
在Keil界面选择菜单命令File/New,则弹出源程序编辑器,如图7-20所示,在程序编辑器中编制单片机控制程序并存盘。
注:源程序文件可以是汇编程序文件(存盘时选择AsmSourcefile(*.s*;*.src;*.a*)),也可以是C语言程序(存盘时选择CSourcefile(*.c)),由用户在存盘时选择。图7-20源程序编辑器7.2.3添加源程序文件至工程文件
在工程文件窗口中,单击Target1左边的“+”,弹出树型结构,右击SourceGroup1,选择右击菜单命令AddFilestoGroup’SourceGroup1’anditsFiles,如图7-21所示,从而完成源程序文件的添加。添加结果如图7-22所示。
图7-21添加源程序文件的右击菜单命令
图7-22在工程文件中添加了源程序文件7.2.4程序编译与调试
编译程序之前,首先要设置编译输出文件的格式,然后才能编译与调试。
1.设置输出文件格式
在文件调试工具栏中单击按钮“ ”(OptionsforTarget),弹出OptionsforTarget对话框如图7-23所示。单击Output选项卡,并勾选CreateHEXFile选项(编译输出文件为HEX格式),单击“确定”按钮即可。图7-23OptionsforTarget对话框(设置编译输出文件格式)
2.程序编译
在文件调试工具栏,单击按钮“ ”(RebuildallTargetFiles),完成源程序的编译,编译结果在OutputWindow(输出窗口)中显示,如图7-24所示。从编译结果可看出,程序编译成功,并生成“TEST1.HEX”文件。图7-24源程序的编译结果
3.程序调试
选择菜单命令Debug,弹出Debug下拉菜单,如图7-25所示。
由图7-25可知,通过Debug菜单命令,可对程序进行单步、跟踪、设置断点等操作。随着调试的进行,单片机寄存器的状态随之变化,其变化情况如图7-26所示。图7-25Debug下拉菜单图7-26程序调试时寄存器状态的变化7.2.5单片机硬件电路的设计与程序加载
单片机硬件电路在ProteusISIS环境中设计,在ProteusISIS中调用AT89C51单片机,在单片机属性设置对话框中加载“TEST1.hex”文件,如图7-27所示。单片机控制程序加载以后,即可进行单片机控制系统的仿真运行。图7-27单片机控制程序的加载
前面两节介绍的程序调试都是独立调试,7.1节介绍的是在Proteus环境中进行软硬件调试,7.2节介绍的是在Keil环境中进行软件调试,本节介绍的联调是在两个软件环境中进行联调。7.3Keil与Proteus联调联调是指Proteus开放了软件接口,支持和第三方IDE(集成开发环境,如Keil)的联合调试。联调时Proteus中的硬件电路相当于目标板,从而省却了硬件仿真器,可直接用第三方的IDE调试Proteus中的硬件电路。本节以流水灯控制电路为例,介绍Keil与Proteus联调的过程。7.3.1安装联调插件
联调时,需要安装联调插件Vdmagdi.exe,该软件可在网上下载安装。将其安装至Keil目录下,在安装的过程中选择AGDIDriversforμVision2类型,如图7-28所示。图7-28安装联调插件对话框7.3.2在Keil中创建工程文件并配置联调选项
创建工程文件、源程序文件、设置输出代码格式同7.2节。
联调配置过程为:在文件调试工具栏中单击按钮
“ ”(OptionsforTarget),弹出OptionsforTarget对话框(联调配置对话框),如图7-29所示。单击Debug选项卡,选择Use选项并在后面的下拉列表框中选择ProteusVSMSimulator,单击“确定”按钮即可。图7-29OptionsforTarget对话框(联调配置对话框)7.3.3编译工程文件
编译工程文件并生产HEX代码,编译工程文件的过程同7.2节。
7.3.4在Proteus中创建硬件电路并配置联调选项
在ProteusISIS环境中创建单片机应用电路,如图7-30所示,并加载目标代码“TEST1.HEX”。
图7-30Proteus中创建的单片机应用电路联调配置过程为:在Proteus环境中单击菜单命令Debug,并勾选UseRemoteDebugMonitor,如图7-31所示。图7-31Proteus中配置联调选项7.3.5Keil与Proteus联调
在Keil软件和Proteus软件中均配置联调选项后,可实现联调。同时运行Keil和Proteus,在Keil中加载单片机源程序,在Proteus中加载单片机应用电路(单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论