keil c51入门必看.docx
- 文档编号:5719254
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:16
- 大小:267.20KB
keil c51入门必看.docx
《keil c51入门必看.docx》由会员分享,可在线阅读,更多相关《keil c51入门必看.docx(16页珍藏版)》请在冰点文库上搜索。
keilc51入门必看
第1章KeilC51操作入门
1.1KeilC51简介
KeilC51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微控制器软件开发平台,是目前开发8051内核单片机的主流工具。
在广州周立功单片机发展有限公司网站()可以免费下载到KeilC51V7.09的评估版本。
1.2KeilC51的安装
安装KeilC51非常简单,步骤如下:
●运行KeilC51V7.09评估版SETUP目录下的“Setup.exe”。
●当出现如图1.1所示的对话框时,请选择“EvalVersion”版本安装。
图1.1KeilC51评估版安装选择
●在接下来的几个对话框中选择“Next”或“Yes”,提示填入用户名和公司名时,照实际情况填写。
●安装完毕后按“Finish”结束。
1.3建立第1个KeilC51程序
KeilC51是一个功能很强大的软件,但是使用起来并不复杂。
现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握KeilC51的基本用法。
硬件电路参见图1.2,单片机I/O输出低电平可点亮LED。
图1.2LED闪烁发光电路
●启动KeilC51软件。
您可以通过双击电脑桌面上的“KeiluVision2”快捷方式图标来启动。
●新建工程。
执行KeilC51软件的菜单“Project|NewProject…”,弹出一个名为“CreateNewProject”的对话框。
先选择一个合适的文件夹准备来存放工程文件,比如“E:
\Project\LedFlash”,其中“LedFlash”是新建的文件夹。
我们建议:
今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。
最后,为工程取名为“LedFlash”,并保存。
参见图1.3。
图1.3新建KeilC51工程
●选择CPU。
紧接着,KeilC51提示您选择CPU器件。
8051内核单片机最早是由鼎鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。
在这里可以选择Philips的第1个器件“80/87C51”,该器件与Intel的8051完全兼容。
参见图1.4。
图1.4选择CPU
●接下来弹出一个如图1.5所示的对话框。
该对话框提示您是否要把标准8051的启动代码添加到工程中去。
KeilC51既支持C语言编程也支持汇编语言编程。
如果打算用汇编语言写程序,则应当选择“否(N)”。
如果打算用C语言写程序,一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。
在这里,我们选择“否(N)”,即不添加启动代码。
图1.5选择是否要添加启动代码
至此,一个空的KeilC51工程建立完毕。
●执行菜单“File|New…”,出现一个名为“Textn”(其中n表示序号)的文档。
●接着执行菜单“File|Save”,弹出一个名为“SaveAs”的对话框。
将文件名改为“main.c”,然后保存,参见图1.6。
注意:
扩展名“.c”不可省略。
图1.6保存新建的源程序文件
●添加源程序文件到工程中。
现在,一个空的源程序文件“main.c”已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。
我们需要把它添加到工程中去。
单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将其展开。
然后右击“SourceGroup1”文件夹,会弹出如图1.7所示的选择菜单。
单击其中的“AddFilestoGroup'SourceGroup1'”项,将弹出如图1.8所示的对话框。
●先选择文件类型为“CSourcefile(*.c)”,这时,对话框内将出现刚才保存过的“main.c”。
单击文件“main.c”,再按一次“Add”按钮(请不要多次点击“Add”按钮),最后按“Close”按钮。
这时,源程序文件“main.c”已经出现在项目工作窗口的“SourceGroup1”文件夹内,可以单击左边的“+”展开后查看。
图1.7准备添加源程序文件到工程中
图1.8向工程中添加源程序文件
●现在开始输入源程序。
先最大化“main.c”源程序窗口,然后请按程序清单1.1输入程序代码。
程序清单1.1LED闪烁发光程序main.c
/*******************************************************************************
程序名称:
LED闪烁发光
硬件接法:
P1.1控制LED,低电平点亮
运行效果:
LED亮200ms,灭800ms,反复循环
*******************************************************************************/
#include
sbitLED=P1^1;//定义I/O接口
/*******************************************************************************
函数:
Delay()
功能:
延时0.01s~2.56s
参数:
t>0时,延时(t*0.01)s
t=0时,延时2.56s
说明:
定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
*******************************************************************************/
voidDelay(unsignedchart)
{
do
{
TH0=0xDC;//设置定时器初值(定时10ms)
TL0=0x00;
TR0=1;//启动定时器
while(!
TF0);//等待定时器溢出
TR0=0;//停止定时器
TF0=0;//清除溢出标志
}while(--t!
=0);//循环t次
}
//主函数
voidmain()
{
TMOD&=0xF0;//T0设置在方式1,即16位定时器(不影响T1的模式)
TMOD|=0x01;
for(;;)
{
LED=0;//点亮LED
Delay(20);//延时200ms
LED=1;//熄灭LED
Delay(80);//延时800ms
}
}
●单击KeilC51工具栏的“
”图标,弹出名为“OptionsforTarget‘Target1’”的对话框。
单击“Output”标签页,选中“CreateHEXFile”项,然后“确定”。
参见图1.9。
图1.9编译环境设置
●单击工具栏的按钮“
”编译当前源程序。
编译结果会显示在输出窗口内。
如果是“0Error(s),0Warning(s).”就表示程序没有问题了(至少是在语法上不存在问题了)。
如果存在错误或警告,请仔细检查您的程序是否与程序清单1.1一致。
修改后,再编译,直到通过为止。
●编译后的结果会生成IntelHEX格式的程序文件“LedFlash.hex”。
该文件可以被一类叫做“ISP”(InSystemProgramming)的下载方法烧录到芯片内,下载后就可以运行了。
ISP采用的是串行在线方式下载,因此芯片不必从电路板上取下。
DP-51MCore多核单片机实验仪上的四台P89V51RB2芯片都能很好的支持ISP下载操作。
1.4新建A51汇编工程
KeilC51软件也支持A51汇编编程。
建立A51工程的操作步骤与建立C51工程基本相同,但有几个要点请注意:
●新建的源程序文件名要以“.A51”或“.ASM”作为后缀。
●A51源程序添加到工程中时,文件类型要选择“AsmSourcefile(*.s*;*.src;*.a*)”。
其它操作步骤都跟建立C51工程相同。
第2章在KeilC51下调试程序
KeilC51的调试功能非常强大,本章我们先做一个初步了解,等以后再慢慢体会。
现在仍然以LED闪烁发光程序为例,来具体了解如何进行仿真操作。
2.1进入仿真状态
如果程序编译通过,就可以仿真了。
在仿真之前,有一项参数最好配置一下,仍然按“
”图标进入编译环境设置,找到“Xtal(MHz)”项,填入11.0592。
最后点击“确定”。
进入仿真状态很简单,直接点击工具栏红色的“
”图标。
2.2认识各个仿真窗口
图2.1KeilC51源程序窗口
1.源程序窗口
KeilC51调试界面的中间是源程序窗口,参见图2.1。
黄色箭头“
”所指为当前即将执行但还没有执行的代码。
以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。
以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或ROM数据表。
以绿色标记的程序行表示曾经执行过的代码。
2.寄存器窗口
图2.2KeilC51寄存器窗口
KeilC51调试界面的左边是寄存器窗口,参见图2.2。
8051的工作寄存器(R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。
Value栏显示的是寄存器的当前数值。
如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。
单击psw寄存器左边的“+”,展开后还可以看到其每一位的情况。
3.汇编窗口
单击工具栏的“
”图标,源程序窗口会自动切换成汇编窗口,参见图2.3。
在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。
再次单击“
”,回到源程序窗口。
4.存储器窗口
单击工具栏的“
”图标,将显示出存储器窗口,参见图2.4。
8051单片机的存储器分为多个不同的逻辑空间。
如果要观察代码存储器的内容,就在地址栏“Address:
”内输入“C:
地址”,例如:
C:
0080H。
同理,观察内部数据存储器输入“I:
地址”,观察外部数据存储器输入“X:
地址”。
拖动存储器窗口右边的滚动条可观察其它存储单元。
存储器窗口有“Memory#1~Memory#4”共4个观察子窗,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。
存储器的内容是可以修改的。
用鼠标右击打算要修改的存储单元,选择“ModifyMemoryat…”项,弹出修改对话框,可以随意修改存储单元的内容。
图2.3KeilC51汇编窗口
图2.4KeilC51存储器窗口
图2.5KeilC51变量观察和堆栈窗口
5.变量观察和堆栈窗口
单击工具栏的“
”图标,将显示变量观察和堆栈窗口(Watch&CallStackWindow),参见图2.5。
在Locals标签页,会自动显示局部变量的名称和数值。
在C语言程序的函数中,每一对花括号“{}”内定义变量都是局部变量,能够自动显示。
在“Watch”标签页内,先用鼠标点击一次“t
dit”,再按功能键“F2”,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。
在“CallStack”标签页内,可以实时地观察到堆栈的使用情况。
2.3程序的运行控制
KeilC51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:
●复位按钮“
”:
单击此图标,能够使程序复位,程序将从地址C:
0000H处执行。
●全速运行“
”:
单击此图标,能够使程序全速运行。
●停止运行“
”:
该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。
如果要停下来,则可以按此图标。
●单步进入“
”:
按此图标可以实现程序的单步执行。
在遇到函数调用时,会跟踪进入函数体。
●单步跳过“
”:
单步执行,遇到函数时视作“1条指令”来执行,不会跟踪进入。
●单步跳出“
”:
在调试C语言程序时,如果希望从某个函数中提前返回,则可以按此图标。
●执行到光标“
”:
用鼠标单击某条可执行的代码(深灰色标记的程序行)。
然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。
如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,“
”图标也会立即变成灰色,不让您操作。
●设置/清除断点“
”:
KeilC51支持断点设置功能。
单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小方块标记。
当程序全速运行时遇到断点,便会自动停下来。
KeilC51允许在同一个程序里设置多个断点。
清除某个断点的方法是,将光标停在该行上,再按一次“
”图标。
另外一种设置/清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,您不妨试一试。
●清除所有断点“
”:
如果设置了多个断点,想一并清除,则可以按此图标。
图2.6外围设备中的P1和T0对话框
2.4外围设备访问
KeilC51的一大特色是在仿真调试时支持对外围设备的访问。
单击菜单“+”,会弹出外围设备菜单。
在Peripherals菜单里列出了标准8051的外围设备(相对于CPU内核而言):
中断、I/O端口、串行口和定时器等。
现在执行菜单“Peripherals|I/O-Ports|Port1”,弹出P1端口的界面。
在位0~7中,用√表示高电平,无√表示低电平。
执行菜单“Peripherals|Timer|Timer0”,弹出定时器T0的界面。
参见图2.6。
弹出的外围设备菜单是可以操作的,不妨试试。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- keil c51入门必看 c51 入门