1_GOODKeil工程文件的建立、设置与目标文件的获得

上传人:muj****520 文档编号:151994695 上传时间:2022-09-14 格式:DOCX 页数:45 大小:353.08KB
收藏 版权申诉 举报 下载
1_GOODKeil工程文件的建立、设置与目标文件的获得_第1页
第1页 / 共45页
1_GOODKeil工程文件的建立、设置与目标文件的获得_第2页
第2页 / 共45页
1_GOODKeil工程文件的建立、设置与目标文件的获得_第3页
第3页 / 共45页
资源描述:

《1_GOODKeil工程文件的建立、设置与目标文件的获得》由会员分享,可在线阅读,更多相关《1_GOODKeil工程文件的建立、设置与目标文件的获得(45页珍藏版)》请在装配图网上搜索。

1、httpp:/wwww.mccusttudiio.ccom/jixxue/ShoowArrticcle.aspp?ArrticcleIID=1106Keill实例教教程(一一)Keill工程建建立及设设置作者:平平凡 教教程来源源:本站站原创 点击数数:17700 更新时时间:220088-7-23 Keill工程文文件的建建立、设设置与目目标文件件的获得得单片机开开发中除除必要的的硬件外外,同样样离不开开软件,我我们写的的汇编语语言源程程序要变变为CPPU可以以执行的的机器码码有两种种方法,一一种是手手工汇编编,另一一种是机机器汇编编,目前前已极少少使用手手工汇编编的方法法了。机机器汇编编是

2、通过过汇编软软件将源源程序变变为机器器码,用用于MCCS-551单片片机的汇汇编软件件有早期期的A551,随随着单片片机开发发技术的的不断发发展,从从普遍使使用汇编编语言到到逐渐使使用高级级语言开开发,单单片机的的开发软软件也在在不断发发展,KKeill软件是是目前最最流行开开发MCCS-551系列列单片机机的软件件,这从从近年来来各仿真真机厂商商纷纷宣宣布全面面支持KKeill即可看看出。KKeill提供了了包括CC编译器器、宏汇汇编、连连接器、库管理理和一个个功能强强大的仿仿真调试试器等在在内的完完整开发发方案,通通过一个个集成开开发环境境(uVVisiion)将将这些部部份组合合在一起起

3、。运行行Keiil软件件需要PPenttiumm或以上上的CPPU,16MMB或更更多RAAM、20MM以上空空闲的硬硬盘空间间、WIIN988、NT、WINN20000、WINNXP等等操作系系统。掌掌握这一一软件的的使用对对于使用用51系列列单片机机的爱好好者来说说是十分分必要的的,如果果你使用用C语言编编程,那那么Keeil几几乎就是是你的不不二之选选(目前前在国内内你只能能买到该该软件、而你买买的仿真真机也很很可能只只支持该该软件),即即使不使使用C语言而而仅用汇汇编语言言编程,其其方便易易用的集集成环境境、强大大的软件件仿真调调试工具具也会令令你事半半功倍。我们将通通过一些些实例来来

4、学习KKeill软件的的使用,在在这一部部份我们们将学习习如何输输入源程程序,建建立工程程、对工工程进行行详细的的设置,以以及如何何将源程程序变为为目标代代码。图图1所示电电路图使使用899C511单片机机作为主主芯片,这这种单片片机性属属于MCCS-551系列列,其内内部有44K的FLAASH ROMM,可以以反复擦擦写,非非常适于于做实验验。899C511的P1引脚脚上接88个发光光二极管管,P33.2P3.4引脚脚上接44个按钮钮开关,我我们的第第一个任任务是让让接在PP1引脚脚上的发发光二极极管依次次循环点点亮。 一、Keeil工工程的建建立首先启动动Keiil软件件的集成成开发环环境

5、,这这里假设设读者已已正确安安装了该该软件,可可以从桌桌面上直直接双击击uViisioon的图图标以启启动该软软件。UVisson启启动后,程程序窗口口的左边边有一个个工程管管理窗口口,该窗窗口有33个标签签,分别别是Fiiless、Reggs、和和Boooks,这这三个标标签页分分别显示示当前项项目的文文件结构构、CPPU的寄寄存器及及部份特特殊功能能寄存器器的值(调调试时才才出现)和和所选CCPU的的附加说说明文件件,如果果是第一一次启动动Keiil,那那么这三三个标签签页全是是空的。图1 图1 简单的键盘、显示板1、源文文件的建建立 使用菜单单“Fille-Neww”或者点点击工具具栏的

6、新新建文件件按钮,即即可在项项目窗口口的右侧侧打开一一个新的的文本编编缉窗口口,在该该窗口中中输入以以下汇编编语言源源程序,例例1: MOVV AA,#0FFEHMAINN: MOOV P1,A RL AA LCAALL DDELAAY AJMMP MMAINNDELAAY: MOOV R7,#2555D1: MOOV R6,#2555DJNZZ RR6,$ DJNNZ R7,D1 RETTEND保存该文文件,注注意必须须加上扩扩展名(汇汇编语言言源程序序一般用用asmm或a511为扩展展名),这这里假定定将文件件保存为为exaam1.asmm。需要说明明的是,源源文件就就是一般般的文本本文件

7、,不不一定使使用Keeil软软件编写写,可以以使用任任意文本本编缉器器编写,而而且,KKeill的编缉缉器对汉汉字的支支持不好好,建议议使用UUltrraEddit之之类的编编缉软件件进行源源程序的的输入。2、建立立工程文文件在项目开开发中,并并不是仅仅有一个个源程序序就行了了,还要要为这个个项目选选择CPPU(Keiil支持持数百种种CPUU,而这这些CPPU的特特性并不不完全相相同),确确定编译译、汇编编、连接接的参数数,指定定调试的的方式,有有一些项项目还会会有多个个文件组组成等,为为管理和和使用方方便,KKeill使用工工程(PProjjectt)这一一概念,将将这些参参数设置置和所需

8、需的所有有文件都都加在一一个工程程中,只只能对工工程而不不能对单单一的源源程序进进行编译译(汇编编)和连连接等操操作,下下面我们们就一步步一步地地来建立立工程。图3加入文件图2选择目标CPU点击“PProjjectt-NNew Proojecct”菜单,出出现一个个对话框框,要求求给将要要建立的的工程起起一个名名字,你你可以在在编缉框框中输入入一个名名字(设设为exxam11),不不需要扩扩展名。点击“保存”按钮,出出现第二二个对话话框,如如图2所示,这这个对话话框要求求选择目目标CPPU(即即你所用用芯片的的型号),Keil支持的CPU很多,我们选择Atmel公司的89C51芯片。点击ATM

9、EL前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面,此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图3所示。选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为C source file(*.c),也就是以

10、C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到exam1.asm,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“Asm Source File(*.a51,*.asm),这样,在列表框中就可以找到exam1.asm文件了。图2图3 双击exxam11.assm文件件,将文文件加入入项目,注注意,在在文件加加入项目目后,该该对话框框并不消消失,等等待继续续加入其其它文件件,但初初学时常常会误认认为操作作没有成成功而再再次双击击同一文文件,这这时会出出现如图图4所示的的对话框框,提示示你所选选文件已已在列表表中,此此时应点点击“确定”,返回回前一对对

11、话框,然然后点击击“Cloose”即可返返回主界界面,返返回后,点点击“Souurcee Grroupp 1”前 图4重复加入文件的错误 的加号,会会发现eexamm1.aasm文文件已在在其中。双击文文件名,即即打开该该源程序序。图4二、工程程的详细细设置工程建立立好以后后,还要要对工程程进行进进一步的的设置,以以满足要要求。首先点击击左边PProjjectt窗口的的Tarrgett 1,然然后使用用菜单“Proojecct-Opttionn foor ttargget tarrgett1”即出现现对工程程设置的的对话框框,这个个对话框框可谓非非常复杂杂,共有有8个页面面,要全全部搞清清可不

12、容容易,好好在绝大大部份设设置项取取默认值值就行了了。图5对目标进行设置设置对话话框中的的Tarrgett页面,如如图5所示,XXtall后面的的数值是是晶振频频率值,默默认值是是所选目目标CPPU的最最高可用用频率值值,对于于我们所所选的AAT899C511而言是是24MM,该数数值与最最终产生生的目标标代码无无关,仅仅用于软软件模拟拟调试时时显示程程序执行行时间。正确设设置该数数值可使使显示时时间与实实际所用用时间一一致,一一般将其其设置成成与你的的硬件所所用晶振振频率相相同,如如果没必必要了解解程序执执行的时时间,也也可以不不设,这这里设置置为122。图5Memoory Moddel用用

13、于设置置RAMM使用情情况,有有三个选选择项,Small是所有变量都在单片机的内部RAM中;Compact是可以使用一页外部扩展RAM,而Larget则是可以使用全部外部的扩展RAM。Code Model用于设置ROM空间的使用,同样也有三个选择项,即Small模式,只用低于2K的程序空间;Compact模式,单个函数的代码量不能超过2K,整个程序可以使用64K程序空间;Larget模式,可用全部64K空间。Use on-chip ROM选择项,确认是否仅使用片内ROM(注意:选中该项并不会影响最终生成的目标代码量);Operating项是操作系统选择,Keil提供了两种操作系统:Rtx ti

14、ny和Rtx full,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何操作系统);Off Chip Code memory用以确定系统扩展ROM的地址范围,Off Chip xData memory组用于确定系统扩展RAM的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话话框中的的OuttPutt页面,如如图6所示,这这里面也也有多个个选择项项,其中中Creeat Hexx fiile用用于生成成可执行行代码文文件(可可以用编编程器写写入单片片机芯片片的HEEX格式

15、式文件,文文件的扩扩展名为为.HEEX),默默认情况况下该项项未被选选中,如如果要写写片做硬硬件实验验,就必必须选中中该项,这这一点是是初学者者易疏忽忽的,在在此特别别提醒注注意。选选中Deebugg innforrmattionn将会产产生调试试信息,这这些信息息用于调调试,如如果需要要对程序序进行调调试,应应当选中中该项。Broowsee innforrmattionn是产生生浏览信信息,该该信息可可以用菜菜单viiew-Brrowsse来查查看,这这里取默默认值。按钮“Sellectt Fooldeer ffor objjectts”是用来来选择最最终的目目标文件件所在的的文件夹夹,默认

16、认是与工工程文件件在同一一个文件件夹中。Namme oof EExeccutaablee用于指指定最终终生成的的目标文文件的名名字,默默认与工工程的名名字相同同,这两两项一般般不需要要更改。图6图6对输出进行控制工程设置置对话框框中的其其它各页页面与CC51编编译选项项、A551的汇汇编选项项、BLL51连连接器的的连接选选项等用用法有关关,这里里均取默默认值,不不作任何何修改。以下仅仅对一些些有关页页面中常常用的选选项作一一个简单单介绍。Lisstinng标签签页用于于调整生生成的列列表文件件选项。在汇编编或编译译完成后后将产生生(*.lstt)的列列表文件件,在连连接完成成后也将将产生(*

17、.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。图7代码生成控制C51标标签页用用于对KKeill的C511编译器器的编译译过程进进行控制制,其中中比较常常用的是是“Codde OOptiimizzatiion”组,如如图7所示,该该组中LLeveel是优优化等级级,C551在对对源程序序进行编编译时,可可以对代代码多至至9级优化化,默认认使用第第8级,一一般不必必修改,如如果在编编译中出出现一些些问题,可可以降低低优化级

18、级别试一一试。EEmphhasiis是选选择编译译优先方方式,第第一项是是代码量量优化(最最终生成成的代码码量小);第二项项是速度度优先(最最终生成成的代码码速度快快);第第三项是是缺省。默认的的是速度度优先,可可根据需需要更改改。图7设置完成成后按确确认返回回主界面面,工程程文件建建立、设设置完毕毕。三、编译译、连接接图9正确编译、连接之后的结果图8有关编译、连接、项目设置的工具条在设置好好工程后后,即可可进行编编译、连连接。选选择菜单单Proojecct-Buiild tarrgett,对当当前工程程进行连连接,如如果当前前文件已已修改,软软件会先先对该文文件进行行编译,然然后再连连接以产

19、产生目标标代码;如果选选择Reebuiild Alll taargeet ffilees将会会对当前前工程中中的所有有文件重重新进行行编译然然后再连连接,确确保最终终生产的的目标代代码是最最新的,而而Traansllatee .项则仅仅对该文文件进行行编译,不不进行连连接。以以上操作作也可以以通过工工具栏按按钮直接接进行。图8是有关关编译、设置的的工具栏栏按钮,从从左到右右分别是是:编译译、编译译连接、全部重重建、停停止编译译和对工工程进行行设置。图8编译过程程中的信信息将出出现在输输出窗口口中的BBuilld页中中,如果果源程序序中有语语法错误误,会有有错误报报告出现现,双击击该行,可可以定

20、位位到出错错的位置置,对源源程序反反复修改改之后,最最终会得得到如图图9所示的的结果,提提示获得得了名为为exaam1.hexx的文件件,该文文件即可可被编程程器读入入并写到到芯片中中,同时时还产生生了一些些其它相相关的文文件,可可被用于于Keiil的仿仿真与调调试,这这时可以以进入下下一步调调试的工工作。图9教程录入入:平凡凡 责任任编辑:平凡 上一篇教教程: C语言言综合练练习(22) 下一篇教教程: Keiil的调调试命令令、在线线汇编与与断点设设置Keill的调试试命令、在线汇汇编与断断点设置置作者:平平凡 教教程来源源:本站站原创 点击数数:21100 更新时时间:220088-7-

21、24 上 一讲讲中我们们学习了了如何建建立工程程、汇编编、连接接工程,并并获得目目标代码码,但是是做到这这一步仅仅仅代表表你的源源程序没没有语法法错误,至至于源程程序中存存在着的的其它错错误,必必须通 过调试试才能发发现并解解决,事事实上,除除了极简简单的程程序以外外,绝大大部份的的程序都都要通过过反复调调试才能能得到正正确的结结果,因因此,调调试是软软件开发发中重要要的一个个环节,这这一 讲讲将介绍绍常用的的调试命命令、利利用在线线汇编、各种设设置断点点进行程程序调试试的方法法,并通通过实例例介绍这这些方法法的使用用。一、常用用调试命命令在对工程程成功地地进行汇汇编、连连接以后后,按CCtr

22、ll+F55或者使使用菜单单Debbug-Sttartt/Sttop Debbug Sesssioon即可可进入调调试状态态,Keeil内内建了一一个仿真真CPUU用来模模拟执行行程序,该该仿真CCPU功功 能强强大,可可以在没没有硬件件和仿真真机的情情况下进进行程序序的调试试,下面面将要学学的就是是该模拟拟调试功功能。不不过在学学习之前前必须明明确,模模拟毕竟竟只是模模拟,与与真实的的硬件执执行 程程序肯定定还是有有区别的的,其中中最明显显的就是是时序,软软件模拟拟是不可可能和真真实的硬硬件具有有相同的的时序的的,具体体的表现现就是程程序执行行的速度度和各人人使用的的计算机机有关,计计 算机

23、机性能越越好,运运行速度度越快。图1调试工具条进入调试试状态后后,界面面与编缉缉状态相相比有明明显的变变化,DDebuug菜单单项中原原来不能能用的命命令现在在已可以以使用了了,工具具栏会多多出一个个用于运运行和调调试的工工具条,如如图1所示,DDebuug菜单单上的大大部份命命令可以以在此找找到对应应的快捷捷按钮,从从左到右右依次是是复位、运行、暂停、单步、过程单单步、执执行完当当前子程程序、运运行到当当前行、下一状状态、打打开跟踪踪、观察察跟踪、反汇编编窗口、观察窗窗口、代代码作用用范围分分析、11串行行窗口、内存窗窗口、性性能分析析、工具具按钮等等命令。图1 调试工工具条 图2调试窗口学

24、 习程程序调试试,必须须明确两两个重要要的概念念,即单单步执行行与全速速运行。全速执执行是指指一行程程序执行行完以后后紧接着着执行下下一行程程序,中中间不停停止,这这样程序序执行的的速度很很 快,并并可以看看到该段段程序执执行的总总体效果果,即最最终结果果正确还还是错误误,但如如果程序序有错,则则难以确确认错误误出现在在哪些程程序行。单步执执行是每每次执行行一行程程序,执执行完 该行程程序以后后即停止止,等待待命令执执行下一一行程序序,此时时可以观观察该行行程序执执行完以以后得到到的结果果,是否否与我们们写该行行程序所所想要得得到的结结果相同同,借此此可以找找到程序序 中问问题所在在。程序序调

25、试中中,这两两种运行行方式都都要用到到。使用用菜单SSTEPP或相应应的命令令按钮或或使用快快捷键FF11可可以单步步执行程程序,使使用菜单单STEEP OOVERR或功能能键F110可以以以过程程单步形形式执行行命令,所所谓过程程单步,是是指将汇汇编语言言中的子子程序或或高级语语言中的的函数作作为一个个语句来来全速执执行。按下F111键,可可以看到到源程序序窗口的的左边出出现了一一个黄色色调试箭箭头,指指向源程程序的第第一行,如如图2所示。每按一一次F111,即即执行该该箭头所所指程序序行,然然后箭头头指向下下一行,当当箭头指指向LCCALLL DDELAAY行时时,再次次按下FF11,会会

26、发现,箭箭头指向向了延时时子程序序DELLAY的的第一行行。不断断按F111键,即即可逐步步执行延延时子程程序。图2 单单步执行行通过单步步执行程程序,可可以找出出一些问问题的所所在,但但是仅依依靠单步步执行来来查错有有时是困困难的,或或虽能查查出错误误但效率率很低,为为此必须须辅之以以其它的的方法,如如本例中中的延时时程序是是通过将将D2: DJJNZ R66,D22这一行行程序执执行六万万多次来来达到延延时的目目的,如如果用按按F111六万多多次的方方法来执执行完该该程序行行,显然然不合适适,为此此,可以以采取以以下一些些方法,第第一,用用鼠标在在子程序序的最后后一行(ret)点一下,把光

27、标定位于该行,然后用菜单Debug-Run to Cursor line(执行到光标所在行),即可全速执行完黄色箭头与光标之间的程序行。第二,在进入该子程序后,使用菜单Debug-Step Out of Current Function(单步执行到该函数外),使用该命令后,即全速执行完调试光标所在的子程序或子函数并指向主程序中的下一行程序(这里是JMP LOOP行)。第三种方法,在开始调试的,按F10而非F11,程序也将单步执行,不同的是,执行到lcall delay行时,按下F10键,调试光标不进入子程序的内部,而是全速执行完该子程序,然后直接指向下一行“JMP LOOP”。灵活应用这几种方

28、法,可以大大提高查错的效率。二、在线线汇编图3在线汇编窗口在进入KKeill的调试试环境以以后,如如果发现现程序有有错,可可以直接接对源程程序进行行修改,但但是要使使修改后后的代码码起作用用,必须须先退出出调试环环境,重重新进行行编译、连接后后再次进进入调试试,如果果只是需需要对某某些程序序行进行行测试,或或仅需对对源程序序进行临临时的修修改,这这样的过过程未免免有些麻麻烦,为为此Keeil软软件提供供了在线线汇编的的能力,将将光标定定位于需需要修改改的程序序行上,用用菜单DDebuug-Inllinee Asssammblyy即可出出现如图图3的对话话框,在在Entter Neww后面的的编

29、缉框框内直接接输入需需更改的的程序语语句,输输入完后后键入回回车将自自动指向向下一条条语句,可可以继续续修改,如如果不再再需要修修改,可可以点击击右上角角的关闭闭按钮关关闭窗口口。图3 在在线汇编编三、断点点设置程 序调调试时,一一些程序序行必须须满足一一定的条条件才能能被执行行到(如如程序中中某变量量达到一一定的值值、按键键被按下下、串口口接收到到数据、有中断断产生等等),这这些条件件往往是是异步发发 生或或难以预预先设定定的,这这类问题题使用单单步执行行的方法法是很难难调试的的,这时时就要使使用到程程序调试试中的另另一种非非常重要要的方法法断点点设置。断点设设置的方方法有多多种,常常 用的

30、的是在某某一程序序行设置置断点,设设置好断断点后可可以全速速运行程程序,一一旦执行行到该程程序行即即停止,可可在此观观察有关关变量值值,以确确定问题题所在。在程序序行设置置/移除断断点的方方法是将将光标定定位于需需要设置置断点的的程序行行,使用用菜单DDebuug-Inssertt/Reemovve BBreaakPoointt设置或或移除断断点(也也可以用用鼠标在在该行双双击实现现同样的的功能);Debbug-Ennablle/DDisaablee Brreakkpoiint是是开启或或暂停光光标所在在行的断断点功能能;Deebugg-DDisaablee Alll BBreaakpooin

31、tt暂停所所有断点点;Deebugg-KKilll Alll BBreaakPoointt清除所所有的断断点设置置。这些些功能也也可以用用工具条条上的快快捷按钮钮进行设设置。除了在某某程序行行设置断断点这一一基本方方法以外外,Keeil软软件还提提供了多多种设置置断点的的方法,按按Debbug-Brreakkpoiintss即出现现一个对对话框,该该对话框框用于对对断点进进行详细细的设置置,如图图4所示。图4中EExprresssionn后的编编缉框内内用于输输入表达达式,该该表达式式用于确确定程序序停止运运行的条条件,这这里表达达式的定定义功能能非常强强大,涉涉及到KKeill内置的的一套调

32、调试语法法,这里里不作详详细说明明,仅举举若干实实例,希希望读者者可以举举一反三三。图4 断断点表达达式1) 在在Exppersssioon中键键入a=0xxf7,再再点击DDefiine即即定义了了一个断断点, 注意,aa后有两两个等号号,意即即相等。该表达达式的含含义是:如果aa的值到到达0xxf7则则停止程程序运行行。除使使用相等等符号之之外,还还可以使使用,=,Peerioodicc Wiindoow UUpdaata(周周期更新新窗口),确确认该项项处于被被选中状状态,即即可在全全速运行行时动态态地观察察有关值值的变化化。但是是,选中中该项,将将会使程程序模拟拟执行的的速度变变慢。二

33、、各种种窗口在在程序调调试中的的用途以下通过过一个高高级语言言程序来来说明这这些窗口口的使用用。例22: #inccludde regg51.hsbitt P11_0=P10; /定定义P11.0voidd mDDelaay(uunsiigneed ccharr DeelayyTimme) uunsiigneed iint j=00; ffor(;DeelayyTimme00;DeelayyTimme-) foor(jj=0;jDiissaamblly WWinddow可可以打开开反汇编编窗口,该该窗口可可以显示示反汇编编后的代代码、源源程序和和相应反反汇编代代码的混混合代码码,可以以在该窗窗

34、口进行行在线汇汇编、利利用该窗窗口跟踪踪已找行行的代码码、在该该窗口按按汇编代代码的方方式单步步执行,这这也是一一个重要要的窗口口。打开开反汇编编窗口,点点击鼠标标右键,出出现快捷捷菜单,如如图6所示,其其中Miixedd Moode是是以混合合方式显显示,AAsseemblly MModee是以反反汇编码码方式显显示。程程序调试试中常使使用设置置断点然然后全速速运行的的方式,在在断点处处可以获获得各变变量值,但但却无法法知道程程序到达达断点以以前究竟竟执行了了哪些代代码,而而这往往往是需要要了解的的,为此此,Keeil提提供了跟跟踪功能能,在运运行程序序之前打打开调试试工具条条上的允允许跟踪

35、踪代码开开关,然然后全速速运行程程序,当当程序停停止运行行后,点点击查看看跟踪代代码按钮钮,自动动切换到到反汇编编窗口,如如图6所示,其其中前面面标有“-”号的行行就是中中断以前前执行的的代码,可可以按窗窗口边的的上卷按按钮向上上翻查看看代码执执行记录录。k图6 反反汇编窗窗口 利用工程程窗口可可以观察察程序执执行的时时间,下下面我们们观察一一下该例例中延时时程序的的延时时时间是否否满足我我们的要要求,即即是否确确实延时时10毫秒秒,展开开工程窗窗口Reegs页页中的SSys目目录树,其其中的SSec项项记录了了从程序序开始执执行到当当前程序序流逝的的秒数。点击RRST按按钮以复复位程序序,S

36、eec的值值回零,按按下F110键,程程序窗口口中的黄黄色箭头头指向mmDellay(10)行,此此时,记记录下SSec值值为0.0000389900,然然后再按按F100执行完完该段程程序,再再次查看看Secc的值为为0.00105512000,两两者相减减大约是是0.001秒,所所以延时时时间大大致是正正确的。读者可可以试着着将延时时程序中中的unnsiggnedd innt改为为unssignned chaar试试试看时间间是否仍仍正确。注意,使使用这一一功能的的前提是是在项目目设置中中正确设设置晶振振的数值值。Keill提供了了串行窗窗口,我我们可以以直接在在串行窗窗口中键键入字符符,

37、该字字符虽不不会被显显示出来来,但却却能传递递到仿真真CPUU中,如如果仿真真CPUU通过串串行口发发送字符符,那么么这些字字符会在在串行窗窗口显示示出来,用用该窗口口可以在在没有硬硬件的情情况下用用键盘模模拟串口口通讯。下面通通过一个个例子说说明Keeil串串行窗口口的应用用。该程程序实现现一个行行编缉功功能,每每键入一一个字母母,会立立即回显显到窗口口中。编编程的方方法是通通过检测测RI是否否等于11来判断断串行口口是否有有字符输输入,如如果有字字符输入入,则将将其送到到SBUUF,这这个字符符就会在在串行窗窗口中显显示出来来。其中中serr_innit是是串行口口初始化化程序,要要使用串

38、串行口,必必须首先先对串行行口进行行初始化化。例33: MOV SPP,#55FH ;堆栈栈初始化化CALLL SEER_IINITT ;串串行口初初始化LOOPP: JBC RII,NEEXT ;如果果串口接接收到字字符,转转JMP LOOOP ;否否则等待待接收字字符NEXTT:MOV A,SSBUFF ;从从SBUUF中取取字符MOV SBUUF,AA ;回回送到发发送SBBUF中中SENDD: JBC TI,LOOOP ;发送完完成,转转LOOOPJMP SENND ;否否则等待待发送完完SER_INIIT: ;中断断初始化化 MOVV SCCON,#500H ORLL TMMOD,#

39、200H ORLL PCCON,#800H MOVV THH1,#0FDDH ;设定波波特率 SETTB TRR1 ;定时器器1开始运运行 SETTB REEN ;允许接接收 SETTB SMM2 RETT ENDD 输入源程程序,并并建立项项目,正正确编译译、连接接,进入入调试后后,全速速运行,点点击串行行窗口11按钮,即即在原源源程序窗窗口位置置出现一一个空白白窗口,击击键,相相应的字字母就会会出现在在该窗口口中。在在窗口中中击鼠标标右键,出出现一个个弹出式式菜单,选选择“Asccii Modde”即以Assciii码的方方式显示示接收到到的数据据;选择择“Hexx Moode”以十六六进

40、制码码方式显显示接收收到的数数据;选选择“Cleear Winndoww”可以清清除窗口口中显示示的内容容。由于部份份CPUU具有双双串口,故故Keiil提供供了两个个串行窗窗口,我我们选用用的899C511芯片只只有一个个串行口口,所以以Serriall 2串串行窗口口不起作作用。小技巧:凡是鼠鼠标单击击然后按按F2的地地方都可可以用鼠鼠标连续续单击两两次(注注意:不不是双击击)来替替代。教程录入入:平凡凡 责任任编辑:平凡 上一篇教教程: Keiil的调调试命令令、在线线汇编与与断点设设置 下一篇教教程: Keiil的辅辅助工具具和部份份高级技技巧Keill的辅助助工具和和部份高高级技巧巧

41、作者:平平凡 教教程来源源:本站站原创 点击数数:23331 更新时时间:220088-7-24 在前面的的几讲中中我们介介绍了工工程的建建立方法法,常用用的调试试方法,除除此之外外,Keeil还还提供了了一些辅辅助工具具如外围围接口、性能分分析、变变量来源源分析、代码作作用分析析等,帮帮助我们们了解程程的性能能、查找找程序中中的隐藏藏错误,快快速查看看程序变变量名信信息等,这这一讲中中将对这这些功工工具作一一介绍,另另外还将将介绍KKeill的部份份高级调调试技巧巧。一、 辅辅助工具具这部份功功能并不不是直接接用来进进行程序序调试的的,但可可以帮助助我们进进行程序序的调试试、程序序性能的的分

42、析,同同样是一一些很有有用的工工具。1、外围围接口图1外围设备之并行端口为了能够够比较直直观地了了解单片片机中定定时器、中断、并行端端口、串串行端口口等常用用外设的的使用情情况,KKeill提供了了一些外外围接口口对话框框,通过过Perriphheraals菜菜单选择择,该菜菜单的下下拉菜单单内容与与你建立立项目时时所选的的CPUU有关,如如果是选选择的889C551这一一类“标准”的51机,那那么将会会有Innterrruppt(中中断)、I/OO Poortss(并行行I/OO口)、Serriall(串行行口)、Timmer(定定时/计数器器)这四四个外围围设备菜菜单。打打开这些些对话框框

43、,列出出了外围围设备的的当前使使用情况况,各标标志位的的情况等等,可以以在这些些对话框框中直观观地观察察和更改改各外围围设备的的运行情情况。图1外围围设备之之并行端端口下面我们们通过一一个简单单例子看看一看并并行端口口的外围围设备对对话框的的使用。例4: MMOV A,#0FFEHLOOPP: MOOV P1,A RL AA CALLL DELLAY ;延延时1000毫秒秒 JMPP LOOOP 其其中延时时1000毫秒的的子程序序请自行行编写。图2外围设备之定时器编译、连连接进入入调试后后,点击击Perriphheraals-I/O-PPortts-Porrt 11打开,如如图1所示,全全速

44、运行行,可以以看到代代表各位位的勾在在不断变变化(如如果看不不到变化化,请点点击Viiew-Peerioodicc Wiindoow UUpdaata),这这样可以以形象地地看出程程序执行行的结果果。注:如果你你看到的的变化极极快,甚甚至看不不太清楚楚,那么么说明你你的计算算机性能能好,模模拟执行行的速度度快,你你可以试试着将加加长延时时程序的的时间以以放慢速速度。模模拟运行行速度与与实际运运行的速速度无法法相同是是软件模模拟的一一个固有有弱点。点击Peerippherralss-II/O-Porrts-Tiimerr0即出出现图22所示定定时/计数器器0的外围围接口界界面,可可以直接接选择M

45、Modee组中的的下拉列列表以确确定定时时/计数工工作方式式,0-3四种种工作方方式,设设定定时时初值等等,点击击选中TTR0,staatuss后的sttop就就变成了了runn,如果果全速运运行程序序,此时时th00,tll0后的的值也快快速地开开始变化化(同样样要求PPeriiodiic WWinddow Upddataa处于选选中状态态),直直观地演演示了定定时/计数器器的工作作情况(当当然,由由于你的的程序未未对此写写任何代代码,所所以程序序不会对对此定时时/计数器器的工作作进行处处理)。图2外围围设备之之定时器器 2、性能能分析Keill提供了了一个性性能分析析工具,利利用该工工具,我我们可以以了解程程序中哪哪些部份份的执行行时间最最长,调调用次数数最多,从从而了解解影响整整个程序序中执行行速度的的瓶颈。下面通通过一个个实例来来看一看看这个工工具如何何使用,例例5: #inccludde regg51.hsbitt

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!