Keil软件使用手册Keil软件使用手册
(本手册参考keil 4版本)
一 安装
到网上下载一个安装包,里面必须包含以下内容:
1:
(安装包文件,圈选的文件为安装说明,请务必仔细阅读)
2:
(打开安装文件)
3:
(点击下一步)
4:
(勾选同意,并点击下一步)
5:
(浏览选择到你想安装的地方,然后选择下一步)
6:
(两个空可以随便打,不重要,填完后点击下一步)
7:
(正在安装中)
8:
(点击完成)
9:
(进入安装的文件夹,点击UV4)
10:
(打开Keil4的执行文件)
11:
(点击File,再选...
Keil软件使用手册
(本手册参考keil 4版本)
一 安装
到网上下载一个安装包,里面必须包含以下内容:
1:
(安装包文件,圈选的文件为安装说明,请务必仔细阅读)
2:
(打开安装文件)
3:
(点击下一步)
4:
(勾选同意,并点击下一步)
5:
(浏览选择到你想安装的地方,然后选择下一步)
6:
(两个空可以随便打,不重要,填完后点击下一步)
7:
(正在安装中)
8:
(点击完成)
9:
(进入安装的文件夹,点击UV4)
10:
(打开Keil4的执行文件)
11:
(点击File,再选择License Management)
Pic 12:
(复制右上角的ID号)
12:
(打开注册机文件)
13:
(将复制的ID号粘贴在此处)
14:
(点击Generate,在上方会生成一组ID,复制下来)
15:
(将复制好的ID粘贴在圈选出,并点击Add LIC)
16:
(当你看见这两组单词,那么恭喜你,注册成功,准备开始你的奇妙程序之旅吧!)
二 新建工程
1. 单击Project,选择New Project
2. 选择保存位置,输入工程的名字
3. 选择CPU。紧接着,Keil C51提示您选择CPU器件。8051内核片机最早是由Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能,根据芯片的实际情况,选择相应的器件(本例程选择Atmel公司下的AT89C52),如图:
注:选择8051也可以,8051与8052有一点的差别,可以说8052是8051的升级版,主要有以下不同:
1. 内部RAM,8051单片机为128Byte(00H-7FH),8052单片机为56
Byte (00H-0FFH)
2. 内部ROM,8051单片机为4KB,8052单片机为8KB
3. 8051有两个Timer:T0和T1。8052除了有T0和T1以外,还有一个Timer2
4. 8051有5个中断源 8052有6个。
关于单片机的知识我们将在后面做详细介绍。
4. 选择C语言启动代码
l 如果使用汇编来编程,请选择“否”。
l 如果使用C51来编程,请选择“是”。
如果不出现本提示,请检查是否将安装是否出错。
5. 源程序文件
l 选择File菜单,选择New,然后单击
保存按钮
本例程保存为test.c,如果是用汇编写的程序保存的后缀名应该写成.asm
右键工程项目
,选择Add Fliles to …
将刚才保存的test.c 添加到工程里面去
以上就是工程的搭建,剩下的就是写程序
程序写完编译通过后,设置生成HEX文件
右键单击Target 1,选择Option for ‘Target 1’
或者直接点击工具栏上面的
按钮
弹出的窗口选择Output, 选上Create HEX
编译生成HEX文件
单击工具栏的“Rebuild all target files”按钮
果程序有错,则会显示错误所在的文件及行号。如下图,表示test.c文件的第35行有错误,双击则可定位到该位
如果程序没有错误则会生成HEX文件。Data后面的数据表示使用片内RAM的大小,xdata表示使用外部数据大小,code表示程序的大小
三 软件调试
调试一般都是在发生错误与意外的情况下使用的。如果程序能正常执行,调试很多时候都是用不上的。所以,最高效率的程序开发还是程序员自己做好规范,而不是指望调试来解决问题。
单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。 使用软件模拟调试,就是用计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成。 硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器,然后与单片机一样执行。仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出)。仿真器会将单片机内部内存与时序等情况返回给计算机,这样 就可以在计算机里看到单片机程序真实的执行情况。不仅如此,还可以通过计算机的软件实现单步、全速、运行到光标的常规调试手段。仿真器可以接入实际的电路中
仿真器
以下介绍软件模拟调试
调试的重要性
前面我们学习了如何建立工程,编写C源文件,连接工程,并获取生成的目标代码,但是坐到这些仅仅代表你的源程序没有语法错误,至于程序中存在其它错误必须通过调试才能解决。事实上,除了一小部分极其简单的程序绝大部分程序都要通过多次调试才能得到正确结果,调试是单片机开发过程中一个非常重要的环节。
常用调试命令
在对工程成功地进行汇编、连接以后,按Ctrl+F5或者使用菜单Debug->Start/Stop Debug Session即可进入调试状态,Keil内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真机的情况下进行程序的调试
工具栏上
从左到右依次为:
查找(find out),第二个几乎不用,开始停止调试,后面几个带圈的都和断点相关具体可将鼠标移到图标上查看,和工程窗口相关的几个小帮助
最后一个是配置,可以修改各个窗口的字体,short cut key等等。单击中的调试按钮
可以进入或者退出调试,单击进入
进入调试状态后,界面与编缉状态相比有明显的变化,Debug菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图所示,Debug菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是:
复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、命令窗口(command window)、汇编窗口(disassembly window)、控制特殊功能寄存器显示窗口(Symble window)、寄存器窗口(工程窗口那块)(register window)、堆栈调用窗口(Call stack)、监视窗口(watch window)、子窗口是locals watch1 watc2、存储器窗口(memory window)、
串行口调试窗口(serial window)、分析窗口(包含逻辑分析仪,性能分析仪),工具按钮等命令。
全速执行
,复位重新开始执行
,逐语句执行
,跟踪进函数内部
,先设置一个断点,
全速运行程序如下:
出现几个工作区间,以下介绍这几个区域:
1 左侧是单片机内寄存器的状态区域,给出了常用的寄存器r0~r7以及a,b,sp,dptr,pc,psw等特殊功能寄存器的值,这些值会随着
程序的执行发生相应的变化。(涉及单片机内存,若未学过汇编语言,建议了解);
其中Regs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。。具体介绍一下Sys:
a 累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
b 寄存器B,主要用于乘法和除法操作。
sp
sp_max
dptr 数据指针DPTR。
PC $
states 执行指令的数量。
sec 执行指令的时间累计(单位:秒)。
psw 程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征量,如有无进位、借位等。
p 奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
f1
ov 溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
rs
f0
ac 辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
cy 进位标志CY(PSW 7)。它表示运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。
由于PSW存放程序执行中的状态,故又叫程序状态字。运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)。
根据指令执行的不同,上述值会有相应的变化,程序员可以监测这些在单片机中看不到的值而达到调试的目的
2 C语言源代码区域
3 反汇编指令区域
这个是Disassembly Windows ,按下后可以把C51 Disassembly 转化为相应的汇编语言,如果有汇编语言知识的话,就可以对比C51程序与汇编程序了。由于汇编语言的效率高很多,这也可以作为查看C51执行效率的一个方法。可以看出,C51 代码是如何被解释为汇编的。
4 查看变量的值
5 查看存储器的值
选择View - Memory Window
存储器窗口的地址栏处输入0000H后回车,则可以查看单片机内程序存储器的内容,单元地址前有”C:”表示程序存储器。如果在存储器窗口的地址栏处输入D:00H后回车,则可以查看单片机内数据存储器的内容,单元地址前有“D:”表示数据存储器,单元地址前有”X:”表示片外数据区,冒号后面表示要查看的数据地址。
6 虽然软件调试无法实现硬件调试那样的信号输出,但是软件调试也可以在软件窗口监测输出信号的高低电平,以及单片机相关端口的变化,实现模拟监测输出信号的目的。在主菜单栏:peripherals可以查看定时器,和IO口的数值,中断,串行通信
上图所示,Port0,Port1,Port2,Port3就对应于51单片机的四个P0,P1,P2,P3 口,共32个针脚
查看输出波形单击
,然后选setup可以输入想要观察的引脚。
全速运行并单击图中的all,可以看到以下效果,单击图中的out或者in可以对单位时间进行修改。
选择合适的时间可以清楚得观察高低电平变化及占空比
下面我们来看一个实例:
Keil C51程序调试过程
用Keil C51编写程序时,经常需要调试,如果不是经常用这个软件的话,很容易忘记这些调试步骤,现在举一个例子“验证延迟函数delay()使其延迟的时间为500ms”说明。
源程序写完后,就可以调试了,按照图1所示,先进行第一步和第二步操作,使界面切换到图2的状态,可以看到在文本编辑窗口中,有一个黄色箭头指向13行的位置,说明程序从这个位置开始执行。左上角有一些跟调试相关的按钮,如“全速执行”、“单步进入”……。对于这个例子,目的是验证delay()函数的延迟时间,使其大约为500ms。按照下列方法可以达到这个目的:
本文档为【Keil软件使用手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。