第2章 Keil C51软件开发环境与ISP在线下载
2.1 Keil C51 μVision4软件介绍
51单片机的开发除了需要硬件的支持,同样需要软件的支持,CPU执行的是机器码,而用汇编语言或者C语言等高级语言编写的程序必须转换为机器码才能被CPU执行,通过编译软件如Keil C51编译器可以把用C或者汇编编写的源程序转换为机器码供CPU执行。本章重点介绍了比较实用的Keil C51编译器。Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、C语言的程序设计,界面友好,易学易用。图2-1为启动Keil C51 V9.00版本既μV4的屏幕图。
图2-1 启动Keil C51的屏幕图
2.2 Keil C51 μVision4软件安装与卸载
2.2.1 Keil C51 μVision4软件安装
通过网络下载Keil C51 μVision4的安装软件以及许可号生成器软件,若PC机安装的操作系统为win2003/xp/2000/9x,则可以直接双击安装软件,若操作系统为VISTA/win7系统则选择以管理员身份运行,操作过程如图2-2所示。
若软件安装后无法注册,则可以在开机运行进入系统之前按住F8按键,进入系统安全模式,在安全模式下安装和注册Keil软件,软件安装和注册过程如下:
图2-2 VISTA/win7系统下运行C51 μVision4
双击运行后进入Keil C51 μVision4编译器的安装界面如图2-3所示,鼠标单击next进入。
图2-3 Keil C51 μVision4安装界面(1)
软件安装协议阅读界面如图2-4所示。若阅读后无异议,鼠标选择I agree to all the terms of the preceding License Agreement,单击next,进入到软件路径安装界面如图2-5所示。
图2-4 Keil C51 μVision4安装界面(2)
通过Browse可以任意选择软件在PC上的安装路径如D:\changshikeilc51,系统默认路径为C:\Keil,鼠标单击next进入客户信息输入界面如图2-6所示。
需要在first name、last name、company name以及E-mail中输入相应的信息,输入完成后鼠标单击next,进入Keil C51 μVision4系统安装进程状态如图2-7所示。
图2-5 Keil C51 μVision4安装界面(3)
图2-6 Keil C51 μVision4安装界面(4)
图2-7 Keil C51 μVision4安装界面(5)
等待大约1min左右,软件安装完成进入如图2-8所示界面。
图2-8 Keil C51 μVision4安装界面(6)
安装完成鼠标单击Finish,进入到Keil C51 μVision4软件编译界面如图2-9所示。
为了保证软件能够正确编译和仿真,需要对软件进行许可号认证,在图2-9界面下单击File→License Management,则弹出License Management管理窗口如图2-10所示,同时打开KEIL_Lic.exe许可序列号生成软件,将computer ID(每台机器的CID是不一样)号码复制到Keil序列生成器窗口如图2-11中的CID区域。
图2-9 Keil C51 μVision4软件工作界面
图2-10 License Management管理窗口
鼠标单击Generate会在其上方生成一串Keil许可号序列,将该序列复制粘贴到图2-12 License Management管理窗口中的New License ID(LCD)中,单击右边的Add LIC,若在上方的Product显示的是PK51 Prof Developers Kit,则Keil软件注册成功。若软件使用过程中超过有效期,则可以多次生成许可号重新注册使用Keil编译软件。
2.2.2 Keil C51 μVision4软件卸载
图2-11 Keil序列生成器窗口
Keil软件卸载比较简单,在Windows 7系统下通过程序开始菜单找到系统的控制面板,在控制面板中找到程序和功能选项如图2-13所示。鼠标单击程序和功能选项,则弹出卸载和更改程序窗口如图2-14所示,找到KeilμVision4鼠标右击弹出Keil μVision4卸载界面如图2-15所示,选中Keil C51Development Tools鼠标单击Remove,则Keil μVision4软件开始卸载,卸载完成后单击Close,关闭Keil软件卸载界面。
图2-12 License Management管理窗口
图2-13 控制面板
图2-14 程序卸载和更改窗口
图2-15 Keil μVision4卸载界面
2.3 Keil C51 μVision4软件操作流程
2.3.1 Keil C51操作界面
Keil μVision4安装完成后,用户可以单击运行图标进入Keil编译仿真环境。Keil μVision4软件有菜单栏,可以快速选择命令按钮的工具栏、一些源代码文件窗口、对话框窗口、信息显示窗口、编译软件允许同时打开多个源程序文件,Keil C51工作界面如图2-16所示。
图2-16 Keil C51工作界面
1.File文件菜单
鼠标单击图2-16工作界面菜单栏中的File文件菜单选项,下拉选项中的各项功能说明见表2-1。菜单选项主要完成程序和工程文件的创建、保存和打印功能。
表2-1 文件菜单命令说明
2.Edit编辑菜单
鼠标单击图2-16工作界面菜单栏中的Edit编辑菜单选项,下拉选项中的各项功能说明见表2-2。编辑选项主要完成文件的复制、粘贴、剪切、查找和替换等功能。
表2-2 编辑菜单命令说明
3.View视图菜单
鼠标单击图2-16工作界面菜单栏中的View视图菜单选项,下拉选项中的各项功能说明见表2-3。视图选项主要打开各种工具栏以及功能窗口等功能。
表2-3 编辑菜单命令说明
4.Project工程菜单
鼠标单击图2-16工作界面菜单栏中的Project工程菜单选项,下拉选项中的各项功能说明见表2-4。工程菜单选项主要是创建工程、打开工程以及对工程的各种操作功能。
表2-4 工程菜单命令说明
5.Debug调试菜单
鼠标单击图2-16工作界面菜单栏中的Debug调试菜单选项,下拉选项中的各项功能说明见表2-5。调试菜单选项主要完成对程序设置断点、单步调试等功能。
表2-5 调试菜单命令说明
6.Help帮助菜单
鼠标单击图2-16工作界面菜单栏中的Help帮助菜单选项,下拉选项中的各项功能说明见表2-6。帮助菜单选项主要完成在使用Keil C51软件时遇到的问题可以寻求帮助和解决。
表2-6 帮助菜单命令说明
7.其他菜单选项
在Keil软件操作时,鼠标单击图2-16工作界面菜单栏中的Flash菜单选项,下拉选项中的各项功能说明见表2-7,Flash菜单选项主要实现程序下载功能。
表2-7 Flash菜单命令说明
鼠标单击图2-16工作界面菜单栏中的Tools工具菜单选项,下拉选项中的各项功能说明见表2-8所示,Flash菜单选项主要实现程序下载功能。
表2-8 Tools菜单命令说明
鼠标单击图2-16工作界面菜单栏中的SCVS工具菜单选项,下拉选项中的各项功能说明见表2-9。
表2-9 SCVS菜单命令说明
鼠标单击图2-16工作界面菜单栏中的Window菜单选项,下拉选项中的各项功能说明见表2-10。
表2-10 Window菜单命令说明
2.3.2 Keil C51工程创建应用
通过单片机与程序设计语言的学习,如C语言程序设计,最好的方法是直接操作实践,以下通过编写简单的C语言程序创建一个工程文件,对工程文件进行编译和调试引导大家学习Keil C51软件的基本使用方法。
(1)首先创建一个新的工程,单击Project菜单,在下拉菜单中选择new μvision project如图2-17所示,弹出创建工程窗口如图2-18所示,设定好保存创建工程的路径,在文件名中给创建工程命名如test,扩展名为Uvproj,鼠标单击保存。
(2)工程文件命名保存后弹出一个工程编译选择单片机型号的窗口如图2-19所示,根据使用的单片机来选择相应的型号,如Atmel公司的AT89C51,注意这里选择单片机型号只是软件上的编译,与实际使用的型号没有直接的关联,使用的时候可以选择其他型号的单片机,只要是51系列有40个引脚都可以。型号选择正确后鼠标单击OK弹出一个代码添加界面,如图2-20所示,在进入C语言编程之前执行一段汇编代码,并添加到工程中,鼠标单击Y添加成功,工程文件建立完成界面如图2-21所示。
图2-17 创建工程菜单
图2-18 创建一个新的工程
图2-19 选择单片机型号窗口
图2-20 代码添加界面
图2-21 工程创建成功后的工作界面
(3)在创建工程成功的界面下进行C语言编程,执行File菜单中的New选项如图2-22所示,新建一个程序编译文件,新建的文件界面如图2-23所示,可以在text2区域编写C语言程序。
图2-22 执行新建程序编辑指令
图2-23 新建完成的程序编辑界面text2
(4)编写一段流水灯移位的C语言程序在text2区域内,程序如下:
将编辑好的程序书写到text2区域内,鼠标单击保存按钮。在输入程序时,Keil C51会自动识别关键字,并以不同的颜色提示用户注意,减少用户编写程序出现的错误,有利于提高编程效率。屏幕如图2-24所示,在文件名栏右侧的编辑框中,输入使用的文件名如test,同时必须输入正确的扩展名。注意使用C语言编写程序,则扩展名为(.c);若采用汇编语言编写程序,则扩展名为(.asm)。本书只是讨论用C语言编写程序,汇编不做讨论,单击保存按钮。
图2-24 保存编辑的C程序文件
(5)返回新建工程界面,单击Target1前面的“+”号,在出现的source group1上鼠标右键单击,弹出添加test编辑好的C语言文件加入到source group1中如图2-25所示。
出现图2-26添加文件界面,鼠标选中test.c文件单击Add,会看到在source group1中有test.c文件加入成功如图2-27所示。
图2-25 将程序文件加入到source group1中
图2-26 添加文件界面
图2-27 文件加入成功界面
(6)以上工程和编写的程序创建完成,接下来对编写的程序进行编译来检验程序的正确性。单击project菜单中的built target选项(快捷键F7)如图2-28所示,进行程序编译。输出编译的结果如图2-29所示。
若编写的程序无错误,则输出结果提示“0 Error(s),0 Warning(s)”,可以将程序利用2.4节的知识下载到单片机中实现单片机对设计的硬件进行控制。
若编写的程序有错误,则输出结果会有错误提示如“Target not created”目标无法创建,需要对程序进行一步步调试直到找到错误,程序修改正确为止。
(7)调试是为了检查程序中看不见的错误,程序调试包括单步执行和全速执行。单步执行是每次执行一行程序,执行完该行程序即停止,等待命令执行下一行程序,此时可以观察该行程序执行完后得到的结果是否与我们设计的结果一致,以便发现程序存在的问题;全速执行指的是执行一段程序时,中间不间断,执行速度快可以看到程序最终的结果,但是若程序本身有错,全速执行很难发现错误的地方;在调试程序时可以将单步执行和全速执行交叉使用,确保调试的程序的准确性。
图2-28 对编辑的程序执行编译
在对设计的程序进行调试时,单击debug菜单选中start/stop debug session(快捷键ctrl+F5),则进入到Keil C51程序调试界面如图2-30所示。
图2-29 程序编译后的输出结果
图2-30 调试工作界面
全速执行时,单击debug菜单中的run选项,对编辑的程序进行调试运行,再单击de-bug菜单中的stop选项,则程序编译调试结束如图2-31所示。查看程序运行结果可以通过观察窗口(watch&call stack window)来观察变量值P3值的变化,通过执行view菜单中的watch windows中的watch 1如图2-32所示,查看P3调试结果如图2-33所示。
图2-31 全速调试执行结果
图2-32 观察窗口执行菜单
单步执行时,灵活地使用调试快捷选项,进行单步调试,单步调试结果如图2-34所示,大大提高了调试程序的效率。
:单步执行命令。
:单步执行遇到循环子程序时,选择过程单步命令不会进入循环子程序内部。
:当次数很多的循环子程序中,选择单步执行到函数外命令。
:当次数很多的循环子程序中,运行到光标所在行命令跳出循环子程序。
图2-33 观察窗口查看P3值变化
图2-34 单步调试结果
(8)另外,在调试程序时,有时候程序需满足一些特定的条件才能执行,如程序中某些变量达到一定的值,按键被按下,串口接收到数据,定时或者中断发生等情况,单步调试很难实现,此时需要设置断点才能调试。所谓的断点调试指的是在一段程序中设置断点,一旦调试运行到该断点则程序停止,可以观察设置断点处的变量值找出问题。将光标定位于需要设置断点的程序中,通过执行debug菜单中的inster/remove breakpoint设置和删除断点如图2-35所示,可以设置断点亦可以删除该断点,设置好的断点如图2-36所示。对设定好的断点调试运行,调试结果如图2-37所示。
图2-35 设置和删除断点操作
图2-36 断点设置成功界面
图2-37 断点设置成功后调试结果图
(9)以上为Keil C51完整的工程应用过程和软件开发过程,若程序调试无错误,需要将调试正确的程序下载到单片机芯片中,供单片机驱动设计的电路正常工作。通过单击pro-ject菜单中的options for target“target 1”,弹出options for target选项如图2-38所示。
图2-38 options for target选项图
在图2-38中单击output,选中create HEX File选项,使得程序编译后产生HEX代码,重新对test.c文件进行built target二次编译,在创建工程路径文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。
2.4 ISP在线下载操作
51系列单片机中的STC89系列和AT89系列是兼容的,引脚定义和内部资源是一样的,所以烧写程序的方法也是一致,STC89系列可以直接用USB或者串口下载,AT89系列单片机采用ISP下载线或者编程器来下载程序,一种方式是并口或者串口ISP,另一种方式是USB转换为ISP下载。
本节主要介绍下载软件STC-ISP在Windows 7系统中的应用,网络下载STC-ISP安装软件,在软件包中找到可执行文件,鼠标右击在弹出选项中找到属性选项如图2-39所示。在弹出的属性对话框中找到兼容性选项,选中“以兼容模式运行这个程序”的同时选中“以管理员身份运行此程序”,如图2-40所示,鼠标单击确定。
图2-39 STC-ISP属性菜单操作
图2-40 STC-ISP属性对话框
设置完成后运行,STC-ISP可以正常进行程序烧写工作,如图2-41所示。
图2-41 STC-ISP程序烧写界面
目前便携式计算机很多无串口,程序烧写时,可以采用USB转ISP下载,若是台式计算机则可以用串口线直接进行ISP下载,本节采用USB转ISP下载方式,在烧写程序前安装USB驱动程序PL2303 USB转串口驱动,安装成功后鼠标右击桌面“计算机”,选择“属性”找到“设备管理器窗口”如图2-42所示,可以看到选择串口COM7,同时将烧写的单片机STC89C52RC插入到烧写器中,确保硬件连接正确,此时烧写器无上电。
打开STC-ISP软件如图2-43中,在MCU类型中选择所用的单片机型号STC89C52RC,在COM串口选择中选中找到的COM7串口,鼠标单击打开程序,选择要烧写的程序文件如test.hex,如图2-44所示,注意这里用到的烧写文件为2.3节程序编译后产生HEX代码文件。
图2-42 串口安装成功
图2-43 程序烧写STC-ISP参数配置界面
图2-44 选择烧写HEX代码文件
全部准备工作完成后开始程序烧写,在图2-45所示界面中选中download下载,下载进程如图2-45所示,因为STC-ISP程序下载需要冷启动,冷启动是让单片机工作从没有电到有电的过程,所以选中download下载按钮后,若确保程序正常下载,需要给单片机上电,此时给烧写器中的单片机上电,开始把编译正确的test.hex代码文件通过烧写器以及STC-ISP下载软件烧写到单片机中,烧写程序成功界面如图2-46所示,界面中已经显示程序下载成功。将烧写好程序的单片机插入到单片机开发板中,上电就可以看到单片机P3口控制的8个LED等循环点亮,呈现流水灯工作状态,程序调试成功。
图2-45 程序下载进程(1)
图2-46 程序下载进程(2)
2.5 本章小结
在进行51单片机程序设计时,需要对程序进行编译和调试确保设计程序的正确性。因此本章详细地介绍了51单片机程序设计时使用的Keil C51编译和调试环境,包括Keil C51程序的安装、卸载、Keil C51界面操作、单片机程序编辑、工程文件建立和应用、程序后期编译和调试,以及如何将调试正确的程序烧写到单片机中。通过本章的学习,读者可以对51单片机程序的编译、调试和下载工作快速上手,能够快速地学习Keil C51编译器的操作以及如何用Keil开发应用程序。