- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 Kiel C的使用
一、实验目的
二、实验三、实验步骤Keil uVision2的快捷方式,或者单击“开始”-“所有程序”-“Keil uVision2”。
建立工程。点击Project 菜单, 选择弹出的下拉式菜单中的New Project ,接着弹出一个标准Windows 文件对话窗口,在“保存在”里选择自己的文件夹,以方便将来编写的代码文件都保存在这里。然后在“ 文件名”中输入C 程序项目名称。“保存”后的文件扩展名为uv2 ,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。
选择所需要的单片机。这里我们选择Ateml 公司的AT89C51。选择CPU后,要选择“是”来给项目中添加预配置文件。
建立文件并编码。首先在项目中创建新的程序文件或加入旧程序文件。如果您没有现成的程序,那么就要新建一个程序文件。通过菜单File-New 或快捷键Ctrl+N 来实现。新建文件后,应立即保存此文件,使用扩展名如“test1.c”, 保存在项目所在的目录中,保存后,可以使IDE环境中的语法高亮功能立即生效。
把文件加入工程中。鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。选“Add File to Group ‘Source Group 1”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
编译工程。KEIL中有三种编译按钮,具体见第一部分实验工具简介,编译时在界面下方的“Build”页中可以看到编译的错误信息和使用的系统资源情况等。
调试。通过菜单Debug-Start\Stop Debug Session,或快捷键Ctrl+F5,来开启\关闭调试模式。
单步调试。Keil中点击Debug菜单下Start Debug Session开始调试,此时有可能进入反汇编窗口[Disassembly],通过ctrl+tab键切换当前窗口到C源文件编辑窗口。下面
是常用调试命令:
从左到右依次是复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。
参考例子:
#include reg51.h
void delay(unsigned char i);
void main()
{
unsigned char i,j;
unsigned char num; //定义变量
while(1)
{
P0=0xff; //开始时,将P0口全部赋值为1
num=0x01; //变量赋初值
for(i=0;i=3;i++)
{
P0=num; //将num赋值给P0口
num=2;//num变量左移二位
delay(100); //延时一段时间
if(num==0x40)
{
for(j=3;j0;j--)
{
P0=num; //将num赋值给P0口
num=2; //变量右移一位
delay(100); //延时一段时间
}
}
}
}
}
void delay(unsigned char i) //延时子程序
{
unsigned char j,k;
for(k=0;ki;k++)
for(j=0;j255;j++);
}
进行单步调试:
Keil中点击Debug菜单下Start Debug Session开始调试。也可以在工具栏点击图标
再选择菜单Peripheral-I/O Ports-Port 0
出现窗口
在右下方,选择Watch #1
先按F2键,再输入待观测的变量名后,回车。
点击图标
单步运行,每运行一步前,先分析应该等于什么,再观察该变量的值实际是什么,并记录在表中。。
调试记录
程序 变量 值 a num P0 P0=0xff P0 num=0x01 num for(i=0;i=3;i++) i 0 1 2 3 P0=num P0
文档评论(0)