首页 理论教育KeilC51工程创建应用-51单片机初级入门实战教程

KeilC51工程创建应用-51单片机初级入门实战教程

【摘要】:在输入程序时,Keil C51会自动识别关键字,并以不同的颜色提示用户注意,减少用户编写程序出现的错误,有利于提高编程效率。图2-28 对编辑的程序执行编译在对设计的程序进行调试时,单击debug菜单选中start/stop debug session,则进入到Keil C51程序调试界面如图2-30所示。图2-35 设置和删除断点操作图2-36 断点设置成功界面图2-37 断点设置成功后调试结果图以上为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所示。

978-7-111-47690-0-Part01-37.jpg

图2-17 创建工程菜单

978-7-111-47690-0-Part01-38.jpg

图2-18 创建一个新的工程

978-7-111-47690-0-Part01-39.jpg

图2-19 选择单片机型号窗口

978-7-111-47690-0-Part01-40.jpg

图2-20 代码添加界面

978-7-111-47690-0-Part01-41.jpg

图2-21 工程创建成功后的工作界面

(3)在创建工程成功的界面下进行C语言编程,执行File菜单中的New选项如图2-22所示,新建一个程序编译文件,新建的文件界面如图2-23所示,可以在text2区域编写C语言程序。

978-7-111-47690-0-Part01-42.jpg

图2-22 执行新建程序编辑指令

978-7-111-47690-0-Part01-43.jpg

图2-23 新建完成的程序编辑界面text2

(4)编写一段流水灯移位的C语言程序在text2区域内,程序如下:

978-7-111-47690-0-Part01-44.jpg

978-7-111-47690-0-Part01-45.jpg

将编辑好的程序书写到text2区域内,鼠标单击保存978-7-111-47690-0-Part01-46.jpg按钮。在输入程序时,Keil C51会自动识别关键字,并以不同的颜色提示用户注意,减少用户编写程序出现的错误,有利于提高编程效率。屏幕如图2-24所示,在文件名栏右侧的编辑框中,输入使用的文件名如test,同时必须输入正确的扩展名。注意使用C语言编写程序,则扩展名为(.c);若采用汇编语言编写程序,则扩展名为(.asm)。本书只是讨论用C语言编写程序,汇编不做讨论,单击保存按钮。

978-7-111-47690-0-Part01-47.jpg

图2-24 保存编辑的C程序文件

(5)返回新建工程界面,单击Target1前面的“+”号,在出现的source group1上鼠标右键单击,弹出添加test编辑好的C语言文件加入到source group1中如图2-25所示。

出现图2-26添加文件界面,鼠标选中test.c文件单击Add,会看到在source group1中有test.c文件加入成功如图2-27所示。

978-7-111-47690-0-Part01-48.jpg

图2-25 将程序文件加入到source group1中

978-7-111-47690-0-Part01-49.jpg

图2-26 添加文件界面

978-7-111-47690-0-Part01-50.jpg

图2-27 文件加入成功界面

(6)以上工程和编写的程序创建完成,接下来对编写的程序进行编译来检验程序的正确性。单击project菜单中的built target选项(快捷键F7)如图2-28所示,进行程序编译。输出编译的结果如图2-29所示。

若编写的程序无错误,则输出结果提示“0 Error(s),0 Warning(s)”,可以将程序利用2.4节的知识下载到单片机中实现单片机对设计的硬件进行控制。

若编写的程序有错误,则输出结果会有错误提示如“Target not created”目标无法创建,需要对程序进行一步步调试直到找到错误,程序修改正确为止。(www.chuimin.cn)

(7)调试是为了检查程序中看不见的错误,程序调试包括单步执行和全速执行。单步执行是每次执行一行程序,执行完该行程序即停止,等待命令执行下一行程序,此时可以观察该行程序执行完后得到的结果是否与我们设计的结果一致,以便发现程序存在的问题;全速执行指的是执行一段程序时,中间不间断,执行速度快可以看到程序最终的结果,但是若程序本身有错,全速执行很难发现错误的地方;在调试程序时可以将单步执行和全速执行交叉使用,确保调试的程序的准确性。

978-7-111-47690-0-Part01-51.jpg

图2-28 对编辑的程序执行编译

在对设计的程序进行调试时,单击debug菜单选中start/stop debug session(快捷键ctrl+F5),则进入到Keil C51程序调试界面如图2-30所示。

978-7-111-47690-0-Part01-52.jpg

图2-29 程序编译后的输出结果

978-7-111-47690-0-Part01-53.jpg

图2-30 调试工作界面

全速执行时,单击debug菜单中的run选项,对编辑的程序进行调试运行,再单击de-bug菜单中的stop选项,则程序编译调试结束如图2-31所示。查看程序运行结果可以通过观察窗口(watch&call stack window)来观察变量值P3值的变化,通过执行view菜单中的watch windows中的watch 1如图2-32所示,查看P3调试结果如图2-33所示。

978-7-111-47690-0-Part01-54.jpg

图2-31 全速调试执行结果

978-7-111-47690-0-Part01-55.jpg

图2-32 观察窗口执行菜单

单步执行时,灵活地使用调试快捷选项978-7-111-47690-0-Part01-56.jpg,进行单步调试,单步调试结果如图2-34所示,大大提高了调试程序的效率。

978-7-111-47690-0-Part01-57.jpg:单步执行命令。

978-7-111-47690-0-Part01-58.jpg:单步执行遇到循环子程序时,选择过程单步命令不会进入循环子程序内部。

978-7-111-47690-0-Part01-59.jpg:当次数很多的循环子程序中,选择单步执行到函数外命令。

978-7-111-47690-0-Part01-60.jpg:当次数很多的循环子程序中,运行到光标所在行命令跳出循环子程序。

978-7-111-47690-0-Part01-61.jpg

图2-33 观察窗口查看P3值变化

978-7-111-47690-0-Part01-62.jpg

图2-34 单步调试结果

(8)另外,在调试程序时,有时候程序需满足一些特定的条件才能执行,如程序中某些变量达到一定的值,按键被按下,串口接收到数据,定时或者中断发生等情况,单步调试很难实现,此时需要设置断点才能调试。所谓的断点调试指的是在一段程序中设置断点,一旦调试运行到该断点则程序停止,可以观察设置断点处的变量值找出问题。将光标定位于需要设置断点的程序中,通过执行debug菜单中的inster/remove breakpoint设置和删除断点如图2-35所示,可以设置断点亦可以删除该断点,设置好的断点如图2-36所示。对设定好的断点调试运行,调试结果如图2-37所示。

978-7-111-47690-0-Part01-63.jpg

图2-35 设置和删除断点操作

978-7-111-47690-0-Part01-64.jpg

图2-36 断点设置成功界面

978-7-111-47690-0-Part01-65.jpg

图2-37 断点设置成功后调试结果图

(9)以上为Keil C51完整的工程应用过程和软件开发过程,若程序调试无错误,需要将调试正确的程序下载到单片机芯片中,供单片机驱动设计的电路正常工作。通过单击pro-ject菜单中的options for target“target 1”,弹出options for target选项如图2-38所示。

978-7-111-47690-0-Part01-66.jpg

图2-38 options for target选项图

在图2-38中单击output,选中create HEX File选项,使得程序编译后产生HEX代码,重新对test.c文件进行built target二次编译,在创建工程路径文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。