keil 教程.docx
- 文档编号:30668600
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:21
- 大小:804.15KB
keil 教程.docx
《keil 教程.docx》由会员分享,可在线阅读,更多相关《keil 教程.docx(21页珍藏版)》请在冰豆网上搜索。
keil教程
KeilC51应用入门
KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。
进入KeilC51后,屏幕如下图所示。
几秒钟后出现编辑界
启动KeilC51时的屏幕
进入KeilC51后的编辑界面
简单程序的调试
学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习KeilC51软件的基本使用方法和基本的调试技巧。
1)建立一个新工程
单击Project菜单,在弹出的下拉菜单中选中NewProject选项
2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51
如下图所示,然后点击保存.
3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51核的单片机,如果你设计的是华邦的W77E58,可以选择winbond->W77E58,但是有一些版本,比如6.02,对它不能仿真,但是可以选择dallas的ds80c320来代替设计W77E58,两者的内核是一样的,只是w77e58带flashrom,而ds80c320没有flashrom,如果你的软件在仿真W77e58的时候有问题,那么就选用ds80c320.我这里还是以大家用的比较多的Atmel的89c52来说明,如下图所示,选择89c52之后,右边一栏是对这个单片机的基本的说明,然后点击确定.
4)完成上一步骤后,屏幕如下图所示
到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项
新建文件后屏幕如下图所示
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮。
6)回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单
然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如下图所示
选中paomadeng.asm,然后单击“Add ”屏幕好下图所示
注意到“SourceGroup1”文件夹中多了一个子项“paomadeng.asm”了吗?
子项的多少与所增加的源程序的多少相同
7)现在,请输入如下的汇编语言源程序:
POWEREQUP0.7
;定义发光管公共电源端
ORG0000H
SJMPMAIN
;转向主程序
ORG0030H
MAIN:
CLRPOWER
;打开公共电源
START:
MOVP2,#11111110B
;第一个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#11111101B
;第二个的LED点亮
ACALLDELAY
;延时1秒
MOVP2,#11111011B
;第三个的LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#11110111B
;第四个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#11101111B
;第五个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#11011111B
;第六个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#10111111B
;第七个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#01111111B
;第八个LED点亮
ACALLDELAY
;延时0.5秒
MOVP2,#11111111B
;完成第一次循环点亮,全部熄灭
ACALLDELAY
;延时0.5秒
ACALLDELAY
;延时0.5秒
ACALLDELAY
;延时0.5秒
ACALLDELAY
;延时0.5秒
AJMPSTART
;重新开始循环
DELAY:
MOVR4,#2
;延时子程序,11.0592M晶振延时约0.5秒
D3:
MOVR2,#250
D1:
MOVR3,#229
D2:
DJNZR3,D2
DJNZR2,D1
DJNZR4,D3
RET
END
在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keilc51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
程序输入完毕后,如下图所示
8)在上图中,单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快捷键F7),进行编译。
若有错误会在output窗口提示,如下图所示
可根据此提示,找出错误并修改,直至编译通过,如下图所示
9)编译成功后,再单击“Project”菜单,在下拉菜单中单击“OptionsforTarget‘Target1’”如下图所示
选择Target选项,将Xtal(MHz)设置为自己所用频率。
这样做的好处是可以在软件仿真时,可以计算出程序运行时间。
当然,你如果不需要计算时间也可以不设置。
Debug选项用于仿真选项的设置,可以选择硬件仿真器仿镇,也可以选择软件仿镇。
对于硬件仿真器仿真设置请点击这里。
对于软件仿真,选择UseSimulator即可。
点击“确定”。
单击“Debug”菜单,在下拉菜单中单击“Star/Stop....”或者使用快捷方式
装载程序,屏幕如下所示
10)调试程序:
在Peripherals\I/O-ports中打开P0、P2口,按F10或F11单步运行程序,可以看到P0和P2口按照程序变化!
如下图所示
至此,我们在KeilC51上做了一个完整工程的全过程。
Keil的功能十分强大,其它的调试方法跟本文大同小异,大家可以在使用自己探索!
好了,现在你可以用KeilC51来开发你的单片机了,还等什么啊?
赶快试试哟!
再看上一章的图:
ProjectWindow就是我们经常看到的KEILC界面位于左边的工程区,没什么好介绍的。
OutputWindow输出窗口,用的不是很多,不过有个比较好的功能,就是运行中插入指令(不知道这么说是否规范:
)大家看这个框上的输入栏:
在上面可以写语句的哦,例如:
EA=1,那么EA就变了1咯,P1=0X0,如果P1上接了LED,就会亮,是不是很方便?
?
SourceBrowser文件信息浏览,这里可以看到你的工程有些什么函数,变量,宏等等等的信息,我下面的是打开了DX的DEMO程序的SourceBrowser,对于一个大型工程来说,这个窗口让你浏览到所有的信息的功能,对于调试和维护来说是很有用的。
好了,继续说VIEW上的其它功能,SourceBrowser后面的一堆东西诸如DisassemblyWindow和Watch&CallStackWindow等都是前面章节说过的了,往下看还有WorkbookMode,其实是一种比较方便的浏览模式,选了它后就可以以工作页的模式浏览你的代码文件了,说你不懂的话,就看效果吧:
懂了吧?
?
再往下看就是IncludeDependencies选择了后就可以显示每个C文件所包含的H头文件了。
一般都选上的。
然后就是option了,一般都不去动他的了,除非你觉得显示的字体和颜色不合你心意,就去动它吧。
好了,把VIEW窗的东西都说完了,以下就是说ProjectWindow了,
ProjectWindow有3页,这里只说说中间那页Regs,其实也没什么的,一看就知道是寄存器的值了,说说那个SP,就是你当前的SP指针了,sp_max就是SP到过的最深的位置,当你程序运行一段时间后,就可以看看这个sp_max大概知道堆栈最深到哪里。
PC就是当前的PC指针咯,然后下面的states就是程序已经运行了多少个机器周期,再下面的sec就是运行的时间,这个时间跟你之前设置的晶振值是有关的,如果你的晶振值是12M,那么你可以看到states和sec数字上是一样的,很简单,因为12M的机器周期是1US嘛。
接下来介绍片上外围仿真菜单了:
peripheral就是外围的意思了。
要注意的是,如果你在开始建立工程的时候选择了不同的CPU,这个菜单可能是有所不同的哦,上面的就是atmel公司的at89c52,以下这个是SST的代表产品:
SST89E564RD的peripheral:
看到了吧,多了个SPI接口的。
其实这个peripheral菜单里面的东西是根据不同的51单片机而有所不同的,看到这里大家应该感觉到KEIL的强大功能了吧。
KEIL每次升级,除了编译器的改进外,更多的是加进不同MCU的支持。
发展到现在,基本上市场上能买到的51,99%KEIL的芯片库都会有。
好了,废话不说,来看看Interrupt菜单的东西:
其实一目了然,就是中断表啦,这里对应的每个中断的名字,对应的向量地址,是否有中断请求,中断是否允许,优先级等东西,窗口下面的栏目就是每个中断对应的一些标志。
正如上面所说,当你选择不同单片机的时候,这里的形式也有所不同,我选的是AT89C52,所以就多出一个Timer2,P1.1/T2EX出来了,关于T2,以后回有详细的章节说明。
接着是IO:
这个不用我多说了吧,不过大家看看2051的IO:
IO仿真窗有个要说一下的地方:
大家看到了,有钩的是代表1,没钩的代表0。
对于上面的P1,它有两排钩钩的,下排的就是管脚状态,上排的是端口锁存器状态,某些时候锁存的值并不是管脚的值,例如说,你置P10为‘1’,但实际上外围的P10已经是接到地上的了,那么锁存的就是1,但管脚的却是0,懂了么?
再看看串口窗:
有人弄的单片机程序总不知道串口的实际波特率被自己设为多少了,其实可以通过软件仿真的这个串口看到的。
你看到那个‘audrate’就是波特率了,实际应该是‘baudrate’干吗印少了个b我就不知道了。
再来就是TIMER窗,根据单片机不同,会出现不同数目的TIMER,这里以TIMER0为例:
其实都不用多说些什么,都是TIMER的设置状态而已。
这里解说一下,上面的几个外围窗的东西都会根据你的程序的运行状态而改变的,例如你设置了定时器0,那么对应的窗口,也就是上面的那个,各个值就会有所改变,最明显的就是TH0,TL0的值,在运行中会不停的自加。
外围窗上的东西大部分都是可以在仿真过程中认为修改的,例如你想定时器在下一个机器周期马上进入中断,那么你可以把TH0,TL0的值都该为0xff,那么再单步一下它就中断来了,有或者你索性在TR0上面打个钩,也就是直接置中断标志,那也会产生中断。
对于INT的下降沿中断,可以打开对应的P32,P33的IO窗口,然后把IO脚置1后再置0,就会产生中断咯。
是不是很方便呢:
)
好了,KEIL软仿真技巧基本教到这里,对于聪明的初学者,到这阶段应该能基本熟练KEIL的操作了吧?
之后我们正式开始以程序设计为主了,后面的内容将会更多地解说程序设计的一些思想和技巧。
如果C语言没过关,单片机基础没扎实的朋友们,请多复习一下相关的书籍。
下一章,将是我们单片机软件工程师之路的起点。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- keil 教程