ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:328.65KB ,
资源ID:29249834      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29249834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第4章 Keil开发环境副本.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第4章 Keil开发环境副本.docx

1、第4章 Keil开发环境 副本第四章 Keil开发环境单片机的软件开发步骤:在开发环境中,编写源程序(*.C或*.ASM),然后把源程序进行编译和链接,生成十六进制文件(*.HEX),最后把生成十六进制文件用某种编程工具下载到单片机的程序存储器中。这样当单片机上电复位后,就可以运行用户编写的程序了。开发期间要经过多次修改等。C51程序开发是在Keil Vision3 开发环境下进行4.1 集成开发环境Keil Vision3简介Keil Software公司推出的Keil Vision3 是一款基于Windows的软件平台,它是一种用于51单片机的集成开发环境(IDEIntergrated D

2、evelopment Evironment)。Vision3提供了对基于8051内核的各种型号单片机的支持,完全兼容先前的Keil Vision2版本。目前当前较新的版本为Keil Vision4。开发者可购买Keil Vision3软件,也可到Keil software公司的主页免费下载Eval(评估)版本。该版本同正式版本一样,但有一定的限制,最终生成的代码不能超过2KB,但用于学习已经足够。开发者还可以到Keil公司网站申请免费的软件试用光盘。Keil Vision3内包含了功能强大的编辑器和调试器。编辑器可以像一般的文本编辑器一样对源代码进行编辑,并允许用户在编辑时设置程序断点(可在源

3、代码未经编译和汇编之前)。用户启动Vision3的调试器之后,断点即被激活。断点可被设为条件表达式、变量或存储器访问,断点被触发后,调试器的命令或调试功能即可执行,因此用户可以在编辑器内调试程序,使用户快速地检查和修改程序。用户还可以在编辑器中选中变量和存储器来观察其值。并可在双层窗口中显示,还可对其进行适当的调整。此外,Vision3调试器具有符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。 Keil C51编译器在遵循ANSI C标准的同时,为51单片机进行了特别的设计和扩展,能让用户使用在应用中需要的所有资源。Keil C51的库函数含有100多种功能,其中大多数是可再入的。函数库支

4、持所有的ANSI C的程序。库函数中的程序还为硬件提供特殊指令,例如nop、testbit、rol、ror等,方便了应用程序的开发。 Keil Vision的串口调试器软件comdebug.exe,用于在电脑端能够看到单片机发出的数据,该软件无需安装,可直接在当前位置运行这个软件。若读者需最新版,可到有关搜索网站输入关键词“串口调试器”,找到一个合适的下载网站,可即下载最新版本。当然,使用Windows自带的“超级终端”也是不错的选择。(1)建立一个新工程Keil Vision3把用户每一个应用程序设计都当作一个项目,用项目管理的方法把一个应用程序设计中所需要用到的、互相关联的程序链接在同一项

5、目中。这样,打开一个项目时,所需的关联程序也都跟着进入了调试窗口,方便用户对项目中各个程序的编写、调试和存储。 因此,在编写一个新的应用程序前,先建立项目的良好习惯。下面首先介绍如何建立一个新项目。图4-1 Keil Vision3集成开发环境(1)建立工程。首先要建立一个项目,在编辑界面,从“P工程(Project)”下拉菜单中,选择“N新建工程(New Project)”弹出如下对话框:选择存放的文件夹(在“保存在”处选择),在对话框中的“文件名”后输入一个程序项目名称,保存后的文件扩展名自动为“.uv2”,这是Keil Vision3项目文件的扩展名,以后可直接点击此文件就可打开先前做的

6、项目。选择合适的路径,然后输入工程的名称,并保存。(2)选择单片机型号。用户可根据所使用的单片机来选择。Keil Vision3支持几乎所有的51内核的单片机。(例如选择“Atmel”)单击Atmel左边的“”,然后选择相应的单片机型号,例如选择AT89C51。单击“确定”后,显示如下: 选择“是”后,单击“Target1”左边的“”号,再单击“Source Group1”左边的“”,可以看到项目中,已经加入了“STARTUP.A51”启动代码。(3)编写源程序。 从“F文件(File)”下拉菜单中,选择“新建(New)”,此时光标在编辑窗口里闪烁,这时,用户可以用C51编写程序了。显示如下:

7、可以在文本编辑区中输入代码。输入完成后,从“F文件(File)”下拉菜单中,选择“S保存(Save)”。在“文件名”栏的编辑框中,键入文件名,同时,必须键入正确的扩展名(为“.c”或“.asm”)。注意,如果用C语言编写程序,则扩展名为“.c”;如果用汇编语言编写程序,则扩展名必须为“.asm”。然后,单击“保存”按钮。 (4)源程序加入工程从“Project Workspace”区中,右键单击“Source Group1”。在弹出的菜单中选择“Add File to group “Source Group1”,显示如下:选择建立的源程序,然后单击“Add”按钮,即可把源程序加入到工程中。完成

8、项目的建立。 (5)存储模式的选择 在实际应用前,要进行一些设置。从“Project Workspace”区中,右键单击“Target1”,显示如下: 选择“Options for Target Target 1”,显示如下:在此输入晶体振荡器的频率(是6MHz,还是12MHz),再选择“输出”,在“创建HEX文件 HEX格式”处选择,这样编译完成后,可以形成“HEX”文件,供Proteus仿真软件调入HEX文件运行。“内存模式”有:【P66】 Small: variables in DATA Compact: variables in PDATA Large: variables in XD

9、ATAC51编译器支持三种存储模式:SMALL模式、COMPACT模式和LARGE模式。不同的存储模式对变量默认的存储器类型不一样。(1)SMALL模式。SMALL模式称为小编译模式,在SMALL模式下,编译时,函数参数和变量被默认在片内低128BRAM中,存储器类型为data。内存模式选择Small,则程序中用到的变量,优先放到内部数据存储器,执行速度较快。(2)COMPACT模式。COMPACT模式称为紧凑编译模式,在COMPACT模式下,编译时,函数参数和变量被默认在片外RAM的低256字节空间,存储器类型为pdata。(3)LARGE模式。LARGE模式称为大编译模式,在LARGE模式

10、下,编译时函数参数和变量被默认在片外RAM的64KB字节空间,存储器类型为xdata。 在程序中变量的存储模式的指定通过#pragma预处理命令来实现。函数的存储模式可通过在函数定义时后面带存储模式说明。如果没有指定,则系统都隐含为SMALL模式。“ROM代码大小”有: Small: program 2K or less Compact: 2K functions,64K program Large: 64K program (6)保存全部工程 保存工程前,需在上面的界面中,选择“输出(Output)”,显示如下: 选择“创建HEX文件(Create HEX File)”单选框,这样在编译项目

11、后,就可以生成十六进制文件。 单击“确定”。 单击“File”菜单中的“保存全部(Save All)”,保存全部工程。(7)编译工程在工程建立并设置好以后,接下来的工作就是对工程进行编译。如果一个项目包含多个源程序文件,并且已经编译,则当只修改了某一个文件时,没有必要全部再编译一次,可选择“Build target”,仅对修改过的文件进行编译,然后和已被编译过的文件进行连接。如果对所有源程序进行编译连接,可选择“Rebuild all target files”。单击工具栏中的“Translate current file”、“Build target ”和“Rebuild all targe

12、t files”后,在所建的工程文件夹中,生成十六进制文件(*.HEX)。把十六进制文件用某种工具软件下载到单片机的程序存储器中,上电后程序即可运行。在编译过程中,如果发现有错误,需要修改程序。【实例1】独立按键识别【P76】要求开始时LED均为熄灭状态,随后根据按键动作点亮相应LED(在按键释放后,继续保持,直至新的按键按下为止)#include /运行过程中,可以删除2根上拉线,观察运行结果的变化main() char key=0; P2=0; /P2口先置为“00”,所有的LED熄灭 while(1) key=P0&0x0f; if(key != 0) P2=key; /如果没有按键,k

13、ey就为0,不执行P2=key 【驱动方式最好不要这种,应该用低电平驱动;限流电阻最好用470,上拉电阻最好用10K】4.2 C51程序的开发流程C51程序开发与在Windows中运行的项目工程的开发有所不同,在Windows中,一般程序的编译结果是后缀名为“.exe”的可执行文件,该文件在Windows系统中能直接运行,而单片机C51程序的开发属于嵌入式开发,遵循主流的交叉编译模式,即在宿主机(运行Keil Vision3的PC机)上开发编译,在目标机(51系列单片机)上运行。在宿主机上的编译结果为COFF文件或是满足Intel规范的文件,文件包含了可执行的机器码,要经过编程器烧写到单片机的

14、程序区(Flash ROM)才能执行。 一个单片机C51应用程序的开发流程如下: 在Keil Vision3中新建项目工程建立并编辑源文件编译调试项目工程生成目标文件下载到程序存储器中程序运行。4.2.1 Keil Vision3软件调试的方法1软件调试软件调试要通过Debug下拉菜单中的工具进行。Debug菜单如图所示,共分为5部分。下面就其中主要部分进行分别介绍。(一)Start/Stop Debug Session 命令用于启动或停止调试功能。启动调试功能后,Keil Vision3的项目窗口自动切换到寄存器标签页,显示CPU内部各寄存器的当前状态,寄存器的状态将随着程序的执行而不断变化

15、。 Go 命令用于启动用户程序从当前地址处开始全速运行,遇到断点或是执行“Stop Running”命令时停止。 Step 命令用于单步执行程序。单击一次该选项则执行一条C语言指令,遇到函数调用则进入被调用函数执行。 Step Over 命令用于启动用户程序从当前地址处开始执行一条语句。遇到函数调用时不进入函数执行,而是将整个函数一起一次执行。Step Out of current Function 命令用于在调用函数的过程中,启动函数从当前地址处开始执行并返回到调用该函数的下一条语句。Runto Cursor Line 命令用于启动用户程序从当前地址处开始执行到光标所在行。Stop Runn

16、ing 命令用于停止运行用户程序。以上是Debug菜单中前两块的内容,其第三块的内容用于调试用户程序过程中的断点管理。断点功能可在某种特定条件下暂停程序的运行,以便于观察程序的运行情况、查找和排除错误。Insert/Remove Breakpoint 命令用来在当前光标所在行插入或删除一个断点。【在非调试状态下设置】Enable/Disable Breakpoint 命令可激活或禁止当前光标所指向的一个断点。Disble All Breakpoints 命令用来禁止所有已经设置的断点。Show Next Statement 命令用来在编辑窗口中显示下一条将要被执行的用户程序语句。2观察仿真结果

17、Keil Vision3可以通过内部集成的器件库实现对单片机外围集成功能的模拟仿真,在调试状态下可以通过Peripherals菜单来观察仿真的结果。“外围设备(Peripherals)”菜单在调试状态下的内容如图所示。下面对该菜单中各选项进行分别介绍。(1)复位CPU(Reset CPU)。对模拟仿真的单片机复位。(2)Interrupt。用来显示单片机中断系统状态。选择“Interrupt”选项,弹出如下界面:在窗口中选中某一个中断源,在窗口下面显示与该中断相对应的中断允许和中断标志的复选框,通过对这些状态位的置位或复位操作,可以实现对单片机的仿真。(3)I/O-Ports。用来对单片机的并口P0P3进行仿真,如果选择P1后显示如下:P1栏显示单片机P1口各位锁存器的状态;Pins栏显示P1口各引脚的状态。在仿真时,各位可以根据需要进行修改。(4)Serial。用来对串行口进行仿真。单击该选项,显示如下:(5)Timer。用来对内部定时器进行仿真。单击“Timer0”该选择,显示如下:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1