第五章KeiluVision4编译环境5.1初识keil软件5.1.1KeilC软件的初始化界面首先,启动Keil软件,双击桌面上的图标,屏幕上就会出现如图5-1所示界面。图5-1启动时界面几秒后进入初始化界面,如图5-2所示图5-2初始化界面5.1.2KeilC菜单与窗口1.菜单命令可以通过菜单条上的下拉菜单控制KeilC的操作,可使用鼠标或键盘选取菜单条上的命令。菜单条提供文件操作、编辑器操作、项目保存、外部程序执行、开发工具选项、设置窗口选择及操作和在线帮助等功能,如图5-3所示。2.KeilC的几个窗口1)编辑窗口,如图5-12所示:图5-3菜单界面2)工程窗口,如图5-13所示:3)输出窗口,如图5-14所示图5-12编辑窗口图5-13工程窗口图5-14输出窗口5.2KeilC工程建立使用Keil进行单片机软件程序开发一般需要经过新建工程、添加代码文件、配置工程、编译四个基本步骤。5.2.1新建工程1.启动keil软件后,鼠标左键单击菜单栏中的“project-NewProject”选项图5-15新建工程界面在弹出的对话框中先选择合适的路径,新建一个文件夹,比如test,打开该文件夹,输入工程名称,比如test(工程名最好与文件夹名相同),并单击“保存”按钮,这样就创建了一个文件名为test的新工程文件,如图5-16。图5-16新建工程对话框2.单击保存后弹出“器件选择对话框”,如图5-17所示。根据所用的单片机箱,选择SST(SST89C58)或Ateml(AT89C51)单片机。图5-17器件选择对话框3.选择完器件后,点击确定,弹出询问“是否添加标准80C51启动代码到工程”对话框,如图5-18所示。选择“是”建立工程完毕,至此可以从工程管理窗口中看到建立的工程。图5-18询问对话框5.2.2添加代码文件1.新建工程后,左键点击菜单栏中的“File-New”选项,或左键点击工具栏中的New图标,新建一个空白文本文件。2.然后左键点击“File-Save”选项,或左键点击工具栏中的Save图标,保存文件。汇编保存成A51或ASM格式,C语言保存成.C格式。这里我们采用C语言编写,所以保存成.c格式。文件名称一般与工程名称相同,如图5-19所示。3.添加代码文件,右键单击“工程管理窗口”中的“SourceGroup1”从弹出的快捷菜单中选择“AddFiletoGroup“SourceGroup1”如图5-20所示。图5-204.单击弹出添加文件对话框,如图5-20所示。然后选中刚建立的空白文件”test”,左键单击“Add”再单击“Close”关闭对话框。添加成功后会在“工程管理窗口”看到添加的文件“test.c”。5.最后在文本编译窗口内输入要编写的程序,如图5-21。图5-21程序编写5.2.3配置工程1.从Project标签中选择OptionsforTarget‘Target1’。2.设置“Target”选项卡,如图5-23所示:图5-23Target对话框Small:变量优先存储在RAM中Compact:变量存储在外部RAM中,使用8位间接寻址Large:变量优先存储在外部RAM中,使用16位间接寻址注:三种存储方式都支持内部256字节和外部64KB的RAM。3.设置Debug选项卡,如图5-29所示:图5-29Debug选项卡5.2.4编译连接选择“Project/Rebuildalltargetfiles”选项或直接点击快捷菜单上的图标,则开始编译程序,如果编译成功,则会出现如图5-31所示界面。图5-31编译成功界面5.3keil软件的调试方法当对工程成功的进行编译链接后,点击Start/stopdebugsession.图5-32调试仿真环境5.3.1软件调试的操作步骤如果在Debug选项卡设置的是usesimulator:单步运行设置断点图5-50调试环境观察窗口观察窗口工作窗口寄存器页观察窗5.3.3通过“Peripherals”菜单观察仿真结果为了能够比较直观地了解单片机中输入/输出端口、定时器、中断和串行口等各种模块及其相关寄存器的状态,Keil提供了一些外围接口对话框,通过“Peripherals”菜单进行选择。1.单击Peripherals菜单栏中的Interrupt选项,将弹出如下图5-46所示的中断系统观察窗口,用于显示51单片机中断系统状态。图5-46中断系统观察对话框2.单击Peripherals菜单栏中的“I/O-Port”选项用于仿真80C51单片机的并行I/O接口Port0、Port1、Port2、Port3,选中Port1后将弹出如图5-47所示窗口。其中“P1”栏显示51单片机P1口锁存器状态,“Pins”栏显示P1口各个引脚的状态。3.单击Peripheral菜单栏中的“Serial”选项用于仿真80C51单片机的串行口,弹出如图5-48窗口:图5-47P1口观察窗口图5-48串行口观察窗口4.点击Peripherals菜单中的Timer-Timer0即出现图5-49所示定时/计数器0的外围接口界面。图5-49定时器/计数器观察窗口如果在Debug选项卡设置的是Keilmonitor-51Driver,则采用MON-51单片机仿真器观察真实的单片机运行结果。USB接口串口(一般不用)注意,程序停止运行的时候,先按复位按钮,等待两秒,再退出Debug调试环境。第五讲知识点小结:(1)了解P0、P1、P2和P3的位结构。(2)掌握并行口作为普通输入输出口的3个功能:输出、读引脚、读锁存器以及准双向I/O端口的意义。(3)掌握P0、P2、P3口的第二功能。(4)掌握Keil软件的使用实验(一):用P1口做输出口,接八位逻辑电平显示(LED灯),程序功能使发光二极管低电平灯亮)按照自己设计的花样点亮。1、用扁平数据线连接单片机P1口与八位逻辑电平显示模块。2、连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开KeiluVision4仿真软件,首先建立本实验的项目文件,接着添加P1_A.c源程序,进行编译,直到编译无误。4、进行软件设置,首先选择软件仿真,仿真调试通过后,选择硬件仿真,设置波特率为,USB口115200(COM3或COM4)5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮(或单步运行)运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。实验(二):用P1.0、P1.1作输入接两个拨断开关(向上拨为高电平,向下拨为低电平)。P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。2、添加P1_B.c源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。实验(三):P1口做通用I/O输出口,控制8只发光二极管从左到右依次点亮并循环(同一时刻只有一盏灯亮)。尝试采用头文件#includeintrins.h;用函数_crol_(a,n)【将字符型变量a循环左移n位】来实现。#includereg51.h#includeintrins.hdelay(){unsignedinti,j;for(j=0;j150;j++)for(i=0;i150;i++);}voidmain(){unsignedchartemp=0xfe;while(1){P1=temp;temp=_crol_(temp,1);delay();}}