2.4程序发展工具-KeilC51KeilC51是Keil公司针对80C51系列单芯片,在Windows平台上开发出的一套工具软件.,透过KeiluVision2的IDE(整合发展环境),提供80C51汇编语言与C51语言的编辑、组译/连结、除错/模拟测试,并具备完善的项目管理系统(Project),以及系统文件说明等功能。图2-x1显示KeilμVision2的功能结构,说明如下:μVision2IDE提供项目管理的整合作业环境,拥有编译、组译、连结等,建构项目的功能。提供各种厂牌型号80C51核心兼容单芯片系统的开发使用。C51提供ANSIC程序语言编译器(ANSICCompiler);A51:提供8051汇编程序组译器(MacroAssembler)。在程序的连结时,提供ANSI标准链接库、LIB51链接库管理员,与RTX51实时操作系统。μVisionDebugger:有强大的除错工具和平行仿真系统。可执行单步执行,芯片内部缓存器、内存、输出入界面的实时监看功能。图2-x1:KeilC51功能方块图KeilC51试用版下载与安装对于80C51单芯片初学者,Keil软件公司在该公司网站提供KeilC51试用版(EvaluationVersion),免费让使用者下载(试用版限制2KBytes的程序代码)。C51试用版软件的下载与安装步骤如下:步骤1:上网连结上Keil公司网站(),填写个人数据后即可取得该工具软件。如图2-x2所示。图2-x2:KeilC51程序下载画面步骤2:填完数据点选Summit,,即可下载ek51v750a.exe软件安装程序文件,档案大小约15.8MB。步骤3:执行ek51v750a.exe文件,启动安装程序,会出现下列确认安装的对话框,请点选[是(Y)]按钮,出现如图2-x3的说明窗口。依照安装程序的指示,一步步的完成软件安装工作。图2-x3:μVision2安装说明画面步骤4:安装完成后,会在Window系统的[开始]菜单或桌面上会出现下图示的KeiluVision2快捷方式。点选此一快捷方式,即可启动C51。启动KeilμVision2由于KeilμVision2是以项目(Project)方式做管理,因此启动KeilμVision2后,必须先加载一个项目,才能对项目内的档案(程序文件与说明文件)进行处理。若启动后无Project加载,则μVision2有许多画面与功能将无法展示。以下我们介绍两种开启项目的方法:开启旧项目(OpenProject)、建立新项目(NewProject),藉由两个范例的操作过程,说明KeilμVision2IDE的窗口画面与功能,并了解建立新项目的作业流程。:开启一个现有项目,并对做说明。:介绍如何,包括档案的加入、程序编辑/组译/连结,与除错等操作方法。【范例2-1】开启旧项目观察KeilμVision2窗口画面与功能开启一个KeilμVision提供的范例项目ASAMPLE.uv2,藉此观察KeilμVisionIDE整合环境画面与功能,操作步骤如下:步骤1:开启[Project]菜单点选,点选[OpenProject]指令按钮,显示如图2-x4所示的[SelectProjectFile]对话框。选取C:\Keil\C51\EXAMPLES\ASM\ASAMPLE的范例项目,开启此项目。图2-X4:[OptionsforTarget‘Target’]对话框步骤2:开启ASAMPLE.uv2项目后,窗口画面显示如图2-x5。在μVision2整合作业环境中重要的部份,如负责项目管理的项目窗口(ProjectWindows)、可编辑8051汇编语言与C语言程序文件的程序编辑窗口、显示执行结果的输出窗口(OutputWindows),与常会用到的工具列(Toolbar)。图2-x5:KeilμVision2IDE窗口画面步骤3:由于KeilμVision2IDE窗口画面上的某些子窗口会因为关闭或重迭在底层而隐藏不见。当找不到某些子窗口时,可利用[View]菜单内的指令找回。点选[View]菜单,显示如图2-x6。点选菜单的指令,如[ProjectWinodws]、[OutputWindows];以及工具列,如[StatusBar]、[BuildToolbar]、[BuildToolbar],观察对应子窗口,显示与隐藏状态。针对这些子窗口的功能,我们图2-x6:利用[View]菜单显示/隐藏子窗口项目窗口:项目窗口又可分为三种页面:{File}、{Regs}、{Books}。点选窗口下方的标示做页面的切换。在进入除错功能(debug)时,{Regs}会显示8051的缓存器状态、{Books}显示μVision2的在线操作说明书。{File}负责管理项目的所有档案,{File}又可分为三个层级―Target-Group-File,说明如下:Target:在此层级中,可以选择使用的芯片、频率频率与内存等装置的配置方式。在同一个项目中,可以拥有一个以上的”Target”。两个Target之间基本上可以共享相同的原始程序档案,但是可以各自有着不同的输出入设定或不同的装置,透过建立不同的Target,我们可以得到不同的输出程序版本。有关Target的选项设定,可在Target图标上按鼠标右键,在快速选单上点选[OptionsforTarget‘Target’],显示如图2-x7:[OptionsforTarget‘Target1’]对话框。Vision2为了方便我们能容易地撰写兼容各式CPU的程序,特别在图3-7[OptionsforTarget‘Target1’]对话框中的装置数据库(DeviceDatabase),准备了各式CPU的数据。只要我们决定了CPU的型号,μVision2就会自动将一切环境的参数(如CPU频率、内存配置…等等)设定好,无须使用者再操心了。图2-x7:开启[OptionsforTarget‘Target’]对话框Group:在Target下建立多个Group,将有相同性质的原始程序代码或文件归类在同一个Group,方便自己或其它人方便查阅管理,例如建立一个I/OGroup,将所有有关输出入的程序文件放于其中File:在Group之下,可以加入不同的档案。例如C51原始程序文件(*.c)、A51汇编程序(*.a;*.src),已编译的对象程序文件(*.obj),链接库档案(*.lib)以及纯文本文件(*.txt)。程序编辑器:[程序编辑窗口]是一套类似[记事本-NotePad]的文字编辑工具,提供使用者编写C51/A51的原始程序代码或说明文件。它的操作方式与一般文字编辑器大同小异。此外,编辑器提供有[标记工具列]、[断点设定工具列]、[搜寻工具列],辅助使用者做程序编辑与除错,相关图标与功能如表2-X。表2-x:编辑用工具列工具图示功能说明工具图标依序为[ToggleBookmark](切换标记),[NextBookmark](下一个标记),[PreviousBookmark](前一个标记),[ClearAllBookmarks](清除所有标记)。在光标停在的地方,插入或取消插入标记,寻找先前标记的位置,或是删除所有标记。被设定成标记该行,左侧有一蓝点出现。在撰写程序时,若能适当地插入一些标记,能迅速地让我们的光标游走整个程序,修改某一行程序时,立即找到,而不用拉动滚动条寻找。工具图示依序为[Insert/RemoveBreakpoints](插入/移除断点)、[KillAllBreakpoints](断点)、[Enable/DisableBreakpoints](致/禁能标记)、[DisableAllBreakpoints](禁能所有标记)在游标停在的地方,插入断点。设定断点是程序除错的技巧之一,它能让程序在特定阶段中暂停,提供我们检视其状态。当断点被致能时,可以看到其旁边有一红点,当被禁能时,将会是空心的点(断点插入时预设是致能的)。亦可在欲插入断点的地方按下鼠标右键选择Insert/RemoveBreakpoint插入/移除断点,或选Enable/DisableBreakpoint来控制断点的致/禁能。工具图示依序为[Findinfiles](找寻档案)、[Search](搜寻)[Find](找寻)拥有搜寻文件内文句的功能,其中Findinfile功能,亦可跨档案搜寻相关字词,结果显现在下方的OutputWindow建立新项目流程建立一个新项目,并完成项目程序的编译/连结与除错等工作,作业流程如图2-x8。项目程序发展过程中,提醒读者每个步骤所需的注意事项如下:建立空项目:新建立的项目必须设定Target的装置(Device),即选用芯片的公司与型号、设定频率频率,配置内存。在项目加入档案:项目内的档案来源有两种方式。第一种方式是将已经存在的程序文件直接加入项目;第二种方式是选择[File]菜单的[New]指令,建立一个新档案,再将此档案加入项目。存盘要注意的是,若准备采用C51语言,档案的附属名称使用”*.c”,若使用A51语言,档案的附属名称使用”*.a”。编辑/修改程序:已加入项目的程序文件,直接在{项目窗口}中双击该程序文件的文件名,即可开启该档案的{程序编辑窗口}。若未加入项目的程序文件,使用[File]菜单的[Open]指令,加载{程序编辑窗口},进行编辑与修改。组译/编译与连结程序:μVision2同时提供了C51这个兼容于ANSIC标准的编译器(C51Compiler),以及A51这个组译器(A51Assembler),让我们可以用这两种程序语言,开发单芯片程序。当原始程序都被编译/组译完成后,再透过连结以建置最后可执行的程序,在μVision2附有BL51这个连结器来协助达成这项工作。在连结的过程中,标准C语言的函式库(ANSICStandardLibrary)也会被汇入。除错与在线仿真:完成组译/编译与连结的机械码程序,可透过μVision2提供的除错工具,修改或最佳化程序,还可以藉由平行仿真系统在PC上直接仿真硬件上的各种操作。图2-x8:KeilC51项目建立流程图建立新專案專案加入檔案編輯/修改程式組譯/編譯與連結程式除錯與線上模擬【范例2-2】建置新项目的操作实例建置一个新的专案”ch2_1.uv2”,加入ch2_1.asm汇编程序档。执行程序的组译与连结。并利用除错工具仿真执行此程序。操作步骤如下:步骤1:开启[Project]菜单,点选[NewProject]指令,在建立档案的对话框中输入”ch2_1”档名,进入[SelectDeviceforTarget1“Target”]窗口,在[CPU]页面找到”Philips”,点选”P89C51RD2xx”,如图2-x9所示,按[确定]指令按钮。图2-x9:[SelectDeviceforTarget1“Target”]窗口步骤2:开启[File]菜单,点选[New]指令,建立一个空白的新文件(预设档名为Text1)。开启[File]菜单,点选[Save]指令,将刚Text1新档案以”ch2_1.asm”档名储存。步骤3:在新建立空白ch2_1.asm档案的[程序编辑窗口]输入下列程序代码:MOVA,#12H;将12H资料存入累加器MOVR0,#34H;将34H资料存入R0MOV30H,#56H;将56H资料存入RAM的30HMOVP0,#0FH;将0FH数据输出到P0端口END步骤4:在[项目窗口]的[SourceGroup1]按右键,点选[AddFiletoGroup“SourceGroup1”],将编辑的ch2_1.asm程序文件加入这个项目中。(若档案类型预设*.c,变更为ASMSourcefile,即可看到ch2_1.asm)步骤6:程序代码编辑完成后,在Debug工具列上按下(BuildTarget)按钮,就可以建置项目(或可用