ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:516.72KB ,
资源ID:14307181      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14307181.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(KeiluVision入门程序调试入门.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

KeiluVision入门程序调试入门.docx

1、KeiluVision入门程序调试入门KeiluVision入门2-程序调试入门 作者: 日期: keil教程KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者看很多教程都是一头雾水,这个相对简单的教程。KEIL C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度.C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 Keil C51 软件是众多单片机应用开发的优

2、秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用.下面介绍Keil C51软件的使用方法,这应该算一个入门教程,奉献给大家,本人建议结合HZC51 豪智单片机学习板实现边学边用进入 Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界启动Keil C51时的屏幕进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。 1)建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Pro

3、ject选项 2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51 如下图所示,然后点击保存. 3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。 4)完成上一步骤后,屏幕如下图所示 到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。5)在下图中,单击“File菜单,再在下拉菜单中单击“New”选项 新建文件后屏幕如下图所

4、示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用语言编写程序,则扩展名为(。c);如果用汇编语言编写程序,则扩展名必须为(.asm).然后,单击“保存”按钮。 6)回到编辑界面后,单击“Target 1”前面的“”号,然后在“Source Group 1上单击右键,弹出如下菜单 然后单击“Add File to Group Source Group 1 屏幕如下图所示 选中Tes

5、t。c,然后单击“Add”屏幕好下图所示 注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同 7)现在,请输入如下的C语言源程序: include reg52。h /包含文件include stdio。h void main(void) /主函数SCON=0x52; TMOD=0x20; TH1=0xf3; TR1=1; /此行及以上3行为PRINTF函数所必须printf(“Hello I am KEIL. n”); /打印程序执行的信息printf(“I will be your friend.n”); while(1);

6、 在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如下图所示 8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),屏幕如下所示 9)调试程序:在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debu

7、g”菜单,在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc);再单击“View菜单,再在下拉菜单中单击“Serial Windows 1”选项,就可以看到程序运行后的结果,其结果如下图所示至此,我们在Keil C51上做了一个完整工程的全过程。但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢? 10)单击“Project菜单,再在下拉菜单中单击“ ” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载器软件使用.把程序下载到AT89S51单片机中。 这还只是一个简单的列子,以后我还会向大家共享

8、keil的学习资料Keil教程(1)Keil 工程文件的建立、设置与目标文件的获得单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了.机器汇编是通过汇编软件将源程序变为机器码,用于 MCS51 单片机的汇编 软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级 语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供

9、了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以 上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统.掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如 果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、 而你买的仿真机也很可能只支持该软件),即使不使用 C 语言而仅用汇编语言编程,其方便 易用的集成环境、强大的

10、软件仿真调试工具也会令你事半功倍。文档为个人收集整理,来源于网络我们将通过一些实例来学习 Keil 软件的使用,在这一部份我们将学习如何输入源程序, 建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图 1 所示电路图使用89C51 单片机作为主芯片,这种单片机性属于 MCS51 系列,其内部有 4K 的 FLASH ROM,可以反复擦写,非常适于做实验。89C51 的 P1 引脚上接 8 个发光二极管,P3。2P3。4 引脚上接 4 个按钮开关,我们的第一个任务是让接在 P1 引脚上的发光二极管依次循环点亮。一、Keil 工程的建立首先启动 Keil 软件的集成开发环境,这里假设

11、读者已正确安装了该软件,可以从桌面 上直接双击 uVision 的图标以启动该软件。UVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有 3 个标签,分别是Files、Regs、和 Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊 功能寄存器的值(调试时才出现)和所选 CPU 的附加说明文件,如果是第一次启动 Keil, 那么这三个标签页全是空的.1、源文件的建立?使用菜单“FileNew 或者点击工具栏的新建文件按 钮,即可在项目窗口的右侧打开一个新的文本编缉窗口, 在该窗口中输入以下汇编语言源程序,例 1: MOV A,#0FEH MAIN: MO

12、V P1,ARL A LCALL DELAY AJMP MAINDELAY: MOV R7,255D1: MOV R6,255DJNZ R6,$ 图 1 简单的键盘、显示板ENDDJNZ R7,D1RET保存该文件,注意必须加上扩展名(汇编语言源程序一般用 asm 或 a51 为扩展名),这里假定将文件保存为 exam1。asm。需要说明的是,源文件就是一般的文本文件,不一定使用 Keil 软件编写,可以使用任意 文本编缉器编写,而且,Keil 的编缉器对汉字的支持不好,建议使用 UltraEdit 之类的编缉 软件进行源程序的输入。2、建立工程文件在项目开发中,并不是仅有一个源程序就行了,还

13、要为这个项目选择 CPU(Keil 支持数 百种 CPU,而这些 CPU 的特性并不完全相同),确定编译、汇编、连接的参数,指定调试 的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil 使用工程(Project) 这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一 的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。?点击“ProjectNew Project ”菜单,出现一个对话框,要求给将要建立的工程起一个 名字,你可以在编缉框中输入一个名字 (设为 exam1),不需要扩展名。点击“保 存”按钮,出现第二个对话框,如图 2所

14、示,这个对话框要求选择目标 CPU(即 你所用芯片的型号),Keil 支持的 CPU 很多,我们选择 Atmel 公司的 89C51 芯 片.点击 ATMEL 前面的“+”号,展开该层,点击其中的 89C51,然后再点击“确定”按钮,回到主界面,此时,在 工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+号展开,可以看到下一层的“ Source Group1”,这 时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使 其反白显示,然后,点击鼠标右键,出现一个下 拉菜单,如图 3 所示.选中其中的“Add fil

15、e to Group”Source Group1”,出现一个对话框,要求 寻找源文件,注意,该对话框下面的“文件类型” 默认为 C source file(.c),也就是以 C 为扩展名 的文件,而我们的文件是以 asm 为扩展名的, 所以在列表框中找不到 exam1.asm,要将文件类 型改掉,点击对话框中“文件类型”后的下拉列 表,找到并选中“Asm Source File(.a51,。asm), 这样,在列表框中就可以找到 exam1.asm 文件 了.双击 exam1.asm 文件,将文件加入项目,注图 2 选择目标 CPU图 3 加入文件意,在文件加入项目后,该对话框并不消失,等待继

16、续加入其它文件,但初学时常 会误认为操作没有成功而再次双击同一文 件,这时会出现如图 4 所示的对话框,提 示你所选文件已在列表中,此时应点击“确 定”,返回前一对话框,然后点击“Close 即可返回主界面,返回后,点击“Source Group 1前的加号,会发现 exam1。asm 文 件已在其中。双击文件名,即打开该源程 序。二、工程的详细设置图 4 重复加入文件的错误工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边 Project 窗口的 Target 1,然后使用菜单“Project-Option for target target1 即出现对工程设置的对话框,这

17、个对话框可谓非常复杂,共有 8 个页面,要全部搞清可不容 易,好在绝大部份设置项取默认值就行了。?设置对话框中的 Target 页面,如 图 5 所示,Xtal 后面的数值是晶振频 率值,默认值是所选目标 CPU 的最高 可用频率值,对于我们所选的 AT89C51 而言是 24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设 置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件图 5 对目标进行设置所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为 12.Memory Model 用于设置 RAM 使用情况,有三个选择项,Smal

18、l 是所有变量都在单片 机的内部 RAM 中;Compact 是可以使用一页外部扩展 RAM,而 Larget 则是可以使用全部 外部的扩展 RAM。Code Model 用于设置 ROM 空间的使用,同样也有三个选择项,即 Small 模式,只用低于 2K 的程序空间;Compact 模式,单个函数的代码量不能超过 2K,整个程序 可以使用 64K 程序空间;Larget 模式,可用全部 64K 空间.Use on-chip ROM 选择项,确认是否仅使用片内 ROM(注意:选中该项并不会影响最终生成的目标代码量);Operating 项是操作系统选择,Keil 提供了两种操作系统:Rtx

19、tiny 和 Rtx full,关于操作系统是另外一个 很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何 操作系统);Off Chip Code memory 用以确定系统扩展 ROM 的地址范围,Off Chip xData memory 组用于确定系统扩展 RAM 的地址范围,这些选择项必须根据所用硬件来决定,由 于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话框中的 OutPut 页面,如图 6 所示,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用编程器写入单片机芯片的 HEX 格式文件

20、,文件的扩展名 为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是 初学者易疏忽的,在此特别提醒注意。选中 Debug information 将会产生调试信息,这些信 息用于调试,如果需要对程序进行调试,应当选中该项。Browse information 是产生浏览信 息,该信息可以用菜单 view-Browse 来查看,这里取默认值。按钮“ Select Folder for objects 是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一 个文件夹中。Name of Executable 用 于指定最终生成的目标文件的名 字,默认与工程的名字

21、相同,这两 项一般不需要更改。工程设置对话框中的其它各页 面与 C51 编译选项、A51 的汇编选 项、BL51 连接器的连接选项等用法 有关,这里均取默认值,不作任何图 6 对输出进行控制修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing 标签页用于调整生成的列表文件选项.在汇编或编译完成后将产生(。lst)的列 表文件,在连接完成后也将产生(。m51)的列表文件,该页用于对列表文件的内容和形式 进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项, 选中该项可以在列表文件中生成 C 语言源程序所对应的汇编代码.?C

22、51 标签页用于对 Keil 的 C51 编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组,如图 7 所示,该组中 Level 是优化等级,C51 在对源程序进行编译时,可 以对代码多至 9 级优化,默认使用 第 8 级,一般不必修改,如果在编译中出现一些问题,可以降低优化 级别试一试。Emphasis 是选择编 译优先方式,第一项是代码量优化(最终生成的代码量小);第二项 是速度优先(最终生成的代码速度快);第三项是缺省.默认的是速 度优先,可根据需要更改。图 7 代码生成控制设置完成后按确认返回主界面,工程文件建立、设置完毕。三、编译、连接?在设置好工程后

23、,即可进行编译、连接.选择菜单 Project-Build target,对当前工程进 行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码; 如果选择 Rebuild All target files 将会 对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标 代码是最新的,而 Translate 。项则仅 对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直 接进行。图 8 是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进 行设置。编译过程中的信息将出现在输出窗 口中的 Build 页中,如果源程序中有

24、语图 8 有关编译、连接、项目设置的工具条图 9 正确编译、连接之后的结果法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后, 最终会得到如图 9 所示的结果,提示获得了名为 exam1。hex 的文件,该文件即可被编程器读 入并写到芯片中,同时还产生了一些其它相关的文件,可被用于 Keil 的仿真与调试,这时 可以进入下一步调试的工作。Keil教程(2)Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一 步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能 发现并解决,事

25、实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到 正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利 用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。一、常用调试命令在对工程成功地进行汇编、连接以后,按 Ctrl+F5 或者使用菜单 DebugStart/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真 CPU 用来模拟执行程序,该仿真 CPU 功 能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试 功能。不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件

26、执行程序肯定还是有区 别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的 表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命 令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图 1 所示,Debug 菜 单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、 过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗 口、观察窗口、代码作用范围分析、1串行窗口、内存窗口、性能分析、工具按钮等命令

27、。?图 1 调试工具条学习程序调试,必须明 确两个重要的概念,即单步执行与全速运行。全速执行 是指一行程序执行完以后紧 接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确 还是错误,但如果程序有错,则难以确认错误出现在哪些程 序行。单步执行是每次执行一行程序,执行完该行程序以后 即停止,等待命令执行下一行程序,此时可以观察该行程序 执行完以后得到的结果,是否与我们写该行程序所想要得到 的结果相同,借此可以找到程序中问题所在.程序调试中, 这两种运行方式都要用到。使用菜单 STEP 或相应的命令按钮或使用快捷键 F11 可 以单步执行程序,使

28、用菜单 STEP OVER 或功能键 F10 可以 以过程单步形式执行命令,所谓过程单步,是指将汇编语言 中的子程序或高级语言中的函数作为一个语句来全速执行。图 2 调试窗口按下 F11 键,可以看到源程序窗口的左边出现了一个黄色调试箭头,指向源程序的第一行,如图 2 所示。每按一次 F11,即执行该箭头所指程序行,然后箭头指向下一行,当箭头 指向 LCALL DELAY 行时,再次按下 F11,会发现,箭头指向了延时子程序 DELAY 的第 一行。不断按 F11 键,即可逐步执行延时子程序。通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错有时是困难 的,或虽能查出错误但效率

29、很低,为此必须辅之以其它的方法,如本例中的延时程序是通过将 D2: DJNZ R6,D2 这一行程序执行六万多次来达到延时的目的,如果用按 F11 六万多次的方法来执行完该程序行,显然不合适,为此,可以采取以下一些方法,第一,用鼠标在 子程序的最后一行( ret)点一下,把光标定位于该行,然后用菜单 Debug-Run to Cursor line(执行到光标所在行),即可全速执行完黄色箭头与光标之间的程序行。第二,在进入该子程序后,使用菜单 DebugStep Out of Current Function(单步执行到该函数外),使用该命令 后,即全速执行完调试光标所在的子程序或子函数并指向

30、主程序中的下一行程序(这里是 JMP LOOP 行)。第三种方法,在开始调试的,按 F10 而非 F11,程序也将单步执行,不同 的是,执行到 lcall delay 行时,按下 F10 键,调试光标不进入子程序的内部,而是全速 执行完该子程序,然后直接指向下一行“JMP LOOP”。灵活应用这几种方法,可以大大提 高查错的效率。二、在线汇编?在进入 Keil 的调试环境以后,如果发现程序有错,可以直接对源程序进行修改,但是 要使修改后的代码起作用,必须先退出调试环境,重新进行编译、连接后再次进入调试,如 果只是需要对某些程序行进行测试,或仅需对源程序进行临时的修改,这样的过程未免有些 麻烦,为此 Keil 软件提供了在线汇编的能力,将光标定位于需要修改的程序行上,用菜单 Debug-Inline Assambly 即可出现如 图 3 的对话框,在 Enter Ne

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2