keil-μVision4使用详解教程

上传人:xy****7 文档编号:60814371 上传时间:2018-11-18 格式:PDF 页数:42 大小:1.21MB
返回 下载 相关 举报
keil-μVision4使用详解教程_第1页
第1页 / 共42页
keil-μVision4使用详解教程_第2页
第2页 / 共42页
keil-μVision4使用详解教程_第3页
第3页 / 共42页
keil-μVision4使用详解教程_第4页
第4页 / 共42页
keil-μVision4使用详解教程_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《keil-μVision4使用详解教程》由会员分享,可在线阅读,更多相关《keil-μVision4使用详解教程(42页珍藏版)》请在金锄头文库上搜索。

1、 KeilKeilVision4Vision4使用详解使用详解 zxmh6zxmh6 1 前言前言 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编 软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级 语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可

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

3、程,其方 便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 我们将通过一些实例来学 习 Keil 软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细 的设置,以及如何将源程序变为目标代码。图 1 所示电路图使用 AT89C51 单片机作为主芯 片,这种单片机性属于 MCS-51 系列,其内部有 4K 的 FLASH ROM,可以反复擦写,非常适于 做实验。AT89C51 的 P1 引脚上接 8 个发光二极管,P3.2P3.4 引脚上接 4 个按钮开关,我 们的第一个任务是让接在 P1 引脚上的发光二极管依次循环点亮。 2 目目 录录 前言 1 第一章 Keil

4、的配置设置 3 第二章 Keil 工程文件的建立、设置与目标文件的获得 7 第一节 Keil 工程的建立 7 第二节 源文件的建立 12 第三节 将源文件加到工程中并输入源程序 13 第四节 工程的详细设置 18 第五节 编译、连接、生成目标文件 23 第三章 Keil 的调试命令、在线汇编与断点设置 25 第一节 常用调试命令 25 第二节 在线汇编 27 第三节断点设置 . 27 第四节 实例调试 29 第四章 Keil 程序调试窗口 . 30 第一节 程序调试时的常用窗口 30 第二节 各种窗口在程序调试中的用途 32 第五章 Keil 的辅助工具和部份高级技巧 . 36 第一节 辅助工

5、具 36 第二节 部份高级调试技巧 39 3 第一章第一章 Keil Keil 的配置设置的配置设置 在建立工程和编写程序之前最好将系统字体和关键字的颜色等信息进行设置一番,来使 软件更适合使用,下面我们就来对这些配置进行简单的设置。 有多种方式可以打开配置对话框,常用的有两种,既通过菜单的方式打开配置对话框和 点击快捷图标的方式打开配置对话框。菜单打开配置对话框的方法是依次单击 “Edit-Configuration.”如图 1.1.1 所示;单击快捷图标打开配置对话框是单击图标 来完成的。 图 1.1.1 打开配置对话框的步骤 利用上面的方法就可以打开如图 1.1.2 所示的配置对话框,其

6、中有六个选项卡,分别为 Editor(编辑)、 Colors /定义P1.0 void mDelay(unsigned char DelayTime) unsigned int j=0; for(;DelayTime0;DelayTime-) for(j=0;jDissambly Window 可以打开反汇编窗口,该窗口可以显示反汇编后的代码、 34 源程序和相应反汇编代码的混合代码,可以在该窗口进行在线汇编、利用该窗口跟踪已找行 的代码、在该窗口按汇编代码的方式单步执行,这也是一个重要的窗口。打开反汇编窗口, 点击鼠标右键,出现快捷菜单,如图4.2.2 所示,其中Mixed Mode 是以混

7、合方式显示, Assembly Mode 是以反汇编码方式显示。 图4.2.2 反汇编窗口 程序调试中常使用设置断点然后全速运行的方式,在断点处可以获得各变量值,但却无 法知道程序到达断点以前究竟执行了哪些代码,而这往往是需要了解的,为此,Keil 提供了 跟踪功能,在运行程序之前打开调试工具条上的允许跟踪代码开关,然后全速运行程序,当 程序停止运行后,点击查看跟踪代码按钮,自动切换到反汇编窗口,如图6 所示,其中前面 标有“-”号的行就是中断以前执行的代码,可以按窗口边的上卷按钮向上翻查看代码执行记 录。 利用工程窗口可以观察程序执行的时间,下面我们观察一下该例中延时程序的延时时间 是否满足

8、我们的要求,即是否确实延时10 毫秒,展开工程窗口Regs 页中的Sys 目录树,其 中的Sec 项记录了从程序开始执行到当前程序流逝的秒数。点击RST 按钮以复位程序,Sec 的值回零,按下F10 键,程序窗口中的黄色箭头指向mDelay(10)行,此时,记录下Sec 值为 0.00038900,然后再按F10 执行完该段程序,再次查看Sec 的值为0.01051200,两者相减大 约是0.01 秒,所以延时时间大致是正确的。读者可以试着将延时程序中的unsigned int 改 为unsigned char 试试看时间是否仍正确。注意,使用这一功能的前提是在项目设置中正确 设置晶振的数值。

9、 35 Keil 提供了串行窗口, 我们可以直接在串行窗口中键入字符, 该字符虽不会被显示出来, 但却能传递到仿真CPU 中,如果仿真CPU 通过串行口发送字符,那么这些字符会在串行窗口 显示出来,用该窗口可以在没有硬件的情况下用键盘模拟串口通讯。下面通过一个例子说明 Keil 串行窗口的应用。 该程序实现一个行编缉功能, 每键入一个字母, 会立即回显到窗口中。 编程的方法是通过检测 RI 是否等于1 来判断串行口是否有字符输入,如果有字符输入,则 将其送到SBUF,这个字符就会在串行窗口中显示出来。其中ser_init 是串行口初始化程序, 要使用串行口,必须首先对串行口进行初始化。例3:

10、MOV SP,#5FH ;堆栈初始化 CALL SER_INIT ;串行口初始化 LOOP:JBC RI,NEXT ;如果串口接收到字符, 转 JMP LOOP ;否则等待接收字符 NEXT:MOV A,SBUF ;从SBUF 中取字符 MOV SBUF,A ;回送到发送SBUF 中 SEND: JBC TI,LOOP ;发送完成,转LOOP JMP SEND ;否则等待发送完 SER_INIT: MOV SCON,#50H;中断初始化 ORL TMOD,#20H ORL PCON,#80H MOV TH1,#0FDH ;设定波特率 SETB TR1 ;定时器1 开始运行 SETB REN ;

11、允许接收 SETB SM2 RET END 输入源程序,并建立项目,正确编译、连接,进入调试后,全速运行,点击串行窗口1 按钮,即在原源程序窗口位置出现一个空白窗口,击键,相应的字母就会出现在该窗口中。 在窗口中击鼠标右键,出现一个弹出式菜单,选择“Ascii Mode”即以Ascii 码的方式显示 接收到的数据;选择“Hex Mode”以十六进制码方式显示接收到的数据;选择“Clear Window” 可以清除窗口中显示的内容。 由于部份 CPU 具有双串口,故Keil 提供了两个串行窗口,我们选用的89C51 芯片只有 一个串行口,所以Serial 2 串行窗口不起作用。 小技巧:凡是鼠标

12、单击然后按F2 的地方都可以用鼠标连续单击两次(注意:不是双击) 来替代。 36 第五章第五章 Keil Keil 的辅助工具和部份高级技巧的辅助工具和部份高级技巧 在前面的几讲中我们介绍了工程的建立方法,常用的调试方法,除此之外,Keil 还提供 了一些辅助工具如外围接口、性能分析、变量来源分析、代码作用分析等,帮助我们了解程 的性能、查找程序中的隐藏错误,快速查看程序变量名信息等,这一讲中将对这些功工具作 一介绍,另外还将介绍Keil 的部份高级调试技巧。 第一节第一节 辅助工具辅助工具 这部份功能并不是直接用来进行程序调试的,但可以帮助我们进行程序的调试、程序性 能的分析,同样是一些很有

13、用的工具。 一、一、外围接口外围接口 为了能够比较直观地了解单片机中定时器、中断、并行端口、串行端口等常用外设的使 用情况,Keil 提供了一些外围接口对话框,通过Peripherals 菜单选择,该菜单的下拉菜单 内容与你建立项目时所选的CPU有关,如果是选择的89C51 这一类“标准”的51 机,那么将 会有Interrupt(中断)、I/O Ports(并行I/O 口)、Serial(串行口)、Timer(定时/计 数器)这四个外围设备菜单。打开这些对话框,列出了外围设备的当前使用情况,各标志位 的情况等,可以在这些对话框中直观地观察和更改各外围设备的运行情况。 下面我们通过一个简单例子

14、看一看并行端口的外围设备对话框的使用。例 4: MOV A,#0FEH LOOP: MOV P1,A RL A CALL DELAY ;延时100 毫秒 JMP LOOP 编译、连接进入调试后,点击Peripherals-I/O-Ports-Port 1 打开,如图5.1.1所示, 全速运行,可以看到代表各位的勾在不断变化(如果看不到变化,请点击View-Periodic Window Updata),这样可以形象地看出程序执行的结果。 图5.1.1 外围设备之并行端口 37 注:如果你看到的变化极快,甚至看不太清楚,那么说明你的计算机性能好,模拟执行 的速度快,你可以试着将加长延时程序的时间

15、以放慢速度。模拟运行速度与实际运行的速度 无法相同是软件模拟的一个固有弱点。 点击 Peripherals-I/O-Ports-Timer0 即出现图5.1.2所示定时/计数器0 的外围接口 界面,可以直接选择Mode 组中的下拉列表以确定定时/计数工作方式,0-3 四种工作方式, 设定定时初值等,点击选中 TR0,status 后的stop 就变成了run,如果全速运行程序,此时 th0,tl0 后的值也快速地开始变化(同样要求Periodic Window Updata 处于选中状态),直 观地演示了定时/计数器的工作情况(当然,由于你的程序未对此写任何代码,所以程序不会 对此定时/计数器

16、的工作进行处理)。 图5.1.2 外围设备之定时器 二、二、性能分析性能分析 Keil 提供了一个性能分析工具,利用该工具,我们可以了解程序中哪些部份的执行时间 最长,调用次数最多,从而了解影响整个程序中执行速度的瓶颈。下面通过一个实例来看一 看这个工具如何使用,例5: #include “reg51.h“ sbit P1_0=P10; /定义P1.0 void mDelay(unsigned char DelayTime) unsigned int j=0; for(;DelayTime0;DelayTime-) for(j=0;j0;DelayTime-) for(j=0;jPerformance Analyzer Window,打开性能分 析对话框, 进入该对话框后, 只有一项unspecified, 点鼠标右键, 在快捷菜单中选择Setup PA 即打开性能分析设置对话框,对于C 语言程序,该对话框右侧的“Function Symbol”下的列 表框给出函数符号,双击某一符号,该符号即出现在Define Performan

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号