




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录 A Keil Vision4 集成开发环境与 C语言程序设计Keil 企业是一家业界当先的微控制器(MCU )软件开发工具的独立供给商。Keil 企业由两家个人企业结合营运,分别是德国慕尼黑的Keil ElektronikGmbH 和美国德克萨斯的Keil Software Inc 。 Keil 企业制造和销售种类宽泛的开发工具,包含ANSI C 编译器、宏汇编程序、调试器、连结器、库管理器、固件和及时操作系统核心(real-time kernel) 。有超出 10万名微控制器开发人员在使用这类获得业界认同的解决方案。其Keil C51 编译器自 1988 年引入市场以来成为事实上的行业
2、标准,并支持超出500 种 80C51变种。 Keil 企业在 2007 年被 ARM 企业收买。其两家企业分别更名为ARM Germany GmbH和 ARM Inc 和。2009 年 2 月, Keil 企业公布了 Keil Vision4 , Keil Vision4 引入灵巧的窗口管理系统,使开发人员能够使用多台监督器,供给可在虚构接口上任意搁置窗口的完好控制能力。新的用户界面能够更好地利用屏幕空间和更有效地组织多个窗口,供给一个整齐, 高效的环境来开发应用程序。 新版本支持更多最新的80C51 兼容芯片及 ARM 芯片,还增添了一些其他新功能,如系统查察器 (System Viewe
3、r)窗口、多项目工作空间(Multi-Project Workspace)等。附 A.1 Keil Vision4 集成开发环境A.1.1 简介Keil Vision4 集成开发环境(Integrated Development Environment , IDE )是一个鉴于Windows的开发平台,它包含高效的源代码编写器、项目(Project)管理器和程序生成(MAKE )工具。 Keil Vision4 支持所有的80C51 嵌入式应用工具,它包含C/C+ 编译器宏汇编器、连结/定位器和一个HEX 文件生成器。 Keil Vision4 经过以下特征加快MCU嵌入式应用系统的开发过程:
4、 全功能的源代码编写器; 器件库用来配置开发工具设置; 项目管理器用来创立和保护项目; 集成的 MAKE工具能够汇编、编译和连结用户的嵌入式应用; 所有开发工具的设置都是以对话框的形式出现的; 拥有真实的源代码级的对CPU和外头器件的调试器; 高级 GDI 接口用来在目标硬件长进行软件调试以及和Monitor-51进行通讯; 与开发工具手册、器件数据手册和用户指南有直接的链接。1.C51 编译器和A51 汇编器源代码由 Vision4 创立,并被 C51 编译成 A51 汇编。编译器和汇编器从源代码生成可重定位的目标文件。Keil C51编译器完好依照ANSIC语言标准,支持C语言的所有标准特
5、征。此外,直接支持 80C51 构造的几个特征被增添里面。Keil A51宏汇编器支持80C51 及其派生系列的所有指令集。2.LIB51库管理器LIB51 库管理器同意从由编译器或汇编器生成的目标文件创立目标库。地组织过并在此后能够被连结重用的对象模块。当连结器办理一个库时,目标模块才被真实使用。库是一种被特别不过那些被使用的3.BL51 连结器 / 定位器BL51 连结器 / 定位器利用从库中提取的目标模块和由编译器或汇编器生成的目标模块创立一个绝对地点的目标模块。一个绝对地点目标模块或文件包含不行重定位的代码和数据。所有的代码和数据被布置在固定的储存器单元中。此绝对地点目标文件能够用来:
6、写入 EPROM或其余储存器件。经过 Vision4调试器来模拟和调试。经过仿真器来测试程序。4.OH51 目标文件变换器OH51目标文件变换器能够把前面编译连结好的目标文件变换成能写入EPROM中的 HEX文件。5. Vision4调试器Vision4 源代码级调试器是一个理想的迅速、靠谱的程序调试器。此调试器包含一个高速模拟器,能够模拟整个 8051 系统,包含片上外头器件和外面硬件。当从器件库中选择器件时,这个器件的特征将自动配置。 Vision4调试器为在实质目标板上测试程序供给了以下2 种方法:安装 MON51目标监控器到目标系统并且经过Monitor-51接口下载程序;利用高级的G
7、DI( AGDI)接口,把 Vision4调试器绑定到目标系统。6.Monitor-51Vision4 调试器支持用 Monitor-51 进行目标板调试。此监控程序驻留在目标板的存储器里,它利用串口和 Vision4 调试器进行通讯。利用 Monitor-51 , Vision4 调试器能够对目标硬件推行源代码级的调试。7.RTX-51 及时操作系统RTX-51 及时操作系统是一个针对 8051 系统的多任务核。 RTX-51 及时内核从实质上简化了对及时势件反响速度要求高的复杂应用系统的设计、编程和调试。 RTX-51 及时内核是完好集成到 C51 编译器中的,进而方便使用。任务描绘表和操
8、作系统的连结由 BL51 连结器 / 定位器自动控制。附 A.1.2 安装认识了 Keil Vision4的一些基本概略后,下边开始在计算机上搭建MCU的集成开发环境。操作步骤以下:第一准备 Keil Vision4安装源文件,双击 Vision4的 Setup 安装文件,弹出 KeilVision4安装的欢迎界面,如图A-1 所示。A-1 Keil Vision4 欢迎界面单击“ Next ”按钮,弹出“License Agreement”对话框,如图A-2 所示。这里显示了一些用户安装的协讲和同意的要求,选择“ I agree to all the terms of the precedi
9、ng License Agreement ”即可,不然没法进入下一步。A-2 “License Agreement ”对话框单击“ Next ”按钮,弹出“FolderSelection”对话框,如图A-3 所示。系统默认安装在“ C:Keil”文件夹下。在这里,单击“Browse”按钮,能够选择安装的目录。A-3 “ Folder Selection”对话框单击“ Next ”按钮,弹出”Customer Information”对话框,如图A-4 所示。此时,用户需要输入用户名、企业名称和E-mail ,缺一不行。图 A-4 用户信息输入单击” Next ”按钮,下边便开始自动安装。Kei
10、l Vision4安装达成后,弹出安装达成对话框,如图A-5所示。这里的几个选项的含义以下。图 A-5 达成安装Show Release Notes:显示安装的版本说明信息。Add Example projects to the recently used project list:增添一个示例程序到当前项目列表中。Retaincurrent Visionconfiguration:保持目前的设置(假如是第一次安装,则不存在这个选项) 。最后,单击 Finish按钮,便能够结束Keil Vision4意的是,刚才安装完的版本是试用版(Evaluation Version集成开发环境的安装。需要
11、注),代码长度有2KB限制。A.1.3 Keil Vision4 集成开发环境地面安装达成后,会在桌面上出现KeilVision4程序的图标,并在“开始”程序里增添“Keil Vision4 ”程序项。从“开始”程序里选择“Keil Vision4 ”程序项或许直接双击桌面上的Keil Vision4程序图标,即可启动Keil Vision4 。启动Keil Vision4后,假如是第一次运转,则翻动工程项目“Hello ”,如图 A-6 所示。A-6 Keil Vision4 集成开发环境地面这里能够看到,Keil Vision4集成开发环境拥有典型的Windows 界面风格。整个编程界面主
12、要包含菜单栏、工具栏、项目管理区、源代码工作区和输出信息窗口。此外,还有一些功能窗口将在后边逐渐介绍。下边我们将率领读者逐个认识KeilVision4集成开发环境的主要构成部分。A.1.4 Keil Vision4 菜单命令Keil Vision4 的菜单栏供给了项目操作、编写操作、编译调试及帮助等各样常用操作。所有的操作基本上都能够经过菜单命令来实现。为了迅速履行Keil Vision4的很多功能, 有些菜单命令在工具栏上还拥有工具条。为了更迅速履行一些功能,Keil Vision4供给了比工具栏上的工具条更加快捷的操作,即快捷键。在Keil Vision4 集成开发环境中不单供给了常用功能
13、的默认快捷键,同时用户也能够依据自己的需要自定义快捷键。下边就菜单命令、工具条、快捷键分别进行介绍。1 File 菜单File 菜单和标准的Windows软件的 File菜单近似,供给了项目和文件的操作功能。File菜单各个命令的功能如表A-1 所示。表 A-1 File 菜单菜单命令工具条快捷键功能说明NewCtrl+N创立一个新的空白文件OpenCtrl+O翻开一个已存在的文件Close封闭目前翻开的文件SaveCtrl+S保存目前翻开的文件Save as目前文件另存为Save all保存所有翻开的文件Device Database翻开器件库License Management产品注册管理
14、Print Setup设置打印机PrintCtrl+P打印目前文件Print Preview打印预览1 . 10列出近来翻开的源文件或文本文件Exit退出 Keil Vision42 Edit菜单Edit 菜单供给了常用的代码编写操作命令。表 A-2 Edit菜单命令工具条快捷键UndoCtrl+ZRedoCtrl+YCutCtrl+XCopyCtrl+CPasteCtrl+VNavigate BackwardsCtrl+Shift+-Navigate ForwardsCtr+-Insert/Remove BookmarkCtrl+F2Go to Next BookmarkF2Go to Pr
15、evious BookmarkShift+F2Clear All BookmarksCtrl+Shift+F2FindCtrl+FReplaceCtrl+HFind in FilesCtrl+Shift+FIncremental FindCtrl+IOutliningAdvancedConfigurationEdit菜单各个命令的功能如表A-2 所示。菜单功能说明撤消上一次操作重复上一次操作剪切选定的内容复制选定的内容粘贴已复制的内容光标挪动到使用Find 或 go to line命令的前一行光标挪动到使用Find 或 go to line命令的后一行设置 / 撤消目前行的标签光标挪动到下一个
16、标签光标挪动到上一个标签消除目前文件的所有标签在目前文件中查找替代在多个文件中查找渐进式找寻源代码纲要显示模式各样高级编写命令颜色、字体等高级配置3 View 菜单View 菜单供给了在源代码编写和仿真调试过程中,各个窗口和工具栏的显示和隐蔽命令。 View 菜单各个命令的功能如表A-3 所示。菜单命令Status BarToolbarsProject WindowBooks WindowFunctions WindowTemplates WindowSource Browser WindowBuild Output WindowFind in Files WindowFull ScreenC
17、ommand WindowA-3 View 菜单工具条功能说明显示 /隐蔽状态条显示 /隐蔽工具栏显示 /隐蔽项目管理窗口显示 /隐蔽参照书窗口显示 /隐蔽函数窗口显示 /隐蔽模板窗口显示 /隐蔽资源阅读器窗口显示 /隐蔽输出信息窗口显示 /隐蔽在所有文件中查找文本窗口显示 /隐蔽全屏显示窗口调试模式下的菜单命令显示 /隐蔽命令行窗口Disassembly WindowSymbols WindowRegisters WindowCall Stack WindowWatch WindowsMemory WindowsSerial WindowsAnalysis WindowsTraceSyste
18、m ViewerToolbox WindowPeriodic Window Update显示 /隐蔽反汇编窗口显示 /隐蔽字符变量窗口显示 /隐蔽寄存器窗口显示 /隐蔽货仓窗口显示 /隐蔽变量子菜单察看窗口显示 /隐蔽储存器子菜单窗口显示 /隐蔽串行口察看子菜单窗口显示 /隐蔽剖析子菜单窗口显示 /隐蔽追踪子菜单窗口显示 /隐蔽外设子菜单窗口显示 /隐蔽自定义工具条窗口在程序运转时刷新调试窗口4 Project菜单Project 菜单供给了能如表 A-4 所示。菜单命令New Vision Project.New Multi-Project Workspace.Open Project.Clo
19、se ProjectExportManageSelect Device for Target name.Remove objectOptions for objectClean targetBuild targetRebuild all target filesBatch Build.Translate fileStop build1 . 10MCU项目的创立、设置和编译等命令。Project菜单各个命令的功表 A-4 Project菜单工具条快捷键功能说明创立新项目创立多项目工作空间翻开一个已存在的项目封闭目前项目导出目前一个或多个项目为 Vision3格式管理项目的包含文件、库的路径及多项
20、目工作空间为目前项目选择一个MCU 种类从目前项目中移除选择的文件或项目组Alt+F7设置目前文件、项目或项目组的配置选项消除编译过程中创立的中间文件F7编译文件并生成应用文件从头编译所有文件并生成应用文件批量编译文件并生成应用文件Ctrl+F7编译目前文件停止编译目前项目列出近来翻开的项目(最多10 个)5 Flash 菜单Flash 菜单供给了下载程序、擦除MCU程序储存器等操作。这里的命令需要外面的编程器支持才能够使用。Flash 菜单各个命令的功能,如表A-5 所示。表 A-5 Flash菜单菜单命令工具条功能说明Download下载 MCU 程序Erase擦除程序储存器Configu
21、re Flash Tools.翻开配置工具6 Debug 菜单Debug 菜单中的命令大多用于仿真调试过程中,供给了断点、调试方式及逻辑剖析等功能。 Debug 菜单各个命令的功能如表 A-6 所示。表 A-6 Debug 菜单菜单命令工具条快捷键Start/Stop Debug SessionCtrl+F5Reset CPURunF5StopStepF11Step overF10Step outCtrl+F11Run to Cursor lineCtrl+F10Show Next StatementBreakpointsCtrl+BInsert/Remove BreakpointF9Enab
22、le/Disable BreakpointCtrl+F9Disable All BreakpointsKill All BreakpointsCtrl+Shift+F9OS SupportExecution ProfilingMemory MapInline AssemblyFunction Editor (Open Ini File)Debug Settings功能说明开始 / 停止仿真调试模式复位 CPU(MCU )运转程序,直到碰到一个断点停止运转程序单步履行程序,碰到子程序则进入单步履行程序,跳过子程序程序履行到目前函数的结束程序履行到光标所内行显示下一条指令翻开断点对话框设置 / 撤
23、消目前行的断点使能 / 严禁目前行的断点禁用所有断点撤消所有断点翻开查察事件、任务及系统信息的子菜单翻开一个带有配置选项的子菜单翻开储存器空间配置对话框对某一前进行从头汇编,能够改正汇编代码编写调试函数和调试配置文件设置调试参数7 Peripherals菜单Peripherals菜单供给了MCU各样硬件资源的仿真对话框。这里的所有命令都只在仿真调试环境下才显示并能够使用,并且显示的资源内容随用户选择的MCU型号的不一样而不一样。这里列出一些常用到的 Peripherals菜单命令的功能,如表 A-7所示。表 A-7 Peripherals菜单菜单命令功能说明Interrupt翻开中止仿真对话框
24、I/O Ports翻开并行端口仿真对话框Serial翻开串口仿真对话框Timer翻开准时器仿真对话框Watchdog翻开看门狗仿真对话框A/D Converter翻开 A/D 变换器仿真对话框D/A Converter翻开 D/A 变换器仿真对话框I2 C Controller翻开 I2C 总线控制器仿真对话框CAN Controller翻开 CAN总线控制器仿真对话框8 Tools 菜单Tools 菜单供给了一些第三方软件的支持,比如PC-Lint 。用户需要额外安装相应的软件才能够使用。 Tools 菜单调般使用得比较少, 这里仅列出各个命令的功能, 如表 A-8 所示。表 A-8 Too
25、l 菜单菜单命令功能说明Set-up PC-Lint配置 PC-Lint 程序Lint用 PC-Lint程序办理目前编写的文件Lint All C-Source Files用 PC-Lint程序办理项目中所有的C源代码文件Customize Tools Menu.自定义工具菜单9 SVSC菜单SVSC菜单供给了程序的版本控制,该菜单下仅包含“Configure Version Control”一个命令,用于配置软件版本。此外,Windows 菜单下供给了对工作区窗口布局的管理, Help 菜单供给了一些帮助信息,这里不再详细介绍。A.2 Keil Vision4 汇编语言程序的调试方法Keil
26、 Vision4 集成开发环境中包含一个项目管理器, 它能够使鉴于 80C51 内核的 MCU 应用系统设计变得简单。要创立一个应用,需要按以下步骤操作:1.启动 Keil Vision4 ,新建一个项目文件并从器件库中选择一个器件;2.新建一个源文件并把它加入到项目中;设置目标硬件选项;4.编译项目并生成能够编程到程序储存器的HEX 文件;软件模拟调试及下载到 MCU 中进行仿真调试。下边经过一个实例,详尽介绍怎样在Keil Vision4 集成开发环境中调试80C51 系列MCU 的汇编语言程序。【例 A-1 】假定晶振频次为 11.0592MHz,将 MCU片外 RAM中 40H 5FH
27、单元中的内容所有移到片内同样地点地区,并将原数据区所有清零。A.2.1 启动 Keil Vision4 并创立一个项目双击桌面Keil Vision4程序图标或单击开始菜单中的Keil Vision4 程序项,启动Keil Vision4 集成开发环境。要新建一个项目文件,能够从Keil Vision4 的 Project 菜单中选择“ New Project ”项,翻开“ Create New Project ”对话框,如图A-7 所示。图 A-7“ Create New Project ”对话框在此对话框的 “文件名” 栏中输入项目文件名。建议为每一个项目成立一个独立的文件夹。第一,在下拉
28、列表中选摘要保存的地点,最好选择逻辑盘D 或 E(不要保存在系统盘C,防止因系统从头安装而丢掉文件)。单击“新建文件夹” ,获得一个空文件夹,给该文件夹重命名为“ test”(文件夹的名字最好能够表现项目名称)。双击该文件夹,在“文件名(N)”栏中输入项目的名称,如“movedata”,创立一个文件名为“movedata.uvproj ”的新项目文件。单击“保存( S)”按钮,将弹出“ Select Device for Target Target 1”对话框,提示为项目选择一个 MCU 。在该对话框中, “ Data base”列表框中显示出各个 MCU 的生产商。第一找到采纳的 MCU 生
29、产商,单击前面的“ +”号,显示出 Keil Vision4 所支持的该企业MCU 型号列表,单击此中选定的 MCU 型号。如本例中,选择 Atmel 企业的型号为 AT89S52MCU ,如图 A-8 所示。A-8 “ Select Device for Target Target 1”对话框单击“ OK ”按钮, 弹出如图A-9 所示的对话框,提示能否将标准8051 启动代码复制到项目文件夹中并将该文件增添到项目中去。图 A-9复制启动代码提示对话框在 KeilVision4 中,启动代码在复位目标系统后立刻被履行。功能: 消除内部数据储存器; 消除外面数据储存器; 消除外面页储存器; 初
30、始化 small 模式下的可重入栈和指针; 初始化 large 模式下的可重入栈和指针; 初始化 compact 模式下的可重入栈和指针; 初始化 8051 硬件栈指针; 传达初始化全局变量的控制命令或许在没有初始化全局变量时给启动代码主要实现以下main 函数传达命令。在每一个启动文件中, 供给了可供用户自己改正有来控制程序履行的汇编常量。 假如不过调试简单程序,能够选择“否( N)”,假如项目复杂可选择“是( Y )”。用户可依据需要改正启动代码,但一般不建议改正启动代码。附 A.2.2 新建一个源文件并把它加入到项目中从“ File ”菜单中选择“New ”项新建一个源文件,或许单击工具
31、栏上的按钮一个空白的编写窗口,用户能够输入程序源代码。输入以下程序源代码:,翻开ORGLJMPORG0000HMAIN0040HMAIN:MOVMOVMOVSP,#70HR0,#40HR1,#20HLOOP:MOVMOVXMOVMOVMOVXINCDJNZP2,#00H;A,R0R0,AA,#00HR0,AR0R1,LOOP软件仿真时一定有END从“ File ”菜单中选择“Save”项或许单击工具栏中的保存按钮,将文件保存为想要的名字。假如使用汇编语言编写程序,则文件的后缀名是:.asm 或许 .a51,如 test.asm,如图 A-10 所示(假如使用C 语言编写程序,则文件的后缀名是:
32、.c,以下步骤与汇编语言程序同样)。保存后, Keil Vision4 将高亮显示汇编语语言法字符,如图A-11 所示。图 A-10保存源文件图 A-11 保存后程序显示界面源文件创立达成后, 就能够将它加入到项目中 (如不加入, 则没法对此文件操作) 。Keil Vision4 供给了几种方法让用户把源文件加入到项目中。( 1)在“ Project Workspace ”(项目管理器)窗口中单击“Target 1”前面的“ +”号,睁开下一层的“ Source Group 1”文件夹,在“ Source Group 1”文件夹上单击鼠标右键,弹出快捷菜单, 如图 A-12 所示。从弹出的快捷
33、菜单中单击 “Add Files to Group Source Group1”项,弹出“ Add Files to GroupSource Group 1”对话框,如图A-13 所示。图 A-12 将源文件加入到项目中图 A-13 “ Add Files to Group Source Group 1”对话框在该对话框中,默认的文件种类是“C Source file( *.c )”。若使用汇编语言进行设计,则需要从 “文件种类” 下拉列表框中选择 “ Asm Source file ( *.S* ;*.src;*.a* )”文件种类。这样,以 .asm 为扩展名的汇编语言程序言件才会出此刻文
34、件列表框中。从文件列表框中选摘要加入的文件并双击即可增添到项目中;也能够单击选中文件,而后单击“Add ”按钮将该文件加入项目中。增添文件后,对话框不会自动封闭,而是持续等候增添其余文件,用户可单击“ Close”按钮, 封闭对话框。 当给项目增添文件成功后,项目管理器的 “ Source Group1”文件夹前面会出现“ +”号,单击它可看到 test.asm 文件已经包含在项目中了。双击它即可翻开进行改正。附 A.2.3 设置目标硬件选项Keil Vision4同意用户为目标硬件设置选项。能够经过单击工具条图标、菜单“Project ”的“ Options for Target Targe
35、t 1 ”项或许在 “ Project Workspace”窗口的 “ Target1”上单击鼠标右键,翻开“Options for Target Target 1 ”对话框。在各选项卡中,可以改正与目标硬件及所选MCU 的片上集成器件的所有参数,如图A-14 所示。图 A-14 Options for Target Target 1对话框主要设置 CPU 的时钟频次、编译器的储存模式等。晶振频次设置应与实质使用的晶振频次同样。假如仅进行软件模拟调试,则采纳默认设置即可。附 A.2.4 编译项目并生成能够编程到程序储存器的HEX文件单击工具栏中的“Rebuild ”图标,能够编译所有的源文件并
36、生成应用。当程序中有语法错误时, Keil Vision4 将在“ Build Output ”窗口显示错误或许警示信息。双击一行错误提示信息,将翻开此信息对应的文件,并定位到语法错误处,如图A-15 所示。在错误信息上双击鼠标,光标会自动定位到出现该错误的程序行上。比如,如图A-15所示,出现“ test.asm(15): error A45: UNDEFINED SYMBOL (PASS-2)”(不决义符号)错误信息,双击该信息,光标定位到出现该错误的行上。用户很简单发现错误原由是将标号“LOOP ”错写成“ LOO ”,遗漏字母P。由输入惹起的用户常犯的编译错误还有:错将数字0 输成字母
37、o,使用中文输入法输入了全角逗号(,)和冒号(:),大于 9FH (如 A8H )的十六进制数忘掉在前面加上数字0(正确写法0A8H )等。依据错误信息提示,改正程序中出现的错误,直到编译成功为止。一旦编译成功,则显示如图A-16 所示信息。提示信息最后一行为“ movedata - 0 Error(s), 0 Warning(s). ”,不只没有错误,并且最好也没有警示。需要注意的是, Keil Vision4 默认是不生成 HEX 文件的。这时就需要设置目标硬件选项中的“ Output ”选项卡,选中“ Create HEX File ”前面的复选框,如图 A-17 所示。A-15 编译出
38、现错误信息时的提示A-16 编译成功提示信息A-17 生成 HEX 文件的选项A.2.5 软件模拟调试及下载到 MCU中进行仿真调试一旦编译成功,就能够进行程序的仿真调试了。关于程序的调试,有两种方式:一种是软件模拟仿真调试,另一种就是下载到硬件仿真器或许MCU 中进行在线仿真调试。一般情况下,第一使用软件模拟仿真调试,经过以后,再用硬件仿真器或许直接下载到MCU 中进行在线仿真调试。 因为软件模拟仿真调试与在线仿真调试方法基真同样,所以就以软件模拟仿真调试为例,介绍程序的调试方法。为了对前面编写的程序能够在不连结硬件仿真器或许MCU 的状况下进行仿真调试(即软件模拟),需对 Keil Vis
39、ion4 做一下设置。依据2.3 设置目标硬件选项翻开 “Options forTarget Target 1 ”对话框,选中“ Debug”页,如图 A-18 所示。一般状况下,假如没有进行硬件仿真,则“ Use Simulator ”单项选择框是默认选中的,此时,进行软件模拟调试,其它选项不做改正;不然,则选中“ Use:”单项选择框,并在其下拉框中选择相应的硬件驱动,并点击“ Settings”按钮对目标仿真硬件进行设置。A-18 设置“ Options for Target Target 1 ”对话框中的“ Debug”页经过以上设置,就能够进行软件模拟调试了。单击工具栏中的“Star
40、t/Stop Debug Session”按钮,或许从“Debug ”菜单中选中“Start/Stop Debug Session”项(其快捷键为 Ctrl+F5 ),开始模拟调试过程。 在调试过程中,能够进行以下操作:1.连续运转单击工具栏中的按钮,或许“Debug”菜单中的“Run”(快捷键F5),能够使程序全速运转。2.停止程序运转当程序全速运转时,能够单击工具栏中的按钮,或许“Debug”菜单中的“Stop”,使程序停止运转。3.复位CPU当程序运转过一次以上后,累加器 A 、某些寄存器或许其余资源的值改正了,行需要恢复到初始状态,这时就需要履行复位CPU 的命令。单击工具栏中的按钮“
41、Debug”菜单中的“Reset CPU”,能够使MCU 恢复到初始状态。而再次运,或许4.单步运转单击工具栏中的按钮,或许“ Debug”菜单中的“行程序。假如碰到函数调用,则进入函数内部并单步运转。Step”(快捷键F11),能够履行一5.单步跳过函数运转单击工具栏中的按钮,或许“ Debug”菜单中的“Step Over”(快捷键F10),能够执行一行程序。假如碰到函数调用,则将函数调用看做一行程序运转,不进入函数内部运转。6.运转到目前函数的结束这类状况出此刻单步运转后进入到函数内部运转程序,经过单击工具栏中的按钮或许“ Debug”菜单中的“ Step Out”(快捷键 Ctrl+F
42、11 ),以运转到目前函数的结束。,7.运转到光标行单击工具栏中的按钮,或许“ Debug”菜单中的“ Run to Cursor Line ”(快捷键能够履行到光标所在的程序行。Ctrl+F10),8.设置断点在要设置断点的程序行上双击鼠标左键,或许单击工具栏上的按钮,或许“ Debug”菜单中的“ Insert/Remove Breakpoint ”(快捷键 F9),能够在目前行上插入或许删除断点。只要在目前行上设置了断点,则在目前行的最左边显示一个红色的小方块。连续运转程序后,履行到该行时, 程序会暂停运转。此时用户能够查察程序运转的一些中间状态和结果(累加器 A 、工作寄存器、SFR、
43、数据储存器等) 。9.查察寄存器当进入调试状态后,Keil Vision4 集成开发环境中左边的项目管理器,变为寄存器查看器。如图A-19所示。用户能够经过这个窗口察看工作寄存器、部分图 A-19 察看寄存器的内容SFR 的内容。10.查察变量及货仓在调试状态中,在Keil Vision4 集成开发环境中的右下侧会出现如图口,即调用货仓和变量查察窗口(使用C 语言编程调试的时候常用)。图 A-20 调用货仓和变量查察窗口A-20所示的窗11.查察储存器在图 A-20 中单击 Memory1 选项卡则在在Keil Vision4 集成开发环境中的右下侧会出现如图A-21所示的窗口,即储存器查察窗
44、口。图 A-21 储存器查察窗口默认状况下,想查察内部RAM (片内数据储存器)中的内容,需在“Address”编写框中输入“ D : 0”并按回车键即可。拖动窗口的左边框能够调整窗口的大小,经过调整,最佳的显示范围如图A-22 所示。图 A-22 片内数据储存器查察窗口能够经过“ View ”菜单中的“ Memory Windows ”项,增添储存器查察窗口,这样可通过不一样的窗口查察不一样储存器的内容。比如,可再增添一个窗口查察外面RAM 中的内容。如图 A-23 所示,在在“Address”编写框中输入“X: 0”并按回车键即可。图 A-23 片外数据储存器查察窗口要改变某个地点单元中的
45、内容,可在上边双击鼠标左键即可改正;或许在要改正内容的单元上单击鼠标右键,弹出菜单,选择“Modify Memory at”改正。经过弹出菜单,还可改正良制、有符号数、无符号数、ASCII 码等“ Address”编写框一般输入格式以下:X : XXXX此中X 为:D,查察内部X ,查察外面RAM RAM;I,查察间接接见的内部RAM ;C,查察程序ROM 。XXXX为:查察的开端地点(0000HFFFFH )。12.查察外面设施单击菜单“ Peripherals”可选择查察所选MCU 集成的不一样外面设施。比如:( 1)“ Interrupt ”翻开中止向量表窗口,在窗口里显示了所有的中止向
46、量。如图A-24所示。对选定的中止向量能够用窗口下边的复选框进行设置。A-24 中止向量表窗口2)“ I/O-Ports ”:翻开 I/O 端口( P0P3)的察看窗口,在窗口里显示了程序运转时的端口状态。能够随时查察并改正端口的状态,进而模拟外面的输入。比如,要查察P2 口的状态,可翻开P2 口的察看窗口,如图A-25 所示。当运转到第10 行时,则如图A-26 所示。图中标有 “”的复选框表示这一位的值是1,没有的为0。关于不一样的MCU ,可能图 A-25 、图 A-26 的显示略有不一样。图 A-25 刚进入调试状态时P2 口的查察窗口A-26 运转到程序行第 10 行时 P2 口的查
47、察窗口3)“Serial ”:翻开串行口的察看窗口,能够随时改正窗口里显示的不一样状态。4)“Timer ”:翻开准时器的察看窗口,能够随时改正窗口里显示的不一样状态。除此之外,关于不一样企业生产的MCU ,在“ Peripherals”菜单中会出现好多与该型号MCU 有关的外面设施资源菜单项。掌握了上述的操作过程, 就能够进行基本的程序调试工作了。 只有不停调试程序, 才能逐渐累积经验,加强对 MCU 的使用,做到灵巧运用,娴熟掌握。附A.3 Keil C51语言固然 MCU 上使用的 C 语言都是直接针对详细硬件的,但任何一家企业开发的C 语言,都一定切合ANSIC 的标准,或许说,要与A
48、NSIC 兼容。所以,不论哪一家企业为MCU开发的 C 语言,其主要部分必定要与ANSI C 保持一致, 不一样的不过非ANSI C 的扩展部分,Keil C51 也不例外。Keil C51 是一个兼容ANSI C的编译器,为了支持80C51 系列MCU加入了一些扩展的内容。 C51 编译器与ANSI C 对比,扩展的内容包含:数据种类、储存器种类、储存模式、指针及函数 (包含: 定义函数的重入性、指定函数的寄存器组、指定函数的储存模式及定义中止服务程序) 。阅读本书的读者请注意,本书没有详尽介绍标准的C 语言,不过介绍Keil C51 对 ANSIC 的扩展。关于通用的C 语言部分,假如需要
49、,请查阅有关介绍C 语言的教材。下边详尽介绍 Keil C51 对 ANSI C 的扩展部分。A.3.1 数据种类Keil C51 编译器支持的各样规格的数据种类列于表A-8 。除了这些数据种类之外,变量能够组合成构造、结合及数组。表 A-8 KeilC51支持的数据种类数据种类位数字节数值范围signed char81-128到+127unsigned char810 到 255signed short162-32768到+32767unsigned short1620 到 65535signed int162-32768到+32767unsigned int1620 到 65535sign
50、ed long324unsigned long324float3241.175494E-38 到3.402823E+38bit10或 1sbit10或 1sfr810 或 255sfr 161620 或 65535数据表 A-1 所列的数据种类中,重点字bit 、 sbit 、 sfr 和 sfr16 等四种种类在ANSI C中是没有的,是Keil C51 编译器中新增添的。此中,重点字bit 用于操作80C51 中的位寻址区,而重点字sbit 、 sfr 和 sfr16 用于操作80C51 的特别功能寄存器SFR。比如,下边的表达式:sfrP0 = 0 x80;/*定义声了然一个变量P0,并
51、且把它和位于80C51 P0 口的特别功能寄存器*/0 x80( 80C51 的 P0 口)处的特别功能寄存器联系在一同。1.bit 种类bit 数据种类用于定义操作位寻址区的变量,可用于变量申明、参数列表、函数申明和函数返回值等。所有的bit 变量寄存在 80C51 内部储存区的位寻址区。因为这个地区只有16 字节长,所以最多只好申明128 个位变量。一个 bit 变量的申明与其余数据种类相像,比如:static bit gbFlag = 0;/*位变量 */bit bFunc (/*位函数 */bit bFlag1,/*位变量 */bit bFlag2 )/*位变量 */?return(0
52、)/*位返回值 */bit 变量的申明中, 可包含储存器种类。 可是因为 bit 变量储存在80C51 的内部数据区,只好使用 data 和 idata储存种类,不可以使用其余储存种类。比如:int data iBase;/*在在直接接见数据区定义一个整型变量iBase */char idata cAry4;/*在间接接见数据区定义一个数组iBase */bit mybit0 = iBase 0;bit mybit15 = iBase 0;bit bAry07 = cAry0 7;bit bAry37 = cAry 3 7;bit 变量和bit 申明有以下限制:1)假如在函数中严禁使用中止(
53、#pragma disable)或许函数中包含有明确的寄存器组切换( using n),则该函数不可以返回一个位值。不然,在编译时会产生编译错误。( 2)一个位不可以被申明为一个指针,如bit *bPtr; 是错误的。( 3)不可以申明使用一个bit 种类的数组,如bit bArr5 ;是错误的。2.sfr 种类sfr 和 C 语言的其余种类变量申明是同样的。比如:sfr P0 = 0 x80;/* P0 口 ,地点为sfr P1 = 0 x90;/* P1 口 ,地点为sfr P2 = 0 xA0;/* P2 口 ,地点为sfr P3 = 0 xB0;/* P3 口 ,地点为P0、P1、 P
54、2 和 P3 是申明的SFR 名。在等号(同意用带操作数的表达式。标准的80C51 系列支持80H */90H*/0A0H */0B0H*/=)后指定的地点一定是一个常数值不SFR 地点从 0 x80 到 0 xFF 。3.sfr16KeilC51 编译器供给的sfr16 数据种类,能够将两个8 位的 SFR 作为一个来接见。接见该16 位的 SFR 只好是低字节随着高字节,马上低字节的地点用作的地点。比如:16 位的 sfr16SFR申明sfr16 T2 = 0 xCC;/*定义Timer2 的16 位数据寄存器, TL2的地点为0CCH,TH2在这个例子中,准时器T2的地点为0CDH */
55、的 16 位的数据寄存器被申明为16 位 SFR。自然,这个16位的数据寄存器能够申明为2 个8 位的数据寄存器。以下所示:sfr TL2 = 0 xCC;/* 定义Timer2的16 位数据寄存器的低8 位 , TL2的地点为0CCH */sfr TH2 = 0 xCD;/* 定义Timer2的16 位数据寄存器的高8 位 , TH2的地点为0CDH */sfr16 申明和sfr 申明依据同样的原则。任何符号名可用在sfr16 的申明中。等号(=)指定的地点,一定是一个常数值。不一样意使用带操作数的表达式,并且一定使用SFR 的低位和高位字节中的低位字节的地点。4.sbit 种类在 80C5
56、1 系列 MCU 中,常常需要接见SFR 中的某些位, 这时需使用重点字sbit,利用它能够定义可位寻址的对象。定义方法有以下三种。( 1) sbit 位变量名= 位地点这类方法将位的绝对地点赋给位变量,位地点一定位于0 x800 xFF 之间。比如:sbit OV = 0 xD2;sbit CY = 0 xD7;2) sbit 位变量名 = SFR 名 位地点当可位寻址的位位于SFR 中的时候, 可采纳此方法。“位地点” 是一个 07 之间的常数。比如:sfr PSW = 0 xD0;sbit OV = PSW 2;sbit CY = PSW 7;( 3) sbit 位变量名= 字节地点 位
57、地点这类方法以字节地点作为基地点,该字节地点一定位于0 x800 xFF之间。“位地点”是一个 07 之间的常数。比如:sbit OV = 0 xD0 2;sbit CY = 0 xD0 7;A.3.2 储存器种类80C51 的储存地区有两个特奌: 程序储存器和数据储存器是截然分开的; 特别功能寄存器与内部数据储存器是一致编址的。C51 编译器支持80C51 的这类储存器构造,能够接见80C51 的所有储存器空间。针对80C51 储存空间的多样性, 提出了修饰储存空间的修饰符, 用以指明所定义的变量应分派在什么样的储存空间,如表 A-9 所示。表 A-9储存空间种类说明符储存器种类描绘code
58、程序空间( 64KB);经过 MOVCA+DPTR接见。data直接接见的内部数据储存器;接见速度最快(128 字节)。idata间接接见的内部数据储存器;能够接见所有的内部储存器空间(256 字节)。bdata可位寻址的内部数据储存器;可用字节方式也可用位方式接见(16 字节)。xdata外面数据储存器( 64KB);经过 MOVXDPTR接见。pdata分页的外面数据储存器(256 字节);经过MOVXRi接见。1.程序储存区程序的代码(储存区。用codeCODE )储存区是只读的,不可以写入。硬件决定最多可能有表记符来接见片内、片外一致编址的程序储存区,寻址范围为64KB 的程序0000
59、H FFFFH 。在此空间寄存程序代码、数据和表格。用间接寻址的方式接见程序储存区数据,如“MOVCA , A+DPTR ”或“ MOVCA, A+PC ”。2.内部数据储存区内部的数据储存区是可读、可写的。内部数据区能够分红三个不一样的储存种类80C51 系列最多可有256 字节的内部数据储存区。data、 idata 和 bdata。data 储存种类表记符往常是指低128 字节的内部数据区, 为片内直接寻址的RAM 空间,寻址范围为0 127。在此空向内存取速度最快。idata 储存种类表记符是指所有256 个字节的内部储存区, 为片内间接寻址的RAM 空间,寻址范围为0 255。寻址方
60、式为“ MOVRi ”。因为只好间接寻址,接见速度比直接寻址慢。bdata 储存种类表记符是指可位寻址的16 字节内部储存区( 20H2FH ),位地点范围为0 127。本空间同意按字节和按位寻址。在本地区能够申明可位寻址的数据种类。3.外面数据储存区外面数据储存区是可读、可写的。可经过一个数据指针加载一个地点来间接接见外面数据区。所以,接见外面数据储存区比接见内部数据储存区来得慢。外面数据储存区最多可有64KB 。这些地点不必定都用来作为数据储存区。因为,硬件设计可能把外头设施隐射到该储存区。编译器供给两种不一样的储存种类来接见外面数据xdata 和 pdata。xdata 储存种类表记符是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育婴师在父母中的支持角色试题及答案
- 药剂类考试知识点复习的重中之重试题及答案
- 激光应用中的定量分析方法试题及答案
- 扎实卫生管理知识体系试题及答案
- 系统架构设计师考试新兴行业技术变革试题及答案
- 深入了解文化产业管理证书的试题及答案
- 药物代谢相关试题及答案
- 古诗奇葩考试题及答案
- 药剂药物监测系统构建题及答案
- 机械制图比赛试题及答案
- Unit3Lesson1SpringFestival课件高中英语北师大版
- 中介效应分析原理程序Bootstrap方法及其应用课件
- 【员工招聘问题及对策研究文献综述4700字(论文)】
- 四年级下册道德与法治期末考试题(含答案)部编人教版
- 实验四酸性磷酸酶及值测定
- 动产质押监管业务的风险防控及分散
- 山东省临沂市兰山区2022~2023+学年八年级下学期物理期末试卷
- 从矿业权价款到矿业权出让收益
- 地铁16号线风阀设备维修保养手册
- 《护士执业注册申请审核表》(新版)
- 桥牌比赛形式简介
评论
0/150
提交评论