![Keil C51 软件使用指南 - PROTEUS系统仿真系列课件.ppt_第1页](http://file1.renrendoc.com/fileroot2/2020-1/6/070bb44a-727c-432a-ad98-1c28e1b807a2/070bb44a-727c-432a-ad98-1c28e1b807a21.gif)
![Keil C51 软件使用指南 - PROTEUS系统仿真系列课件.ppt_第2页](http://file1.renrendoc.com/fileroot2/2020-1/6/070bb44a-727c-432a-ad98-1c28e1b807a2/070bb44a-727c-432a-ad98-1c28e1b807a22.gif)
![Keil C51 软件使用指南 - PROTEUS系统仿真系列课件.ppt_第3页](http://file1.renrendoc.com/fileroot2/2020-1/6/070bb44a-727c-432a-ad98-1c28e1b807a2/070bb44a-727c-432a-ad98-1c28e1b807a23.gif)
![Keil C51 软件使用指南 - PROTEUS系统仿真系列课件.ppt_第4页](http://file1.renrendoc.com/fileroot2/2020-1/6/070bb44a-727c-432a-ad98-1c28e1b807a2/070bb44a-727c-432a-ad98-1c28e1b807a24.gif)
![Keil C51 软件使用指南 - PROTEUS系统仿真系列课件.ppt_第5页](http://file1.renrendoc.com/fileroot2/2020-1/6/070bb44a-727c-432a-ad98-1c28e1b807a2/070bb44a-727c-432a-ad98-1c28e1b807a25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Keil C51 软件的使用,单片机系统设计,2011年03月,主要内容,4.1 工程文件的建立及设置 4.2 程序调试 4.3 Keil 程序调试窗口,Keil C51 uVision2是目前最流行的C51集成开发环境(IDE),集编辑,编译,仿真于一体,支持C51及汇编编程,界面友好,易学易用。下面通过简单的编程、调试,说明Keil C51软件的基本使用方法和基本的调试技巧。 进入Keil C51后,屏幕如图4-1所示。几秒后出现Keil C51应用程序界面,如图4-2所示。,图4-1 启动Keil C51时的屏幕,图4-2 Keil C51的应用程序界面,4.1 工程文件的建立及设置,4
2、.1.1 工程文件的建立和编译、连接 Keil C51是Windows版的软件,不管使用汇编或C语言编程,也不管是一个还是多个文件的程序,都先要建立一个工程文件。没有工程文件,将不能进行编译和仿真。图4-2左边有一个工程管理窗口,该窗口有3个标签,分别是“Files”、“Regs”和“Books”,分别用于显示当前项目的文件结构、CPU内部的寄存器及部分特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件。工程文件的建立,可分为以下几步。 (1)新建工程 单击“Project”菜单,在弹出的下拉菜单中选中“New Project”选项,如图4-3所示,输入工程文件的名字(如ads),选
3、择要保存的路径(如保存到C51目录里),然后单击“保存”按钮,如图4-4所示。,图4-3 新建工程菜单的选择,图4-4 工程文件的存盘,(2)选择单片机的型号 在第(1)步后会弹出一个对话框,要求选择单片机的型号,如图4-5所示。Keil C51几乎支持所有的51内核的单片机,如选择Atmel 的“AT89C1051”,右边栏是对这个单片机的基本的说明,然后单击“确定”按钮。 (3)为工程添加程序文件:单击“File”菜单,再在下拉菜单中单击“New”选项,新建文件后屏幕如图4-6所示。,图4-5 CPU的选择,图4-6 新建文件的编辑窗体,此时光标在编辑窗口里闪烁,这时可以输入用户的应用程序
4、了,但最好先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如图4-7所示。在“文件名”栏右侧的编辑框中,输入欲使用的文件名(如Text1)及其扩展名。,图4-7 新建程序文件的存盘,注意:如果用语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”按钮。,(4)将程序文件添加到工程中 回到项目管理窗口,单击“Target 1”前面的“”号,然后在“Source Group 1”文件夹上单击右键,弹出下拉菜单,如图4-8所示。 然后单击“Add Files to GroupSource Group 1
5、”,找到刚才建立的文件Test1.c。因为是c程序文件,所以文件类型选择“C Source file(*.c)”。如果是汇编文件,就选择“asm source file”;如果是目标文件,就选择“Object file”;如果是库文件,选择“Library file”。最后单击“Add”按钮。,图4-8 程序文件添加到工程的选择菜,单击“Add”按钮之后,窗口不会消失,如果要添加多个文件,可以不断添加,添加完毕此时再单击“Close”按钮关闭该窗口。在图4-9中,注意到“Source Group 1”文件夹中多了一个子项“Text1.c”,子项的多少与所增加的源程序的多少相同。,图4-9 子项
6、“Text1.c”文件,(5)在编辑窗体中输入如下的C语言源程序 #include /包含文件 #include void main(void) /主函数 SCON=0 x52; TMOD=0 x20; TH1=0 xf3; TR1=1; /此行及以上3行为 PRINTF函数所必需 TI=1; printf(“Hello world. n”); /打印程序执行的信息 while(1); ,在输入上述程序时,可以看到事先保存待编辑的文件的好处,即Keil C51会自动识别关键字,并以不同的颜色提示用户加以注意。这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如图4-10所示。,(6)代
7、码的编译和连接 在建立好工程文件后,就可对程序文件进行编译和连接,单击“Project”菜单,在其下拉菜单中单击“Built Target”选项(或者使用快捷键F7),则会对当前工程进行连接。如果当前文件已修改,软件先对当前文件进行编译,然后再连接以产生目标代码;若没有修改,则不会编译。如果选择“Rebuild All target”,将会对当前工程中的所有文件重新进行编译后再连接,确保最终产生的目标代码是最新的;而选择“translate”项则仅对该文件进行编译,不进行连接。,(6)代码的编译和连接,编译信息显示在输出窗口“Build”页中,如图4-10所示。若编译后报错“IO.C(65):
8、 error C141: syntax error near while, target not created”,说明“IO.c”程序文件的65行在“while”附近有语法错误,目标文件没有建立。用鼠标双击该行,则编辑窗口出现一个蓝色箭头,指出出错位置。修改后重新编译,若成功,最终会得到图4-10所示的信息。 以上操作也可以通过图4-11所示的工具栏按钮直接进行,工具栏图标从左到右分别是“编译”、“当前工程编译连接”、“全部重建”、“停止编译”、“下载到Flash”和“对工程属性进行设置”的工具按钮。,图4-10 程序文件的建立,图4-11 编译、连接、工程设置等的工具条,4.1.2 设置工
9、程文件的属性,单击“Project”菜单,在下拉菜单中单击“Options for Target Target 1”,可更改工程属性设置,其中常用的标签页是“Device”、“Target”、“Output”、“Listing”、“C51”和“Debug”。,1“Target”标签属性 (1)选择“Target”选项,如图4-12所示。 Xtal(MHz):设置单片机的工作频率。该数值与最终产生的目标代码无关,这样做的好处是可以在软件仿真时,计算出程序运行时间。将其设置成硬件系统所用的晶振频率,则显示时间与实际所用时间一致。默认值为24.0MHz。 Use On-chip ROM(0 x0-0
10、 x7FF)若使用片内Flash ROM,则选择该项,默认不选这项。 Off-chip Code memory:设置外接的ROM的开始地址和大小,默认无。 Off-chip Xdata memory:设置外部数据存储器的起始地址和大小,默认无。 Code Banking:使用Code Banking技术Keil可以支持程序代码超过64KB的情况,最大可以有2MB的程序代码,默认不选这项。,图4-12 “Target”属性标签,(2)“Memory Model”有3个选项,如图4-13所示。,图4-13 Memory Model选项,Small:变量存储在内部RAM中,默认选Small。 Com
11、pact:变量存储在外部RAM里,使用8位页间接寻址。 Large:变量存储在外部RAM里,使用16位间接寻址。 三种存储方式都支持内部256B和外部64KB的RAM,区别是变量默认的存储位置。,(3)Code Rom Size 有3个选项,如图4-14所示。,图4-14 Code Rom Size选项,Small:program 2K or less:整个工程不超过2KB的代码,适用于89C2051这些芯片。 Compact:2K functions,64K program:表示每个子函数大小不超过2KB,整个工程可以有64KB的代码。 Large:64K program:表示程序或子函数都
12、可以大到64KB,使用code banking还可以更大,默认选Large。在确认每个子函数不会超过2KB时,可以选择Compact。,(4)Operating 有3个选项,如图4-15所示。,图4-15 Memory Model选项,None:表示不使用操作系统。 RTX-51 Tiny:表示使用Tiny操作系统。 RTX-51 Full:表示使用Full操作系统。 Keil C51提供了Tiny多任务操作系统,使用定时器0来做任务切换,效率很低,无实用价值。Full需要用户使用外部RAM,且需要单独购买运行库,不能使用,默认选None。,2“Output”标签属性 “Output”标签属性
13、设置窗口如图4-16所示。,图4-16 “Output”属性标签,(1)Select Folder for Objects:选择编译之后的目标文件存储在哪个目录里,默认位置为工程文件的目录里。 (2)Name of Executable:设置生成的目标文件的名字,默认是工程文件的名字。 (3)Create Executable:是生成OMF以及HEX文件。OMF文件名同工程文件名但没有带扩展名。 (4)Create Hex File:默认情况下未被选中,如果要写片,就必须选中该项。这一点请务必注意,否则编译后不生成Hex文件。 (5)Create Library:生成lib库文件,默认不选。
14、(6)After Make部分有以下几个设置: Beep When Complete:编译完成之后发出咚的声音。 Start Debugging:编译完成之后,马上启动调试(软件仿真或硬件仿真),默认不选中。 Run User Program #1,Run User Program #2:根据需要设置编译之后运行的应用程序,比如自己编写的烧写芯片的程序,或调用外部的仿真程序。,3“Listing”标签属性 “Listing”标签页用于调整生成的列表文件选项,一般常设置成如图4-17所示。,图4-17 “Listing”属性标签,Select Folder for Listings:选择列表文件
15、存放的目录,默认为工程文件所在的目录。 *.lst *.m51文件对了解程序用到了那些idata、data、bit、xdata、code、RAM、ROM、Stack等有很重要的作用。 Assembly Code生成汇编的代码,根据需要决定是否选择。 4“C51”标签页 “C51”标签页用于对Keil的C51编译器编译过程进行控制,其中比 较常用的是“Code Optimization”组,如图4-18所示。 该组中“Level”是优化等级,C51在对源程序进行编译时可以对代码多至9级优化,默认使用第8级,一般不必修改。如果在编译中出现一些问题可以降低优化级别试一试。 “Emphasis”是选择
16、编译优先方式,第一项是代码量优化(最终生成的代码量小),第二项是速度优先(最终生成的代码速度快),第三项是默认的,是速度优先,可根据需要更改。,5“Debug”标签页 “Debug”选项卡用来设置调试器,如图4-19所示。可以选择硬件、软件仿真器进行仿真。,图4-18 “C51”属性标签,图4-19 “Debug”属性标签,(1)Use Simulator:选择Keil内置的模拟调试器,进行软件仿真。该设置为工程默认设置。 (2)Use:选择硬件仿真,默认的是“Keil Monitor-51 Drive”。如果发现是其他参数,可以单击下拉列表进行重新设置,选择完成后单击“Setting”按钮,
17、选择PC所用的串行口、通信的波特率(通常可以使用38400),其他设置一般不需要更改,完成后单击“OK”按钮,如图4-20所示。,图4-20 硬件仿真的通信设置对话框,(3)Load Application at Start:启动时直接装载程序。 (4)Go till main:装载后直接运行到main函数。,4.2 程序调试,前面所进行的代码的编译和连接,只能确定源程序没有语法错误。至于源程 序中是否存在错误,必须通过反复调试才能发现,因此调试是软件开发中的 一个重要环节。 4.2.1 常用调试命令 单击“Debug”菜单,在下拉菜单中单击“Start/Stop Debug Session”
18、(或 者使用快捷键Ctrl+F5),即可进入/退出调试状态,模拟执行程序。此时, 工具栏会多出一个用于运行和调试的工具条。如图4-21所示,“Debug”菜 单上的大部分命令可以在此找到对应快捷按钮,从左到右依次是复位、全速 运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状 态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1# 串行窗口、内存窗口、性能分析、工具按钮等命令。,图4-21 调试工具条,复位按钮可模拟芯片的复位,使程序回到最开头处执行。过程单 步就是说将汇编语言或高级语言中的函数作为一个语句全速运 行,不逐行执行被调用子函数。打开1#串行窗口,可以
19、看到从51 芯片的串行口输入/输出的字符。 单击“Debug”菜单在下拉菜单中单击“Go”选项(或者使用 快捷键F5)单击“Debug”菜单在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc)单击“View”菜单在 下拉菜单中单击“Serial Windows #1”选项,就可以在Serial Windows #1看到前面所建的test1.c程序运行后的结果,其结果 如图4-22所示。,图4-22 程序运行结果的显示,4.2.2 在线汇编,在调试过程中如果发现错误,可以直接对程序进行修改,但是 不能编译,必须退出调试环境才能编译,然后再进入调试,这 样使调试过程变得麻烦。为
20、此Keil软件提供了在线汇编的功 能。 把光标放在需要修改的程序行上,选择菜单 “Debug”“Inline Assembly”,出现如图4-23的对话 框。在“Enter New”后面的编辑框内输入新的程序语句,输 入完后按回车键将自动指向下一条语句,可以继续修改。如果 不再需要修改,单击右上角的关闭按钮关闭窗口。,图4-23 在线汇编对话框,4.2.3 断点设置,程序调试时,一些程序行必须满足一定的条件才能被执行到,这时就要使用到程序调试中一种非常重要的方法断点设置。 断点设置的方法有多种,常用的是在某一程序行设置断点,设置好断点后可以全速运行程序,一直执行到该程序行即停止,可在此观察有关
21、变量值,以确定问题所在。在程序行设置/移除断点的方法:将光标定位于需要设置断点的程序行,使用菜单“Debug”“Insert/Remove Breakpoint”设置或移除断点(也可以在该行双击实现);“Debug”“Enable/Disable Breakpoint”是开启或暂停光标所在行的断点功能;“Debug”“Disable All Breakpoint”暂停所有断点;“Debug”“Kill All Breakpoint”清除所有的断点设置。这些功能也可以用工具条上的快捷按钮进行设置。 除了在程序行设置断点外,Keil还有多种设置断点的方法,单击“Debug”“Breakpoint”
22、弹出一个对话框。通过该对话框可对断点进行详细的设置,如图4-24所示。,图4-24中“Expression”编辑框内用于输入确定程序停止运行的条件表达式。Keil 内置的表达式的定义功能非常强大,并可在条件表达式Expression达到所要求的Count次数时设为断点,如假设条件Expression为“p1=1、count=2”,则将第二次“p1=1”时设为断点。,图4-24 Keil的断点设置对话框,Command 设置满足Expression条件时在信息窗口输出的信息,与Count无关,每次满足该条件都会输出信息。,4.3 Keil 程序调试窗口,Keil 软件在调试程序时提供了多个窗口,
23、主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Windows)、反汇编窗口(Dissambly Windows)和串行窗口(Serial Windows)等。进入调试模式后,可以通过菜单“Views”下的相应命令打开或关闭这些窗口。下面介绍常用的存储器窗口、观察窗口和工程窗口寄存器页。,4.3.1 存储器窗口,存储器窗口中可以显示和修改系统中各种内存中的值,如图4-25所示。通过在“Address”编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表程序存储空间、直接寻
24、址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。例如:输入“D:0”即可观察到地址0开始的片内RAM单元值;输入“C:0”即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示:十进制、十六进制、字符型等,改变显示方式的方法是单击鼠标右键,在弹出的快捷菜单中选择。该菜单用隐形线条分隔成上中下三部分(如图4-25所示),其中第一部分与第二部分的三个选项为同一级别。,图4-25 存储器窗口及数据显示方式的下拉菜单,选中第一部分的任一选项,内容将以整数形式显示,其中“Decimal”项是一个开关,如果选中该项,则窗口中的值
25、以十进制的形式显示,否则按默认的十六进制方式显示。“Unsigned”和“Signed”分别代表无符号、有符号形式,其后均有三个选项,即“Char”、“Int”、“Long”,分别代表以用户的设置的单元开始,以单字节、整数型、长整数型数方式显示。以整型为例,如果输入的是“I:0”,那么00H和01H单元的内容将会组成一个整型数。有关数据格式与C语言规定相同,请参考C语言相关书籍。默认以无符号单字节方式显示。 第二部分有三项,“Ascii”项是字符型式显示,“Float”项是将相邻4字节组成浮点数形式显示,“Double”是将相邻8字节组成双精度形式显示。 第三部分的“Modify Memory
26、 at X:xxx”用于更改鼠标处的内存单元值。选中该项即出现如图4-26所示的对话框,可以在对话框内输入新的值、单个字符加单引号、字符串加双引号,从指定单元开始存放。,图4-26 存储单元值的修改,4.3.2 观察窗口,由于工程窗口中仅可以观察到工作寄存器和有限的寄存器,如A、B、DPTR等,如果需要观察其他寄存器的值或者在高级语言编程时需要直接观察变量时,就要借助于观察窗口了。单击“View”“Watch and call stack Windows”即可弹出观察窗口,如图4-27所示,按功能键F2可输入观察对象的名称。一般情况下,仅在单步执行时才对变量值的变化感兴趣,全速运行时,变量的值
27、是不变的,只有在程序停下来之后,才会将这些值最新的变化反映出来。但是,若选中“View”“Periodic Windows Updata”(周期更新窗口),则在全速运行时也能观察到变量的变化,但其将使程序模拟执行的速度变慢。,图4.27 观察窗口,4.3.3 工程窗口寄存器页,图4-28所示是工程寄存器页的内容。寄存器页包括了当前的工作寄存器组和系统寄存器组。系统寄存器组有一些是实际存在的寄存器,如a、b、dptr、sp、psw等,有一些是实际中并不存在或虽然存在却不能对其操作的,如PC、states等。每当程序中执行到对某寄存器的操作时,该寄存器会以反色显示,用鼠标双击可修改该值。,图4.28 工程窗口寄存器页,4.3.4 外围接口窗口,通过单击“Peripherals”菜单,Keil提供了单片机中的定时器、中断、并行端口、串行口等常用外设接口对话框。这些对话框只有在调试模式才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 导游资格-导游资格证每日一练
- 贫困生申请书认定
- 重开业申请书
- 企业内部系统使用权限规范
- 2024-2025学年山东省百师联考高二上学期期中考试物理试题(解析版)
- 100以内加减乘除趣味游戏册1000题(可打印)
- 电动车驱动系统技术专利研究
- 初中学生申请书
- 校园国旗护卫队申请书
- 外研版高中英语选择性必修第四册UNIT5 Period1课件
- 销售黄金法则ABC三角沟通法则
- 大学学院心理危机问题处理流程
- 清洁度标准、测试及过程控制
- 滩坑水电站水生生物增殖放流站工程(B区)施工组织设计
- 质量成本分析和核算ppt课件
- 医院患者个人信息修正管理规定
- 取水隧洞爆破设计
- Q∕GDW 12100-2021 电力物联网感知层技术导则
- 泥浆不落地处理工程设备
- 部编版三年级下册语文第一单元教材解读PPT课件
- 【2022】154号文附件一:《江苏省建设工程费用定额》(2022年)营改增后调整内容[10页]
评论
0/150
提交评论