




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机开发与仿真软件KeilC51的使用、KeilC51操作入门KeilC51简介KeilC51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微控制器软件开发平台,是目前开发8051内核单片机的主流工具。Keil51支持汇编语言、C语言等各种开发语言。其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外围功能。实验所用的是KeilC51评估版。KeilC51的启动双击桌面上的“KeiluVision2”图标,启动KeilC51程序,启动界面如图1所示。图1KeilC51的启动界面建立第1个KeilC51程序KeilC51是一个功能很强大的软件,但是使用起来并不复杂。现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握KeilC51的基本用法。硬件电路参见图2,单片机I/O输出低电平可点亮LED。图2LED闪烁发光电路・新建工程。执行KeilC51软件的菜单“Project|NewProject...”,弹出一个名为“Create
NewProject”的对话框。先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash〃是新建的文件夹。建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。最后,为工程取名为“LedFlash〃,并保存。参见图3。图3新建KeilC51工程・选择CPU。紧接着,KeilC51提示选择CPU器件。8051内核单片机最早是由鼎鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。在这里可以选择Philips的第1个器件“80/87C51”,该器件与Intel的8051完全兼容。参见图4。图4选择CPU・接下来弹出一个如图5所示的对话框。该对话框提示是否要把标准8051的启动代
码添加到工程中去。KeilC51既支持C语言编程也支持汇编语言编程。如果打算用汇编语言写程序,则应当选择〃否(N)”。如果打算用C语言写程序,一般也选择〃否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择〃是(Y)”。在这里,我们选择〃否(N)”,即不添加启动代码。图5选择是否要添加启动代码至此,一个空的陋11C51工程建立完毕。执行菜单“File|New...”,出现一个名为“Textn”(其中n表示序号)的文档。接着执行菜单“File|Save”,弹出一个名为“SaveAs”的对话框。将文件名改为“”,然后保存,参见图6。注意:扩展名“.c”不可省略。图6保存新建的源程序文件添加源程序文件到工程中。现在,一个空的源程序文件"”已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将其展开。然后右击“SourceGroup1”文件夹,会弹出如图7所示的选择菜单。单击其中的“AddFilestoGroup'SourceGroup1'”项,将弹出如图8所示的对话框。先选择文件类型为“CSourcefile(现在开始输入源程序。先最大化“”源程序窗口,然后请按以下程序清单输入程序代码。程序清单:LED闪烁发光程序/**程序名称:LED闪烁发光.c)",这时,对话框内将出现刚才保存过的“”。单击文件“”,再按一次“Add”按钮(请不要多次点击“Add”按钮),最后按“Close”按钮。这时,源程序文件“”已经出现在项目工作窗口的现在开始输入源程序。先最大化“”源程序窗口,然后请按以下程序清单输入程序代码。程序清单:LED闪烁发光程序/**程序名称:LED闪烁发光5IncludeDepenlenciew百E:\Pioj^ct\LedFla£h\Main_c2pg口Filel@lRetiui1dt:=LT£etiXl t:di5IncludeDepenlenciew百E:\Pioj^ct\LedFla£h\Main_c2pg口Filel@lRetiui1dt:=LT£etiXl t:di_getTrarislateFile鬲Stop斶IQAddFilestoCroup"SourceGronp11&ST&STkid文件名®: ||..三¥*笔型9::二Sourcefile(*.c)C]_OEH!kid文件名®: ||..三¥*笔型9::二Sourcefile(*.c)图8向工程中添加源程序文件西就表示程序没有问题了(至少是在语法上不存在问题了)。如果存在错误或警告,则仔细检查程序是否与程序清单一致。修改后,再编译,直到通过为止。・编译后的结果会生成IntelHEX格式的程序文件〃〃。该文件可以被专门的芯片烧写工具载入并最终烧录到具体的芯片中。芯片安装到自己的电路板上,通电,就可以运行里面的程序了。还有一类叫做"ISP"(InSystemProgramming)的下载方法,也能够把程序文件烧录到芯片内,但是采用的是串行在线方式,芯片不必从电路板上取下。ISP方式编程速度较慢但操作要方便些。Philips的多款8051内核单片机都能很好的支持ISP下载功能,比如P89V51RB2、P89V51RD2等等。新建A51汇编工程KeilC51软件也支持A51汇编编程。建立A51工程的操作步骤与建立C51工程基本相同,但有两个要点请注意:・新建的源程序文件名要以”.A51"或".ASM”作为后缀。・A51源程序添加到工程中时,文件类型要选择"AsmSourcefile(*.s*;*.src;*.a*)”。其它操作步骤都跟建立C51工程相同。二、在KeilC51下调试程序KeilC51的调试功能非常强大,现在仍然以LED闪烁发光程序为例,来具体了解如何进行仿真操作。
进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下,仍然按〃〃图标进入编译环境设置,找到“Xtal(MHz)〃项,填入。最后点击〃确定〃。进入仿真状态很简单,直接点击工具栏红色的〃〃图标。;[/<■主函数voidmain(§charor.TMOD&=OxFO;TMOD|=OhOIj;[/<■主函数voidmain(§charor.TMOD&=OxFO;TMOD|=OhOIjfor(;;)1ED=□;Dela7C20),J1ED=1;De1ay(S0)j〃点亮工ED//延lH"200nis々熄灭工ED77窕时曰CiCini5]<.j之Hl=diri.c图10KeilC51源程序窗口.源程序窗口KeilC51调试界面的中间是源程序窗口,参见图10。黄色箭头喉〃所指为当前即将执行但还没有执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或ROM数据表。以绿色标记的程序行表示曾经执行过的代码。.寄存器窗口
Rtjgis+^rV:=lLuh一Fl笋rO0x00rl0x00r2□k00f3OwOOr4□k00r5OjiOOr6□k00■■r7OkH-Sys…a.□k00bOkOOspOk09Eji_rri0x09PC$C:OxOJLC1□k00+iptt-OkOOOJ399£也已0.00043Z94白……p£3□jiOOp□fl0ov□■l-30fO□ac0cy口图11KeilC51寄存器窗口KeilC51调试界面的左边是寄存器窗口,参见图11。8051的工作寄存器(R0〜R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。Value栏显示的是寄存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击psw寄存器左边的〃+〃,展开后还可以看到其每一位的情况。.汇编窗口单击工具栏的〃〃图标,源程序窗口会自动切换成汇编窗口,参见图12。在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击〃〃,回到源程序窗口。.存储器窗口单击工具栏的'匚I〃图标,将显示出存储器窗口,参见图13。8051单片机的存储器分为多个不同的逻辑空间。如果要观察代码存储器的内容,就在地址栏“Address:"内输入“C:地址〃,例如:C:0080H。同理,观察内部数据存储器输入“I:地址〃,观察外部数据存储器输入“X:地址〃。拖动存储器窗口右边的滚动条可观察其它存储单元。存储器窗口有“Memory#1〜Memory#4”共4个观察子窗,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择“ModifyMemoryat…〃项,弹出修改对话框,可以随意修改存储单元的内容。
23:TLO=口北口口;岭C:OiiOOlCE4CLRA|C:O'kOOIDF58AMOVTL0(0ii8A)24:TRO=1;-fC:O,^OOIFD2BCSETBTRO.(On88.4),25:whil^(!TF0);〃等待定时器溢3fC:0i0021■:308DFDJ1<IBTF0(0^88.5)rC-002126:TRO=口:f'*C:成□口24C2BCCLRTR0(0^88.4)27:TFO=C:心口口2EC2BDCLRTF0(0^88.5)28:}while(--t!=口);”循环七次C:0^0028DFEFDJWZR7,Delay(C;0019).29:}C:0k002A2NRET■C:0i002E7B7FMOVRCU#吸7FC:0i002DE4CLRAC:0i002EF6MOV@RLAC:0i002FDBFDDJNZR0,C:00-2EC:0k0031750107MOVSP阻羲Bl),#町口7C:0i0034020003LJMPjnain(C;0003)C:0i003700MOPr-n'^nn^AnnMHPx-21iddress:E:OkOO图x-21iddress:E:OkOOooooooooooooooooooooooooooooooooooooooooooooooooooooooooo1oo4_u_u1,unon-n-_u_u_u_u_u_u_u_u_u_un--uI.:Ok.2O:00000000I.:I.:Ok.2O:00000000图13KeilC51图13KeilC51存储器窗口■1I.!Oz.3O:00000000000000000000000000000000I.!0z40:00000000000000000000000000000000I.!0z50:00000000000000000000000000000000I.!0z60:00000000000000000000000000000000I.:0x70:00000000000000000000000000000000t:n艾Finnnnnn「「「「「rm「「「「「「nnn「日「nn「「「n「八■飞Memory#1 盟卜植nmory阳,入曲函而幽/i:■~~|\H.AWatch#1入Watch#2入KWISia出/图14KeilC51变量观察和堆栈窗口5、变量观察和堆栈窗口单击工具栏的〃〃图标,将显示变量观察和堆栈窗口(Watch&CallStackWindow),
参见图14。在Locals标签页,会自动显示局部变量的名称和数值。在C语言程序的函数中,每一对花括号〃{}〃内定义变量都是局部变量,能够自动显示。在“Watch〃标签页内,先用鼠标点击一次“typeF2toedit〃,再按功能键吓2〃,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。4“CallStack〃标签页内,可以实时地观察到堆栈的使用情况。程序的运行控制KeilC51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:复位按钮:单击此图标,能够使程序复位,程序将从地址C:0000H处执行。全速运行:单击此图标,能够使程序全速运行。停止运行:该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。如果要停下来,则可以按此图标。单步进入:按此图标可以实现程序的单步执行。在遇到函数调用时,会跟踪进入函数体。单步跳过步:单步执行,遇到函数时视作1条指令来执行,不会跟踪进入。单步跳出:在调试C语言程序时,如果希望从某个函数中提前返回,则可以按此图标。执行到光标0:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,〃书”图标也会立即变成灰色,不让操作。设置/清除断点Q:KeilC51支持断点设置功能。单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小方块标记。当程序全速运行时遇到断点,便会自动停下来。KeilC51允许在同一个程序里设置多个断点。清除某个断点的方法是,将光标停在该行上,再按一次〃四〃图标。另外一种设置/清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,不妨试一试。清除所有断点工•:如果设置了多个断点,想一并清除,则可以按此图标。图15外围设备中的P1和T0对话框外围设备访问KeilC51的一大特色是在仿真调试时支持对外围设备的访问。单击菜单“Peripherals",会弹出外围设备菜单。在Peripherals菜单里列出了标准8051的外围设备(相对于CPU内核而言):中断、I/O端口、串行口和定时器等。现在执行菜单“Peripherals|I/O-Por
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业团队成员绩效考核评分模板
- 保护环境事件重要性探讨的文章展示(13篇)
- 挂职锻炼个人工作总结
- 水运企业安全培训内容课件
- 水轮机单位转速
- 企业财务管理基本报表生成模板
- 统计局法规培训
- 2025年新能源汽车换电模式与充电模式协同发展研究报告
- 2025年银行账户试题及答案
- 营销活动合法性承诺书9篇范文
- 9.18事变防空演练方案3篇2025
- 急性心肌梗死病人护理
- 2025年充换电站项目建议书
- 成都银行招聘考试真题2024
- 专利代理培训课件
- 学校意识形态工作培训会
- 民法总论讲义大纲4
- 国寿新绿洲团体意外伤害保险(A款)条款
- ARDS患者肺康复训练专家共识解读
- 生物防治技术-免疫接种技术(动物防疫与检疫技术)
- 中远海运(上海)有限公司招聘考试真题及答案2022
评论
0/150
提交评论