![单片机C51应用技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/743/654743/b_654743.jpg)
任务2 KEIL集成开发环境
一、教学目标
【能力目标】
能在KEIL软件中完成源程序的输入、保存。能对源程序进行编译和基本调试。
【知识目标】
(1)熟悉KEIL软件的开发环境,掌握源程序输入的几种方法及保存的类型。
(2)熟悉源程序的编译过程及相关调试步骤。掌握单步、断点等的调试方法。
二、工作任务
在KEIL软件中输入以下源程序,并完成编译、调试和保存。
#include <REG52.h> //预处理命令 sbit P1_0=P1^0; void main(void) //主函数名 { unsigned int a; //定义变量a 为int 类型 do { for(a=0; a<50000; a++); //这是一个循环 P1_0=0; //设P1.0 口为低电平,点亮LED for(a=0; a<50000; a++); //这是一个延时循环 P1_0=1; //设P1.0 口为高电平,熄灭LED } while(1); }
三、任务实施
在计算机D盘新建一个文件夹,重命名为“项目一”,项目一的所有任务都保存在该文件夹内。
1.新建与保存源程序
第一步:双击KEIL uVision3的桌面快捷方式,启动KEIL集成开发软件。启动后的KEIL C51集成开发环境界面如图1-2-1所示。
第二步:新建文本编辑界面或加入原先的程序文件。
选择“File(文件)”→“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”,如图1-2-2所示。
第三步:输入源程序。
在“Text1”中输入C语言源程序,如图1-2-3所示。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0023-01.jpg?sign=1738843620-T0e8yPCBzJr3ZBjJiOOoefFZu11ttn3F-0-0960cc86275ddd2a81918cf142b2511a)
图1-2-1 KEIL C51集成开发环境初始界面
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0023-02.jpg?sign=1738843620-BxhPYhvk8WYIEMjU0M7E8JNxbUSHhsBs-0-ff0d31c98540ee1e6f2d8fb8469ed4f8)
图1-2-2 新建文本编辑界面
第四步:保存源程序。
保存文件时必须加上文件的扩展名,C语言程序文件的扩展名使用“*.C ”。选择路径和文件名为“D:\任务一\LIANXI1.C”,如图1-2-4所示。
注意:第三步和第四步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0023-03.jpg?sign=1738843620-kHciMjzo82Jej7kPvinGu9iiRIOHrQ5K-0-25f5040ba9dc702689af61ee78c9eade)
图1-2-3 输入源程序
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0023-04.jpg?sign=1738843620-Tbs66mxU194e1JzRFZSgZ9vsy9WR5tBS-0-c0503bd5eee480f041c7ed635643646d)
图1-2-4 保存源程序
2.建立新工程
第五步:新建KEIL工程。
选择“Project(工程)”→“New Project(新建工程)”命令,将出现保存对话框,如图1-2-5所示。在保存工程对话框中输入工程文件名“LIANXI1”,KEIL工程默认扩展名为“*.uv2”,工程名称不用输入扩展名。一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现“Select Device for Target(选择设备)”对话框,如图1-2-6所示。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0024-01.jpg?sign=1738843620-0sRPmg3WmCWL156hKjNoZwEy17ycgWh0-0-ff03e5d5398184ccc6d314a52be8bbd6)
图1-2-5 建立新工程
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0024-02.jpg?sign=1738843620-xidiMKy3eLPqQzrFTM9sGy9oyOz38uk5-0-b6456b0661477bfdc79ed0eb206aa323)
图1-2-6 选择CPU
第六步:选择CPU型号。
本新建工程选择了Atmel公司的AT89C52单片机。在对话框中选择“公司(Atmel)”→“CPU(AT89C52)”型号,单击“确定”按钮返回主界面,如图1-2-6所示。
单击“是”按钮,如图1-2-7所示,选择程序加载时是否加载默认初始化条件。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0024-03.jpg?sign=1738843620-Ajj5XMxoYwY3sQ5YVLYpGZZ1am62aTvl-0-b54f8165737d9c480d2e77c2e432062d)
图1-2-7 加载初始化
3.加入源程序到工程中
第七步:加入源程序。
展开“Target1”,在“Source Group 1”上单击鼠标右键添加文件,如图1-2-8所示。选择添加到工程中的源程序文件“LIANXI1.C”,如图1-2-9所示。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0024-04.jpg?sign=1738843620-mjiNydUMIrQzy9vXpZnje9shGEDL1exx-0-18b9d512d0ed2b0e7b9b251dad0bf924)
图1-2-8 加入文件
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0024-05.jpg?sign=1738843620-IWY9iKlSOFh2uVENWs87jJJW0Vhl2vHl-0-c03c1bbfc18c42fae7ba788c8e275fdf)
图1-2-9 选择源程序
双击该文件或单击选中该文件,再单击“Add”按钮,即可将该文件添加到工程当中。再单击“Close”按钮,出现如图1-2-10所示界面。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0025-01.jpg?sign=1738843620-TqmW5DdVxw635jDql80vMWGnXeGK06ou-0-3f7eb7128067f4e61878d91f141a619d)
图1-2-10 源程序
4.相关参数设置
第八步:工程目标“Target 1”属性设置。
选中工程目标“Target 1”单击右键,按照如图1-2-11所示,进入如图1-2-12所示‘Target 1’属性设置界面。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0025-02.jpg?sign=1738843620-R13KZF4XMbynV81Gtz5XxJKEaVy8oPHM-0-f81c69c4eecfb61326738e3ae11f03a1)
图1-2-11 工程目标
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0025-03.jpg?sign=1738843620-Z9VXuxBHfM4xZhbNOiNIXGXldKTXeQOL-0-c889855e109b3abc04f3c67ca594c0d3)
图1-2-12 “Target 1”属性设置界面
(1)工程目标“Target 1”属性设置。
该界面包括单片机的晶振频率、存储器等属性确定,修改晶振的频率为12MHz,如图1-2-12所示。
(2)工程输出“Output”选项卡。
该界面设置如图1-2-13所示,允许生成“*.HEX”可固化文件。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0025-04.jpg?sign=1738843620-uqFKiZGfS3y0vmwHRwDtgxf33cy12Ziv-0-0f0fad6c0ff9d64d5b49538fd7ebe7ef)
图1-2-13 工程输出
(3)工程调试“Debug”选项卡。
工程调试界面设置如图1-2-14所示,左边是软件仿真设置,右边是硬件仿真设置。当使用软件仿真时,选中左边的“Use Simulator”;如果使用硬件仿真器时,那么就单击右边下拉菜单选择单片机型号并单击“Settings”按钮。设置硬件仿真时,同时把仿真器连接到计算机串口上。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0026-01.jpg?sign=1738843620-ju5nT1LV2vi3SBZ6RVe7nmtrN23FElbL-0-4ce14c69fdc699f14f5e30d5022366e4)
图1-2-14 工程调试界面
(4)串口设置。
串口设置如图1-2-15所示。串口型号是根据仿真器实际情况连接来设置的,如将仿真器接到COM1口,就选择COM1;通信波特率选择9600即可。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0026-02.jpg?sign=1738843620-jNXKeXg4pXXSjz2tp5z3rvqRkXaoeS87-0-f3d0f065e148ae9e47ab5b331af292d1)
图1-2-15 串口设置
5.源程序编译
第九步:源程序的编译与目标文件的获得。
如图1-2-16所示,单击“构造目标”快捷按钮,进行源程序的编译连接,源程序编译相关的信息会出现在输出界面中的“构造”页中。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0026-04.jpg?sign=1738843620-wxit9jWjoE56UEZsCeSNYMJkQF5jKt7S-0-a25b8f4a34c04cbf67e7f7c0191692d8)
图1-2-16 源程序编译
如果源程序中书写、格式等有错误,则不能通过编译,错误会在输出界面中报告出来。双击该错误,就可以定位到源程序的出错行,可以对源程序进行反复修改,再编译,直到没有错误为止。显示编译结果为0错误,0警告,则为编译通过,同时产生了目标文件。
注意:每次修改源程序后一定要保存。
6.程序调试界面
(1)执行代码。
在KEIL调试器中,单击按钮,出现调试工具栏,如图1-2-17所示。再次单击
按钮,退出程序调试。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0027-03.jpg?sign=1738843620-j1677LZXBpP22ZoAN05MQM3mnjxTYnbF-0-bf74ab565d083ecfa6c6a7a458d0cf14)
图1-2-17 调试工具栏
是复位模式,模拟芯片的复位,程序回到最开头处执行。当单击
按钮后,运行目标程序,执行代码,程序处于停止状态时才有效。
为停止模式,运行状态时才有效。
和
为单步运行程序,前者进入函数运行,后者把函数当作一条语句运行。
从函数中跳出,单击
只运行光标行程序。
(2)设置断点/取消断点。
单击或在光标行前面双击,可设置调试断点,让程序快速运行到断点处,用于程序分析。如图1-2-18所示为单击
按钮后,运行目标程序到断点处。取消断点单击
按钮。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0027-14.jpg?sign=1738843620-soOkVhdJp3Y2OnnbQc17wwm62Xk5onjz-0-ae0f44f133c66c926ee6e2ede2eb857b)
图1-2-18 运行目标程序到断点处
(3)参数设置。
如图1-2-19所示,可以观察单片机中断、I/O接口内容、串行口和定时器参数。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0027-15.jpg?sign=1738843620-FfPr3avXdt19pPR3WYK7cIE4dVViR81A-0-1bb25173b1d60e116d4782dec15c0fbf)
图1-2-19 参数设置
(4)。
从左到右依次为“反汇编界面”、“观察界面”、“代码界面”、“串行口界面”和“存储器界面”。如图1-2-20所示为“反汇编界面”。如图1-2-21所示为“串行口界面”,可以看到从C51单片机芯片的串行口I/O的字符。如图1-2-22所示为“观察界面”,可以观察/修改变量值,单击“F2”按钮,可以增加观察变量。如图1-2-23所示为“存储器界面”,输入I,D,C,X可以观察/修改存储器的内容。
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0028-02.jpg?sign=1738843620-TIA6Yw6E1nFYigpdtY4wVkb0eYpSxzVG-0-c94cb75a8e9bad83cfdf1b2a1699a3c8)
图1-2-20 反汇编界面
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0028-03.jpg?sign=1738843620-gPWGx0WefDE9KmfEARJG0BzWKiF7TPtT-0-e0fd7c60f9f86c162c7cb05a8217105a)
图1-2-21 串行口界面
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0028-04.jpg?sign=1738843620-IHJrAr6icoxADHCxKNXZ05ewspYJ3Zcw-0-12a82d2f67e774f875cbc0d2a2d3b365)
图1-2-22 观察界面
![](https://epubservercos.yuewen.com/CC756B/3590284903568601/epubprivate/OEBPS/Images/Figure-0028-05.jpg?sign=1738843620-2oNr6UsN1Wy3fFTtblgPdeKQXZaFSAF7-0-2b6f845a08ec0d10c4d952a04391bcab)
图1-2-23 存储器界面
最后,要停止程序运行回到文件编辑模式中,就要先单击(停止)按钮,再单击
(调试)按钮,然后就可以进行关闭KEIL等相关操作了。
四、实践练习
(1)输入下列程序,完成源程序的输入、保存,名称自定。
#include<REG51.H> #include<STDIO.H> void main(void) { SCON=0x50; //串口方式1,允许接收 TMOD=0x20; //定时器1定时方式2 TCON=0x40; //设定时器1开始计数 TH1=0xE8; //11.0592MHz 1200波特率 TL1=0xE8; TI=1; TR1=1; //启动定时器 while(1) { printf(“Hello World!\n”); //显示Hello World } }