第章KEIL与PROTEUS.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- KEIL PROTEUS
- 资源描述:
-
个人收集整理 勿做商业用途 第2章 µVision2与PROTEUS使用基础 2 2.1 µVision2集成开发环境 2 2。1.1 文件(File)、编辑(Edit)、视图(View) 3 2.1.2 项目(Project)、调试(Debug)、Flash 5 2。1.3 外围器件 (Peripherals)、工具(Tools)、视窗(Window) 6 2。2 用µVision2建立与调试工程 7 2。2。1 工程创建、设置、编译与链接 7 2。2.2 用mVision2调试工程 12 2。2.3 C51程序调试举例说明-—HELLO。C 16 2.2。4 Keil C51的调试技巧及举例 18 2.3 PROTEUS快速入门 22 2.3.1 集成PROTEUS ISIS环境 22 2。3。2 电路原理图设计 27 2.4 PROTEUS仿真工具介绍 34 2。4。1 探针 34 2.4.2 虚拟仪器 35 2.4。3 信号发生器 36 2.4.4 仿真图表 36 2.5 PROTEUS软件中的C51程序运行与调试 37 2。5。1 驱动的安装 38 2。5。2 Keil和PROTEUS的配置 40 2。5.3 Keil和PROTEUS的调试过程 41 本章小结 41 习题 41 第2章 µVision2与PROTEUS使用基础 mµVision2集成开发环境IDE(Integration Design Environment)是一个基于Windows的软件开发平台,包含一个高效的编辑器、一个项目管理器和一个MAKE工具。µVision2支持所有的Keil C51工具,包括C语言编译器(C51)、宏汇编器(A51)、链接/定位器(BL51)、库(LIB51)、目标代码到HXE的转换(OH51)、实时操作系统(RTX51)及调试器(dScope51、 tScope51和Monitor51),可以完成编辑、编译、链接、调试、仿真等整个开发流程。 PROTEUS是英国Labcenter electronics公司研发的EDA工具软件。PROTEUS不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完整的多种型号微控制器(单片机)系统的设计与仿真平台。它真正实现了在计算机上完成从原理图设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。PROTEUS从1989年问世至今,经过了20多年的使用、发展和完善,功能越来越强,性能越来越好。 本章主要介绍µVision2和PROTEUS的应用基础,更详细的介绍请读者参阅有关书籍. 2.1 µVision2集成开发环境 mVision2 IDE是基于Windows的开发平台,开发人员可以用mVision2编辑器或其他编辑器编辑C语言或汇编语言文件,然后分别由C51语言和A51语言编译生成目标文件(。OBJ)。目标文件可由LIB51创建生成库文件(.LIB),也可与库文件一起经L51链接定位生成绝对目标文件(.ABS).绝对目标文件由OH51转换成标准的HEX文件,以供调试器进行源代码级调试,也可由仿真器直接对目标板(用户板)调试,或直接写入程序存储器如EPROM、Flash中进行验证。 在mVision2中,可以通过键盘或鼠标选择开发工具的命令、设置和选项,也可以通过键盘输入程序文本。mVision2集成环境中有菜单栏、可以快速选择命令按钮的工具栏、源代码文件窗口、对话框窗口和信息显示窗口。软件可同时打开和查看多个源文件,通过鼠标或键盘可移动或调整窗口的大小。mVision2界面如图2—1所示。 图2—1 µVision2集成环境 mVision2菜单栏提供了丰富的操作菜单,提供了文件操作、编辑器操作、项目管理、选项设置、程序调试、外部程序执行、窗口管理,以及在线帮助等多项功能。 2。1。1 文件(File)、编辑(Edit)、视图(View) 1.文件菜单(File) 文件菜单项的命令、工具条图标、默认的快捷键及说明描述如表2—1所示。 表2—1 文件菜单(File) File菜单 工具栏 快捷键 描述 New Ctrl+N 创建新的源文件 Open Ctrl+O 打开已存在的文件 Close 关闭当前文件 Save Ctrl+S 保存当前文件 Save All 保存所有文件 Save As 保存并重新命名当前文件 Device Database 维护器件数据库 Print Setup 设置打印机 Print Ctrl+P 打印当前文件 Print Preview 打印预览 1~10 打开最近使用的源文件 Exit 退出mVision2 2.编辑菜单(Edit) 编辑菜单项的命令、工具条图标、默认的快捷键及说明描述如表2—2所示。 表2-2 编辑菜单(Edit) Edit菜单 工具栏 快捷键 描述 Home 移动光标到本行的开始 End 移动光标到本行的末尾 Ctrl+Home 移动光标到当前文件的开始 Ctrl+End 移动光标到当前文件的末尾 Ctrl+ß 移动光标到其前面单词词首 Ctrl+à 移动光标到其后面单词词首 Ctrl+A 选择当前文件全部内容 Undo Ctrl+Z 撤销上次操作 Redo Ctrl+Shift+Z 重复上次操作 Cut Ctrl+X 剪切所选文本 Ctrl+Y 剪切当前行所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V 粘贴 Indent Selected Text 将所选文本向右缩进一个制表符位 Unindent Selected Text 将所选文本向左缩进一个制表符位 Toggle Bookmark Ctrl+F2 设置/取消当前行书签 Goto Next Bookmark F2 移动光标至下一个书签处 Goto Previous Bookmark Shift+F2 移动光标到上一个书签处 Clear All Bookmarks 清除当前文件的所有书签 Find 在当前文件中查找文本 F3 重复查找上次查找文本 Shift+F3 向前重复查找光标所在处文字 Ctrl+F3 向后重复查找光标所在处文字 Replace 替换文本 Find in Files 在多个文件中查找 Goto Matching Brace 选择相匹配的一对大括号、圆括号或方括号所包括的内容 3.视图菜单(View) 视图菜单项的命令、工具条图标及说明描述如表2-3所示。 表2-3 视图菜单(View) 菜单 工具栏 描述 Status Bar 显示/隐藏状态条 File Toolbar 显示/隐藏文件工具栏 Build Toolbar 显示/隐藏编译工具栏 Debug Toolbar 显示/隐藏调试工具栏 Project Window 显示/隐藏项目窗口 Output Window 显示/隐藏输出窗口 Source Browser 打开资源浏览器 Disassembly Window 显示/隐藏反汇编窗口 Watch & Call Stack Window 显示/隐藏观察和堆栈窗口 Memory Window 显示/隐藏 Code Coverage Window 显示/隐藏代码报告窗口 Performance Analyzer Window 显示/隐藏性能分析窗口 Symbol Window 显示/隐藏字符变量窗口 Serial Window #1 显示/隐藏串口1的观察窗口 Serial Window #2 显示/隐藏串口2的观察窗口 Toolbar 显示/隐藏自定义工具栏 Periodic Window Update 程序运行时,周期刷新调试窗口 Workbook Mode 显示/隐藏窗口框架模式 Options 设置颜色、字体、快捷键和编辑器的选项 2。1.2 项目(Project)、调试(Debug)、Flash 1.项目菜单(Project) 项目菜单项的命令、工具条图标、默认的快捷键及说明描述如表2—4所示。 表2—4 项目菜单(Project) 菜单 工具栏 描述 New Project 创建新工程 Import uVision1 Project 导入并转换一个mVision1的工程 Open Project 打开已存在的工程 Close Project 关闭当前的工程 Target Environment 定义工具包含文件和库的路径 Select Device for Target 从器件数据库中选择一个CPU Remove 从工程中删除一个组或文件 Options 设置对象、组或文件的工具选项 Build Target 编译修改过的文件并生成应用 Rebuild all target files 重新编译所有的文件并生成应用 Translate 编译当前文件 Stop build 停止生成应用 1~10 打开最近使用过的工程 2.调试菜单(Debug) 编辑菜单项的命令、工具条图标、默认的快捷键及说明描述如表2—5所示。 表2-5 调试菜单(Debuge) Debug菜单 工具栏 快捷键 描述 Start/Stop Debugging Ctrl +F5 启动/停止调试模式 Go F5 全速运行程序直到激活的断点 Step F11 单步执行进入函数 Step Over F10 单步执行越过函数 Step out of Current Function Ctrl +F11 单步执行跳出当前函数 Run to Cursor Line Ctrl +F10 全速运行程序至光标所在行 Stop Running Esc 停止程序运行 Breakpoints 打开断点对话框 Insert/Disable Breakpoint 在当前行设置/清除断点 Enable/Disable Breakpoint 在当前行使能/禁止断点 Disable All Breakpoint 禁止程序中所有断点 Kill All Breakpoint 清除程序中所有断点 Show Next Statement 显示下一条可执行的语句或指令 Enable/Disable Trace Recording 使能跟踪记录,用于指令的观察 View Trace Records 观察以前执行的指令 Memory Map 打开存储器影像对话框 Performance Analyzer 打开性能分析器的设置对话框 Inline Assembly 对某一行重新汇编,可修改汇编代码 Function Editor 编辑调试函数和调试配置文件 3.Flash菜单及命令(Flash) Flash菜单项的命令、工具条图标及说明描述如表2-6所示。 表2—6 Flash菜单及命令Flash Flash菜单 工具栏 描述 Download 下载程序到Flash Erase 擦除Flash原有程序 Configure Flash Tool 打开Flash配置对话框 2。1。3 外围器件 (Peripherals)、工具(Tools)、视窗(Window) 1.外围器件菜单(Peripherals) 外围器件菜单项的命令、工具条图标及说明描述如表2-7所示。 表2—7 外围器件菜单Peripherals Peripherals菜单 工具栏 描述 Reset CPU 复位CPU Interrupt 打开中断对话框 I/O-Ports 打开I/O对话框 Serial 打开串行口对话框 Timer 打开定时器对话框 对话框的列表和内容由所选择的CPU类型决定,不同类型的CUP的外设不同,该菜单项目也不同,例如有些器件带有A/D、D/A转换等外设资源。 2.工具菜单(Tools) 工具菜单项的命令及说明描述如表2—8所示。 表2-8 工具菜单命令及描述 Tools菜单 描 述 Setup PC-Lint 设置Gimpel Software的PC—Lint程序 Lint 用PC—Lint处理当前编辑的文件 Lint all C Source Files 用PC-Lint处理项目中所有的C源代码文件 Setup Easy—Case 设置Siemens的Easy—Case程序 Start/Stop Easy—Case 运行/停止Siemens的Easy—Case程序 Show File(Line) 用Easy—Case处理当前编辑的文件 Customize Tools Menu 添加用户程序到工具菜单中 3.视窗菜单(Window) 视窗菜单项的命令、工具条图标及说明描述如表2-9所示. 表2—9 视窗菜单及视窗命令 Window菜单 工具栏 描述 Cascade 层叠所有窗口 Tile Horizontally 横向排列窗口(不层叠) Tile Vertically 纵向排列窗口(不层叠) Arrange Icons 排列主框架底部的图标 Split 把激活的窗口拆分为若干窗格 Close All 关闭所有的窗口 1~10 激活选中的窗口 另外,mVision2还有SVCS菜单和帮助菜单,SVCS用来配置软件版本控制系统的命令,帮助菜单可以打开在线帮助手册和技术支持、离线帮助手册及mVisiond2版本号等信息。 2.2 用µVision2建立与调试工程 mVision2集成开发环境有一个工程管理器,使得8051系列单片机应用系统的程序设计更为简单方便.利用mVision2建立的应用项目是多文件模式,所有的文件包括源程序(包括C语言程序、汇编语言程序)、头文件及说明性的技术文档都可以放在工程项目文件里统一管理。 源程序编译通过并不意味着程序执行后就能实现用户的既定目标,可能还隐含着很多看不见的错误,这就需要对源程序进行调试。调试相关的命令在Debug菜单下. 2。2。1 工程创建、设置、编译与链接 1.工程创建 mVision2是一个标准Windows应用程序,直接点击程序图标就可以启动它,mVision2启动后,程序窗口的左边为一个工程管理窗口。该窗口中有3个标签,分别是Files、Rges和Books,分别显示当前项目的文件结构、CPU的工作寄存器和部分特殊功能寄存器,以及所选CPU的附加说明文件,当首次启动mVisions2时,3个标签全是空的。 从mVision2的Project菜单中选择New Project,将打开如图2-2所示的标准的Windows对话框,给将要建立的工程文件起一个名字,并选择合适的存储位置,然后单击“保存"按钮,出现下一个对话框。 这个对话框要求用户选择目标CPU型号,从图中可以看出,Keil支持的CPU种类繁多,几乎所有目前流行的芯片厂家的CPU型号都包含于内。用户可根据实际情况选用的CPU,在器件厂商列表中单击所用器件厂商名字前的“+",展开之后选择对应型号即可。 选择好CPU型号后,会弹出如图2-3所示的对话框,询问用户是添加标准的8051启动文件(STARTUP.A51),单击“是”按钮,启动文件自动添加到工程文件组中。 图2—2 创建新工程对话框 图2-3 启动代码添加对话框 文件STARTUP。A51是8051系列CPU的启动代码,启动代码主要用来对CPU数据存储器进行清零,并初始化硬件和重入函数堆栈指针等.用户也根据自己所用目标硬件来修改启动文件,以适应实际需要。 使用菜单File/New或单击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入源程序代码,然后保存文件。注意保存时必须加上扩展名。源文件的编写也可以使用另外的文本编辑器。 虽然源文件已创建并保存好了,但此时与工程项目并无任何关系,还需要采用下述方式把其添加至项目中。如图2—4所示,右击Project窗口中Files标签页中的“Source Group 1"弹出快捷菜单,单击菜单中的“Add Files to Group 'Group 1’”选项,可打开一个如图2-4所示的对话框,从对话框中选择用户创建的源文件,单击Add按钮即可把其加入之项目中. 图2—4 添加文件对话框 2.工程设置 工程建立好之后,还要对工程进一步的设置,以满足实际需要。mVision2允许为目标硬件及其相关元件设置必要的参数.mVision2还可以设置C51语言编译器、A51汇编器、链接及定位和转换等软件开发工具选项。使用鼠标或键盘可以选择相应的项目或更改选项设置. 在选择“Project/Options for Target”命令弹出的对话框中,可以通过各个选项卡定义目标硬件及所选的所有相关参数。各目标硬件选项卡说明如表2—10所示. 表2-10 目标硬件选项卡说明 选项 描述 Target 定义应用的目标硬件 Output 定义Keil工具的输出文件并让定义生成处理后执行的用户程序 Listing 定义Keil工具输出的所有列表文件 C51 设置C51编译器的特别工具选项,如代码优化或变量分配 A51 设置汇编器的特别工具选项,如宏处理 BL51 Locate 定义不同类型的存储器和存储器的不同段的位置。典型情况下,可选择Memory Layout from Target Dialog 来获得自动设置 BL51 Misc 其他与链接器相关的设置,如告警或存储器指示 Debug Vision2 Debugger的设置 Utilities 文件和文件组的文件信息与特别选项 (1)Target选项 软件默认的选项为目标(Target)选项,可设置的主要参数及其描述如下。 ①Xtal(MHz) Xtal(MHz)用来设置单片机的工作频率,默认值是所选CPU的最高可用的频率值,如果单片机所用晶振是11。0592MHz,那么就在文本框里输入11.0592即可。 ②Use On–chip ROM (0x0–0xFFF) Use On–chip ROM (0x0–0xFFF)是使用片上的Flash ROM。例如,At89c52有8KB的Flash ROM,就要用到这个选项。如果单片机的EA引脚接高电平,要选这个选项;如果单片机的EA接低电平,表示使用外部ROM,那么不要选中该选项。 ③Off–chip Code memory Off–chip Code memory是在片外所接ROM的开始地址和大小,如果没有外接程序存储器,那么不要输入任何数据.假如使用一个片外的ROM,地址从0x8000开始,Size则为外接ROM的大小. ④Off–chip Xdata memory Off–chip Xdata memory可以输入外接的Xdata。例如,接一个片外62256,则可以指定Xdata的起始地址为0x4000,大小为0x8000。 ⑤Code Banking Code Banking是使用Code Banking 技术,Keil C51可以支持程序代码超过64KB的情况,最大可以有2MB的程序代码。如果代码超过64KB,那么就要使用Code Banking技术来支持更多的程序空间。Code Banking支持自动的Bank的切换,它建立一个大型的系统的需求例如,要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术. ⑥Memory Model 单击Memory Model下三角按钮,会有3个选项: lSmall为变量存储在内部RAM里; lCompact为变量存储在外部RAM,使用8 位页间接寻址; lLarge为变量存储在外部RAM里,使用16位间接寻址. 一般使用Small 来存储变量,单片机优先把变量存储在内部RAM里,如果内部RAM 不够才会存到外部RAM中。Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂。Compact模式适用于比较少的外部RAM 的情况。Large 模式是指变量会优先分配到外部RAM中。要注意3种存储方式都支持内部256字节和外部64KB的RAM,区别是变量优先存储在哪里.除非不想把变量存储在内部RAM,才使用后面的Compact、Large模式。因为变量存储在内部RAM里,运算速度比存储在外部RAM 要快的多,大部分的应用都是选择Small的模式. ⑦Code Rom Size 单击Code Rom Size下三角按钮,共有3个选项: lSmall:“Program 2K or less"选项适用于程序存储空间只有2KB 的单片机,所有跳转地址只有2KB,如果代码跳转超过2KB 就会出错。 lCompact:“2K functions,64k program"选项表示每个子函数的程序大小不超过2KB,整个工程可以有64KB的代码。 lLarge:“64K program”选项表示程序或子函数大小都可以大到64KB。使用code bank程度大小还可以更大.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact或Small 的方式,通常情况下一般选择此选项即可。 ⑧Operating 单击Operating下三角按钮有3个选项: lNone选项表示不使用操作系统; lRTX–51 Tiny选项表示使用Tiny 操作系统; lRTX–51 Full 选项表示使用Full 操作系统。 Keil C51提供了Tiny系统,Tiny 是一个多任务操作系统,使用定时器0作为任务切换。一般用11。0592MHz时,切换任务的速度为30ms。如果有10个任务同时运行,那么切换时间为300ms,同时不支持中断系统的任务切换,也没有优先级。因为切换的时间太长,实时性大打折扣,对内部RAM的占用也过多.多任务操作系统一般适合于16位、32位这样的速度更快的CPU。 Keil C51 Full是比Tiny要好一些的系统,但需要用户使用外部RAM,支持中断方式的多任务和任务优先级,但Keil C51里不提供该运行库。 一般情况下不使用操作系统,即该项的默认值为None. (2)Output选项 设置对话框中的“Output”页面. ①Select Folder for Object:单击该按钮可选择编译后目标文件的存储目录,如果不设置,就存储在项目文件的目录里。 ②Name of Executable:设置生成目标文件的名字,默认情况下和项目文件名字一致。目标文件可以生成库或OBJ、HEX等文件格式. ③Create Executable:如果要生成OMF和HEX文件,一般选中Debug Information和Browse Information.选中这两项,才有调试所需要的详细信息,比如要调试C语言程序,如果不选中,调试时无法看到高级语言编写的程序。 ④Create HEX File:选中该项后,编译之后即可生成HEX文件.默认情况下该项未选中。如果要把程序写入硬件必须选中该项,这一点容易被初学者忽视。 ⑤Create Library:选中该项是将生成lib库文件。一般的应用是不生成库文件的。默认情况下该项未选中. ⑥After Make栏中有以下几个选项。 Beep when complete:编译完成后发生蜂鸣声。 Start Debugging:编译完成后即启动调试,一般不选. Run User Program #1,Run User Program #2:设置编译完成后所要运行的其他应用程序。 (3)Listing选项 “Listing”标签页用于调整生成的列表文件选项。 ①Select Folder for Listing 该按钮用来选择列表文件存放目录,默认情况下为项目文件所在目录. 在汇编或编译完成后将生成(*.lst)的列表文件,在链接完成后也可产生(*。m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节。这两个文件可以告诉用户程序中所使用的idata、idata、bit、xdata、code、RAM、ROM等相关信息,以及程序所需要的代码空间。 实际使用中,一般选中“C Compile Listing”下的“Assemble Code”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。 ②C51语言标签页的设置选项 用于对Keil的C编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组。 该选项中的“Level”是优化等级,C51语言在对源程序进行编译时,可以对代码进行9级的优化,默认为第8级,一般无须修改,如果在编译中出现问题,可以尝试降低优化级别。 “Emphasis”是选择编译优先方式,第1项是代码量优化(最终生成的代码量最小),第2项是速度优化(最终生成的代码速度最快),第3项是默认。默认情况下是速度优先,可根据需要更改。 (4)Debug选项 Debug标签页用来设置mVision2调试器,其选项如图2-5所示. 图2—5 Debug选项 从图中可以看出,仿真有两种方式:“Use Simulator”(软件模拟)和“Use:Keil Monitor—51 Driver”(硬件仿真).软件模拟是纯粹的软件仿真,此模式下,不需要实际的目标硬件就可以模拟80C51单片机系列的很多功能,在硬件做好之前,就可以测试和调试嵌入式应用程序。mVision2 可以模拟很多外围部件,包括串行口、外部I/O和定时器。外围部件设置是在从器件数据库选择CPU时选定的. 硬件仿真选项有高级GDI驱动和Keil Monitor-51驱动,运用此功能用户可以把Keil C51嵌入到自己的系统中,从而实现在目标硬件上调试程序.若要使用硬件仿真,则应选择Use选项,并在该栏后的驱动方式选择框内选这时的驱动程序库。 Load Application at Start:选择此选项,Keil会自动装载程序代码。 Go till main:调试C语言程序时可选择此项,PC会自动运行到main程序处. 3.编译与链接 工程建立并设置好后需要对工程进行编译。编译命令位于如图2—6所示Project菜单下,也可单击如图2-7所示的工具栏中的相应按钮。 图2-6 Project菜单中编译命令 图2-7 工具栏中编译命令 如果一个项目包含多个源程序文件,而仅对某一个文件进行了修改,则不用对所有文件编译,仅对修改过的文件进行编译即可,选择Project→Build target()即可。如果要对所有的源程序进行编译,选择Project→Rebuild all target files()即可. 编译之后,如果没有错误,开发环境的下方会显示编译成功的信息,如图2-8所示。 图2-8 编译成功信息 2。2.2 用mVision2调试工程 源程序编译通过并不意味着程序执行后就能实现用户的既定目标,可能还隐含着很多看不见的错误,这就需要对源程序进行调试。调试相关的命令在Debug菜单下。 1.程序执行与断点设置 单击Debug菜单下的Start/Stop Debug()命令,mVision2 会载入应用程序进入调试启动模式。如图2—9所示,mVision2 保持编辑器窗口的布局,并恢复最后一次调试时窗口显示CPU指令,下一条可以执行的语句用黄色箭头标出。 图2—9 调试模式 调试时,编辑器的很多功能仍然可以使用。例如,使用查找命令或纠正程序的错误.程序的源文件在同一窗口显示。mVision2 调试模式和编辑模式有以下的不同点: ①提供Debug菜单和Debug命令; ②不能修改项目结构或工具参数,所有Build命令禁止。 程序调试必须明确两个重要的概念,即单步执行和全速执行。全速执行是指一行程序执行完后接着执行下一行程序,中间没有间断,程序执行速度很快,只能看到程序执行的总体结果,如果程序中存在错误,则难以判断错误的具体位置。单击菜单命令Debug→Go()或快捷键F5,程序全速执行。 单步执行是指每一次执行一行程序,执行完该行程序即停止,等待命令执行下一行程序,可以方便地观察每条程序语句的执行结果,可以依次判断程序错误的具体位置. 单击Debug菜单下的Step()或快捷键F11可以单步执行程序。使用Debug菜单下的Step Over()或快捷键F10可以以过程单步形式执行命令.所谓过程单步,是指将汇编程语言中的子程序或C语言中的函数作为一条语句来执行。 另外,单击Debug菜单下的Step out of Current Function(),单步执行跳出当前函数。单击Debug菜单下的Run to Cursor Line(),全速运行程序至光标所在行。单击Debug菜单下的Stop Running(),程序停止运行。 程序调试时,一些程序必须满足一定的条件才能被执行,如程序中某一变量达到一定的值、按键被按下、有中断产生等事件发生,这些条件发生往往是异步发生或难以预先设定的,这类问题使用单步执行的方法是很难调试的,这时就需要使用程序调试中的另一种重要方法:断点设置。 mVision2可以用几种不同的方法定义断点。在程序代码翻译以前,也可以在编辑源文件时,设置断点。断点可以用以下的方法定义和修改。 ①用工具栏按钮.在Editor编辑器或Disassembly(反汇编)窗口选中代码行,然后单击断点按钮(). ②用快捷菜单的断点命令.在Editor编辑器或Disassembly(反汇编)窗口选中代码行,单击鼠标右键,打开快捷菜单. ③Debug菜单下的Breakpoints对话框可以查看、定义和修改断点设置。这个对话框可以定义不同访问属性的断点。 另外,菜单命令Debug→Enable→Disable Breakpoint()用来开启或暂停光标所在行的断点功能,Debug→Disable All Breakpoint()用来暂停所有的断点,Kill All Breakpoint()用来清除所有的断点设置。 设置好断点后可以全速运行程序,一旦执行到设置断点的程序行即停止运行,可以在此观察相关变量或特殊寄存器的值,以判断确定程序中存在的问题. 2.调试窗口 mVsion2提供了友好的人机交互界面,如图2-10所示,其编译环境包括多个窗口,主要有观察窗口(Watch & Call Stack Window)、存储器窗口(Memory Window)、反汇编窗口(Disassembly Window)、输出窗口(Output Window)和串行窗口(Serial Window)等。启动调试模式后,可以通过菜单View下的命令打开或关闭这些窗口。 图2—10 调试窗口 (1)观察窗口 如图2—11所示,观察窗口可以查看和修改程序变量,并列出当前函数的嵌套调用.观察窗口的内容会在程序停止运行后自动更新。也可以使用View→Periodic Window Update选项,在目标程序运行时自动更新变量的值。如果要在程序运行中或运行后观察某一变量的值,可以在观察窗口中按F2键,然后在文本框中输入相应的变量名字。 图2—11 观察窗口 (2)存储器窗口 存储器窗口能显示各种存储区的内容,如图2—12所示。最多可以通过4个不同的页观察4个不同的存储区.用上下文菜单可以选择输出格式。 图2-12 存储器窗口 在存储器窗口“Address”后的文本框内输入“字母:数字”即可显示相应存储单元的值,其中字母可以是C、D、I和X,分别代表程序存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间和扩展的片外RAM空间;数字表示要显示区域的起始地址。例如,输入“D:50”,即可观察到首址为0x50的片内RAM单元的值。使用View→Periodic Update选项,可以在程序运行时自动更新存储器窗口。该窗口的显示值可以以不同形式显示,如十进制、十六进制、无符号字符型、有符号字符型等。另外,可以改变存储单元的值,改变显示方式和存储单元值的方法是把鼠标置于数值上,单击鼠标右键,在弹出的菜单中选择即可。 (3)反汇编窗口 如图2-13所示,反汇编窗口用源程序和汇编程序的混合代码或汇编代码显示目标应用程序,可以在该窗口进行在线汇编,利用该窗口跟踪已经执行的代码,并在该窗口按汇编代码的方式单步执行。 图2—13 反汇编窗口 如果选择反汇编窗口作为活动窗口,则所有程序的单步执行命令会工作在CPU的指令级,而不是源程序的行。可以用工具栏按钮或上下文菜单命令在选中的文本行上设置或修改断点. 可以使用Debug菜单打开In Line Assembly对话框修改CPU指令.同时允许在调试时在纠正错误或目标程序上进行暂时的改动. (4)串行窗口 mVision2有两个串行窗口,可以用于串行口输入和输出。从仿真CPU输出的串行口数据在这个窗口中显示,而在串行窗口键入的字符将被输入到仿真CPU中,用该窗口可以在没有硬件的情况下用键盘模拟串口通信。 SCON=0x50; //串口模式1,8位 TMOD=0x20; //定时器器1为模式2,8位自动装载 TH1=0xf4; //T1为1200bit/s的装载值,16MHz TL1=0xf4; EA=1; TI=1; TR1=1; (5)工程窗口的寄存器页面 在进入调试模式前,工程窗口的寄存器页面是空白的,进入调试后,此页面就会显示当前仿真状态下寄存器的值,如图2-14所示。 图2—14 工程窗口的寄存器页面 寄存器页面包括了当前的工作寄存器组和一些特殊的寄存器(如累加器A、乘法器B、堆栈寄存器SP、状态寄存器PSW等)。当程序运行改变某一寄存器值时,该寄存器则以反色显示,用鼠标单击后按下F2键,可修改该寄存器的值. 2。2。3 C51程序调试举例说明——HELLO。C HELLO。C是一个样例程序,位于C:\KEIL\C51\EXAMPLES\HELLO\中。这个程序只是将Hello World输出到串行口。整个程序只包含一个源文件HELLO.C。 HELLO的硬件是基于标准的8051CPU的。使用的唯一片内外围器件是串行口。不需要实际的目标CPU,因为mVision2可以模拟程序所需要的展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




第章KEIL与PROTEUS.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2467146.html