KeilC51使用详解
- 格式:pdf
- 大小:486.00 KB
- 文档页数:20
单片机开发与仿真软件Keil C51的使用一、Keil C51 操作入门Keil C51 简介Keil C51 是德国知名软件公司Keil(现已并入ARM 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051 内核单片机的主流工具。
Keil 51支持汇编语言、C语言等各种开发语言。
其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。
uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外围功能。
实验所用的是Keil C51 评估版。
Keil C51 的启动双击桌面上的“Keil uVision2”图标,启动Keil C51程序,启动界面如图1所示。
图1 Keil C51的启动界面建立第1 个Keil C51 程序Keil C51 是一个功能很强大的软件,但是使用起来并不复杂。
现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。
硬件电路参见图2,单片机I/O 输出低电平可点亮LED。
图2 LED 闪烁发光电路●新建工程。
执行Keil C51 软件的菜单“Project | N ew Project…”,弹出一个名为“Create New Project”的对话框。
先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。
建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。
最后,为工程取名为“LedFlash”,并保存。
参见图3。
图3 新建Keil C51 工程●选择CPU。
紧接着,Keil C51 提示选择CPU 器件。
8051 内核单片机最早是由鼎鼎大名的Intel 公司发明的,后来其他厂商如Philips 、Atmel 、Winbond 等先后推出其兼容产品,并在8051 的基础上扩展了许多增强功能。
Keil C51使用详解keilc51使用详解v1.0电子设计世界!版权所有,热烈欢迎贴文,切勿修正并标明原文。
留存一切权利。
第一章keilc51开发系统基本知识 (6)1第一节系统概述 (6)第二节keilc51单片机软件开发系统的整体结构...6第三节keilc51工具包的加装...71.c51fordos72.c51forwindows的安装及注意事项:...7第四节keilc51工具包各部分功能及使用简介...71.c51与a51.72.l51和bl51.83.dscope51,tscope51及monitor51.84.ishell及uvision.9第二章keilc51软件使用详解 (10)第一节keilc51编译器的控制指令...101.源文件掌控类 (10)2.目标文件(object)控制类:...103.列表文件(listing)控制类:...10第二节dscope51的使用...111.dscope51fordos112.dscopeforwindows12第三节monitor51及其使用...131.monitor51对硬件的要求...132.mon51的使用...133.mon51的配置...134.串口连接图:...135.mon51命令及使用...14第四节集成开发环境(ide)的使用...141.ishellfordos的使用 (14)22.uvisionforwindows的使用 (15)第三章keilc51vs标准c..15第一节keilc51扩展关键字...15第二节内存区域(memoryareas):...161.pragramarea:...162.internaldatamemory:163.externaldatam emory.162.可位串行区表明20h-2fh..18第七节keilc51指针...181.通常指针...182.存储器指针...183.指针切换...18第八节keilc51函数...191.中断函数声明:...192.通用型存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。
Keil C51实用操作(使用汇编语言)一、建立一个工程项目、选择芯片并确定选项1、可先在D盘上建立一个名为“mytest”的文件夹。
2、进入Keil C51界面,如图1所示。
(图1)3、单击【工程】\【新建工程】选项。
在弹出的【新建工程】窗口中的【文件名】中输入一个文件名如:“test1”,再单击【保存】按钮。
4、在弹出的【为目标’目标1’选择设备】对话框中,选择单片机的型号,此处选【Atmel】\【AT89C51】,如图2所示,再单击【确定】按钮。
(图2)5、在打开的窗口中,单击【工程】\【目标’目标1’属性】选项。
在【目标’目标1’属性】窗口中,设置【目标】\【X晶振频率】选项的晶振频率。
此处设置晶振频率为:11.0592,其它选项可选择默认设置,如图3所示。
(图3)7、选择【输出】\【E生成HEX文件】选项,其它选项可选择默认设置,如图4所示,单击【确定】按钮。
(图4)二、建立源程序文件8、单击【文件】\【新建】选项,在打开的窗口中输入源程序文件。
9、单击【文件】\【另存为】选项,此处设置文件名为:“test1.asm”,注意扩展名为“.asm”。
单击【保存】按钮,将输入的源程序文件保存下来。
三、添加文件到当前项目组中10、单击【目标1】前面的【+】号,再右击【源程序组1】,如图5所示,在弹出的快捷菜单中单击【增加文件到组’源程序组1’】选项。
(图5)11、在打开的【增加文件到组’源程序组1’】窗口中,选择【文件类型】为【Asm 源文件】,【文件名】处选择上面建立的“test1.asm”文件,如图6所示,单击【Add】按钮,再单击【关闭】按钮。
(图6)四、编译(汇编)文件12、单击【工程】\【重新建造所有目标文件】选项,编译源程序。
此时窗口显示编译结果,如图7所示。
(图7)五、软件模拟仿真调试13、单击【调试】\【开始/停止调试】选项,进入软件模拟仿真调试界面,此处并选择【外围设备】\【I/O-Ports】\【Port 1】选项,打开P1输出窗口。
Keil 软件的使用一、软件启动在桌面上双击,或在开始→程序→。
二、界面图1、首先建立一个工程点击Project→New Project 如下图所示。
则会出现如下图。
注意工程保存在什么位置(要方便自己查找),输入文件,保存类开会自动生成,不用管,然后点保存,则会出如下图则会出现。
则出现可点是或否,影响不大。
则会出现:这样应建立了一个新的工程。
可在保存的位置找工程文件名。
2、建立一个汇编语言文件。
点击File→New,如下图所示则出现Text1为文件名,先要保存一下。
选为文件保存的位置,文件名要注意一下,用汇编语言编写则后缀(扩展名)为.ASM,如果用C 语言编写则为.C。
设置好后点击保存,则程序文件应建立好了。
在保存的位置可找到该文件。
3、程序录入编辑及编译(1)在程序编辑区录入程序(2)将程序文件添加到工程文件中右键单击Source Group1如下图则出现点击,Add Files to Group Source Group 1 则出现如下图选好文件类型为C Source file (*.C),再在保存位置中找到刚才编辑好的程序文件,然后点Add 即可。
(3)必要的参数设置点击Project→Option for Target则会出现如下图:在Target 选项卡中设置好晶振频率。
再选Output选项卡,如下图:设置好各项后点击确定,必要的参数应设置完毕。
(4) 程序编译检查点击Project→Build target files 如下图所示则在界面的最下面出现指示:如果有错误要改正程序的错误,再进行编译,一直到没有错误为止,要生成HEX文件,我们才能下载到单片机中。
程序下载到单片机的程序应用1、启动软件:在桌面找到图,双击将会出现如下图必须要选择正确的端口及单片机型号,然后调入从KEIL C51编译生成的HEX文件。
2、调入HEX文件:左键单击调入FLASH,如下图所示:将会出现HEX文件选择窗口:选择正确文件后,点打开,则出现如下图3、将HEX文件下载到单片机芯片选择正确后,检查单片机是否连接好,准备好后就点击自动,则会出现如下图,程序下载完成后,就会看到单片机板上LED灯在点亮了。
KEIL的使用
1、安装KEIL C51
2、安装完后打开KEIL,进入KEIL界面
3、进入KEIL工作界面
4、新建工程点击Project→New µVsion Project
5、然后选择你要保存的路径,输入工程文件的名字,如下所示:
5、选择单片机类型,如A TC8951,然后点击是
6、完成以上步骤后,展开Taget 1,如下图所示:
7、用记事本输入如下程序:
9、输入完后保存后缀为.asm 的格式(汇编语言)(注意:如果是C语言的,就保存后缀为.C 格式)。
10、把刚才编写好程序添加到soursce group 1,过程如下所示:
11、展开soursce group 1,如下所示:
12、双击打开KEIL C51,工作界面如下:
13、单击“Project”菜单,再在下拉菜单中单击“” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载
器软件使用。
(或右键打开Targe 1 再选择)
14、这里还可以改变晶振的周期,如下所示:
15、设置完以上的设置后,然后单击“Project”菜单,再在下拉菜单中单击“Buid target”(创建目标文件)。
16、如有语句错误,则不能创建成功,如下所示,直到把错误排除,才能创建成功。
以上是KEIL C51 的入门教程。
KEILC51的使用
1.环境搭建
2.创建一个新项目
打开KEIL C51后,首先点击"File" -> "New" -> "Project"来创建一个新项目。
在弹出的对话框中,选择合适的项目名称和存储位置,然后点击"OK"。
3.添加源代码文件
在新建的项目中,右键点击"Source Group 1" -> "Add New Item"来添加源文件。
用户可以选择C语言或汇编语言来编写源代码文件。
4.编写代码
5.编译代码
当代码编写完成后,用户可以点击"Project" -> "Build Target"来编译代码。
KEIL C51会自动将代码转换为相应的机器码,并生成可执行文件。
7.调试代码
8.仿真和模拟
9.代码优化
10.版本管理
在KEILC51中,用户还可以使用版本控制工具来管理项目代码的版本。
这些工具可以帮助用户跟踪代码的修改历史,并提供代码版本的回退和合
并功能。
Kei使用说明
1. 软件的安装
2. 安装完之后打开“Keil uVision2”
3. 建立一个“Project”
点击“Project”->“New Project…”,选择工程文件要存放的路径,输入工程文件名LED,单击保存。
4. 弹出选择CPU 厂商和型号的对话框
5. 我们这里使用的是Atmel 公司的AT89C51
6. 下面的对话框,选择“是”
7. 如下图,新建一个51文件;
8. 点击保存后,如下图:
9. 接下来就是将ASM文件添加到这个Project中
点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如下图所示,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件。
10. 将刚才新建的“LED.ASM”文件“Add”进来
11. 参数设置
◆单击“Option for Target”按钮
◆弹出如下下图所示对话
12. 在编辑框里面输入以下代码
13. 编译
14. 调试
15. 调试时常用的窗口
存储器窗口
存储器窗口中可以显示系统中各种存储器中的值,通过在Address后的编辑框内输入“字母:数字”即可显示存储器某一单元中的值。
其中字母可以是C(可以省略)、D和X,分别代表程序存储器空间、片内数据存储器空间和片外数据存储器空间;数字代表想要查看单元的地址。
工程窗口寄存器页
外围接口。
KeilC51使用说明首先启动Keil μVision2程序,首次进入 Keil μVision2的编辑界面如图1所示,否则,会打开用户前一次处理的工程。
图1 首次进入Keil μVision2的编辑界面下面通过简单的编程、调试,引导大家学习Keil μVision2软件中Keil Monitor-51 Driver仿真器的基本使用方法和基本调试技巧。
1 工程的建立单击“项目->新建项目…”菜单,弹出创建新工程对话框,如图2所示。
选择你要保存的路径,输入工程文件的名字, 不需要输入扩展名。
比如保存到JY_E2X00目录里,工程文件的名字为Test1,如图(2)所示,然后点击“保存”,保存后的文件扩展名为.uv2,这是KeilμVision2项目文件扩展名。
以后我们可以直接点击此文件来打开已创建的工程。
图2 创建新工程对话框这时会弹出一个对话框,要求选择目标CPU(即用户所用单片机的型号),Keil μVision 几乎支持所有的51内核的单片机,我们以AT89S52芯片为例,如图3所示, 在左侧的Data base列表框中点击Atmel前面的“+”号,展开该层,选中AT89S52,在其右边的Description显示区域。
中是对这个单片机的基本描述,然后再点击“确定”按钮.图3 为工程选择目标CPU窗口会出现询问是否添加startup.a51,如图4:请选择“否”。
图4此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要为这个工程添加文件。
如图5所示。
图5新建立的工程2 源文件的添加如果用户没有现成的程序,那么就要新建一个程序文件。
在Keil中有一些程序代码,在这里我们以一个汇编程序为例,介绍如何新建一个asm程序和如何将它添加到工程中。
单击“文件->新建”菜单,如图6所示,新建一个源文件。
此时在项目窗口的右侧打开一个新的文本编辑窗口,如图7所示:图7 新建文件后的屏幕此时光标在编辑窗口里闪烁,可以键入用户的应用程序了。
但我们建议首先保存该空白的文件,单击菜单上的“文件”,在下拉菜单中选中“另存为”,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,注意,必须键入正确的扩展名。
如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名为(.asm或.a51)。
然后,单击“保存”按钮。
图8 保存源文件对话框在创建源文件后,就可将这个文件添加到工程中。
回到编辑界面,在“项目工作区”页中,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图9所示的下拉菜单。
图9文件组快捷菜单选择“Add File to Group ‘Source Group 1’”,出现如图10所示对话框。
图10 加入文件对话框双击led.asm或选中led.asm后单击“Add ”按钮, 将文件加入到工程中,然后点击“Close”按钮即可返回主界面,这时在Source Group1文件夹图标左边出现了一个小“+”号,说明文件组中有了文件,点击它可以展开查看到文件“led.asm”已加入其中,双击文件名,即打开该源程序,如图11所示。
图11 加入了文件的工程注意:Keil默认加入C源文件,因此,在图10中未显示该文件夹下的汇编 文件,如果要加入汇编语言源文件,需单击“文件类型”下拉列表框右侧的下三角按钮,弹出下拉列表,选择“Asm Source file(*.a*;*.src)”,这时才会将文件夹下的“*.asm”文件显示出来;现在,请输入如下的asm语言源程序:org 0000hjmp startorg 0030h ;主程序从这个地址开始存放start:mov dptr,#table ;将表格的首地址送DPTRloop: clr amovc a,@a+dptr ;读取表格首地址的内容cjne a,#01h,loop1 ;查看是否是01H.如果是01H,重新开始循环jmp startloop1:mov P0,a ;将要显示的代码送P0口mov r4,#20 ;延时200ms(0.2S)call delay ;调用延时inc dptr ;DPTR加1,为读取下一个地址的内容作准备jmp loop;************** 延时子程序 ****************delay:mov r1,#20 ;延时10ms子程序d1: mov r2,#200djnz r2,$djnz r1,d1djnz r4,delayrettable:db 0feh,0fdh,0fbh,0f7h ;左移db 0efh,0dfh,0bfh,07fhdb 0feh,0fdh,0fbh,0f7h ;左移db 0efh,0dfh,0bfh,07fhdb 7fh,0bfh,0dfh,0efh ;右移db 0f7h,0fbh,0fdh,0fehdb 7fh,0bfh,0dfh,0efh ;右移db 0f7h,0fbh,0fdh,0fehdb 00h,00h,0ffh,0ffh,00h,00h,0ffh,0ffh ;闪烁2次db 01h ;结束码END在输入上述程序时,我们就可以体会到事先保存待编辑的文件的好处了,即Keil μVision 会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
程序输入完毕后,如图12所示 。
图12 编辑源程序3 工程的设置工程建好后,还要对工程进行进一步的设置,才能使用Monitor-51仿真器进行硬件仿真。
有三种打开工程设置对话框的方法:A)点击工具栏上的按钮,如图13所示。
图13 使用工具栏图标按钮打开工程设置对话框B)单击工程窗口下的Target1,使其高亮显示,再点击菜单“项目->目标‘target1’选项”C)鼠标右键点击工程窗口下的“Target1”,出现一个下拉菜单,如图14所示,选中“目标‘target1’选项”。
图14使用下拉菜单打开工程设置对话框打开的工程设置对话框如图15所示。
图15 Target选项对话框单击“”标签进入输出设置页面卡,如图16所示,选中“”,使程序编译后产生HEX代码,供仿真和烧录使用。
同时也可选中“”和“”,生成Hex 代码文件调试信息和浏览信息。
图16 Output选项对话框单击“”标签进入调试器设置页面卡,按图17所示进行设置。
选中“”和“”这两项是为了进行Monitor-51的硬件实时仿真。
单击“” 按钮,进入 “参数设置”对话框,按默认设置就行。
如果选中“”,是进行软件仿真。
图17注:串口的波特率必须与之一致.4 编译、链接设置好工程后,即可进行编译、链接。
图18所示的是有关编译的工具栏按钮和菜单,图中1、2、3都是编译按钮,1是编译单个文件。
2是编译当前项目,如果先前编译过一次之后文件没有被编辑、改动,这时再点击是不会重新编译的。
3是重新编译,每点击一次均会再次编译链接,不管文件是否有改动。
在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。
4是信息输出窗口。
5是菜单的相应操作。
这个项目只有一个文件,你按1、2、3中的任一个都可以编译。
图18 有关编译的工具栏按钮和菜单按1、2、3中的任意一个进行编译。
在4中的Build页可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了,如果用户程序和工程设置没有错误,编译和链接将能顺利完成。
如图19所示,提示获得了名为led.hex的文件,该文件即可被编程器读入并写到芯片中,同时还可看到,该程序的代码量(code=120),内部RAM的使用量(data=8),外部RAM的使用量(xdata=0)等一些信息。
除此之外,编译、链接还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可进入下一步的调试。
图19 编译和链接顺利完成我们前面的程序经过验证后没有错误,但是用户在开始编写程序时容易出现错误,现在我们故意将“mov dptr,#table”改为“mov dptr,table”,我们再次进行编译和链接编译/链接,因源程序中有语法错误,在信息输出窗口中有错误报告出现:“led.asm(5): error A40: INVALID REGISTER”。
双击该行,定位到出错的位置,如图20所示,将错误改正后,再进行编译,程序编译和链接能顺利完成。
如图19所示。
图20 编译后的错误定位5 进入仿真编译成功后,启动调试模式,进入仿真状态。
启动调试模式有以下几种方法:◆点击工具栏上的按钮◆单击“调试->开始/停止调试模式”◆使用快捷键“Ctrl+F5”启动调试模式后,代码便开始下载到仿真器中,如果出现如图21:图21请检查以下因素:·仿真器电源是否正确连接·仿真器与PC是否正常连接·串口是否选择正确,或被其它程序占用,或者已经损坏如果都不是,请按一下你目标板的复位键,再按“”。
代码下载完后,如图22所示,用户可以根据需要进行单步、断点、全速运行,观察/修改变量值、观察/修改存储区数据等操作。
图22 代码下载完毕进入调试状态后,调试菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出 现了一个用于运行和调试的工具栏,Debug菜单上的大部份命令都有相应的快捷按钮,如图23所示,从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令;图23 运行和调试的工具栏点击工具栏上的按钮,将反汇编窗口关闭,可看到源程序窗口了。
6 调试程序⒈ 单步跟踪运行使用菜单调试->单步进入或相应的命令按钮或使用快捷键F11可以单步跟踪执行程序,在这里我们按下F11键,即可执行该箭头所指程序行,每按一次F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,当箭头指向“call delay”行时,再次按下F11,会发现,箭头指向了延时子程序“delay”的第一行,不断按F11键,即可逐步执行延时子程序,如图24所示,图24 单步跟踪运行⒉ 单步运行如果delay程序有错误,可以通过单步跟踪执行来查找错误,但是如果delay程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用F10来替代F11(也可使用菜单单步跳过或相应的命令按钮),在执行到“call delay”时将该行作为一条语句快速执行完毕.为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按F10键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。