




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务2KeilC51的使用 参见教材 单片机的C51应用程序设计 第302页附录A KeilC51是什么 我们用它用来做什么 怎么用 我想知道 KeilC51是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统 该软件提供丰富的库函数和功能强大的集成开发调试工具 全Windows界面 通过该软件可以完成编辑 编译 仿真 连接 调试等整个开发流程 目前常使用的KeilC51开发系统是uVersionIDE版本 开发人员可以用IDE或其他编辑器编辑汇编或C语言程序 然后分别由A51或C51编译器编译生成目标代码 OBJ 目标文件可以由LIB51创建生成库文件 也可以与库文件一起经过L51连接定位生成绝对目标文件 ABS ABS文件由OH51转换称标准的HEX文件 以供调试器 dScope51或tScope51 进行代码级调试 也可用仿真器直接对目标般调试 还可以直接写入程序存储器中 解答问题1 KeilC51是什么 项目管理编写源程序 C语言 汇编语言编译 查找语法错误 生成HEX文件调试运行 软件仿真 硬件调试 解答问题2 我们用它来做什么 一 启动软件二 项目管理1 打开项目2 创建项目3 选择器件4 添加文件5 移除文件6 设置调试环境 怎么用 探讨问题3 三 新建文件四 编译连接五 调试运行1 常用调试命令2 断点设置3 在线汇编4 调试观察窗口5 外围接口观察窗口 一 启动软件在桌面上选择 开始 程序 KeiluVision 单击图标 或从桌面上直接双击KeiluVision的图标 KeiluVision的图标启动时的屏幕 uVision集成开发环境编辑操作界面主要包括三个窗口 工程项目窗口 编辑窗口和输出窗口 uVision启动时 总是打开最近使用的工程 可以单击Project菜单中的CloseProject项关闭该工程 二 工程管理1 打开工程单击Project菜单 在弹出的下拉菜单中选中OpenProject选项 找到工程所在位置 双击打开 对于近期使用过的工程 可Project下拉菜单中直接点击选择 2 创建工程单击Project菜单 在弹出的下拉菜单中选中NewProject选项 输入工程文件的名字 不需要输入扩展名 为工程取一个名字 工程名应便于记忆且不宜太长 工程默认扩展名 uv2选择要保存的路径 然后 保存 按钮 建议为每个工程单独建立一个目录 并且将工程中需要的所有文件都放在这个目录下 参见教材 单片机的C51应用程序设计 第308页 3 选择器件工程建立完毕 uVision2会立即弹出一个对话框 要求选择单片机的型号 器件选择的目的是告诉uVision2最终使用的单片机芯片的型号是哪一个公司的哪一个型号 因为不同型号的芯片内部资源是不同的 uVision2可根据选择进行SFR的预定义 在软硬件仿真中提供易于操作的外设浮动窗口等 uVision2支持的所有CPU器件的型号根据生产厂家形成器件组 用户可根据需要选择相应的器件组并选择相应的器件型号 通过滚动条 选择生产厂商 目标CPU 如 Atmel器件组内的AT89C51单片机 首先找到Atmel公司 然后单击左边的 号展开该组 选择AT89C51之后 单击 确定 如果在选择了目标器件后 想更改器件 可选择Project菜单中的SelectDeviceforTarget Tartet1 由于不同厂家的许多型号性能相近 因此 如果找不到用户要求的芯片信号 可以选择其他公司的相近型号 参见教材 单片机的C51应用程序设计 第308页 在随后弹出的对话框单击 否 不添加启动代码 复制标准8051启动代码到工程和添加启动代码到工程 选择 否 按钮 如果选择 是 工程文件中就包含一个startup a51文件 否则无该文件 如果你使用汇编语言 又不需要初始化51内存 选择 否 如果你使用C语言 需要初始化内存 硬件设计时添加了扩展内存 要精心调整启动代码参数 可以根据仿真器的需要进行选择 4 添加文件新建工程后 ProjectWorkspace 中没有文件 在左边的工程文件管理窗口中 单击 Target1 前面的 号 然后在 SourceGroup1 上单击右键 然后单击 AddFiletoGroup SourceGroup1 参见教材 单片机的C51应用程序设计 第310页 弹出添加文件对话框 要求寻找源文件 通过 查找范围 列表栏找到文件所在的文件夹 再单击 文件类型 中下拉列表框 从中选取合适的文件类型 默认的 文件类型 为CSourcefile c 也就是以C为扩展名的C51文件 若需要汇编语言文件 请点击对话框中 文件类型 后的下拉列表 找到并选中AsmSourcefile s src a 项 在列表中找到需要的文件 选中文件再单击 Add 或双击文件也可添加成功 在文件加入项目后 该对话框并不消失 等待继续加入其它文件 初学时常会误认为操作没有成功而再次双击同一文件 这时会出现一个的对话框 提示你所选文件已在列表中 此时应点击 确定 返回前一对话框 点击 Close 即可返回主界面 观察添加文件后工程栏的变化 可以发现 在添加了汇编语言文件后 在 SourceGroup1 文件夹前面出现了一个 号 单击 号展开就看到了刚才添加的文件 双击文件名 即打开该源程序 5 移除文件要把某个文件从工程中移除 可在此文件上单击右键 然后单击 RemoveFile 移除不是删除 文件依然存在 1 打开一个已有的工程项目 不是默认项目 2 打开一个已有的工程项目 修改单片机型号 3 打开一个已有的工程项目 删除原有的文件 装入一个已有的C语言文件 4 打开一个已有的工程项目 删除原有的文件 装入一个已有的汇编语言文件 5 新建一个工程项目 选择单片机型号 导入一个已有的C语言文件 6 新建一个工程项目 选择单片机型号 导入一个已有的汇编语言文件 我来演示 6 工程设置项目建立好后还要对工程进行进一步的设置 以满足要求 将鼠标指针指向 Target1 并单击右键 再从弹出的右键菜单中单击 OptionsforTarget 选项 打开工程设置对话框 参见教材 单片机的C51应用程序设计 第311页 单击 Target 项目选项卡 Xtal MHz 后面的数值是晶振频率值 默认值是所选目标CPU的最高可用频率值 该数值与最终产生的目标代码无关 仅用于软件模拟调试时显示程序执行时间 正确设置该数值可使显示时间与实际所用时间一致 如果没必要了解程序执行的时间 也可以不设 MemoryModel 存储模式用于设置RAM使用情况 有三个选择项 Small是所有变量都在单片机的内部RAM中 Compact可使用一页外部扩展RAM Large则可使用全部外部扩展RAM CodeRomSize 代码空间 用于设置ROM空间的使用类别 即Small模式只用小于2KB的程序空间 Compact模式单个函数 子程序 代码量不能超过2KB Large模式可用全部64KB空间 Useon chipROM选择项 确认是否仅使用片内ROM 注意 选中该项并不会影响最终生成的目标代码量 Operating 操作系统 通常用默认值 None 其余选项必须根据所用的硬件来决定 如单片应用 未进行任何扩展 均按默认值设置即可 设置对话框中的 Output 输出选项卡 CreateHEXfile 产生HEX文件 选项用于生成可执行代码文件 可用编程器写入单片机芯片的扩展名为HEX的文件 默认情况该项未被选中 如要做向单片机芯片写程序的硬件实验 必须选中该项 这一点是初学者易疏忽的 在此特别提醒注意 选中DebugInformation将会产生调试信息 这些信息用于调试 如果需要对程序进行调试 应当选中该项 参见教材 单片机的C51应用程序设计 第312页 BrowseInformation是产生浏览信息 该信息可以用菜单View Browse来查看 这里取默认值 按钮SelectFolderforObjects用来选择最终目标文件所在的文件夹 默认是与工程文件在同一个文件夹中 NameofExecutable用于指定最终生成的目标文件的名字 默认与工程的名字相同 这两项一般不需要更改 Listing页面用于调整生成的列表文件选项 在汇编或编译完成后将产生 lst 的列表文件 在连接完成后也将产生 m51 的列表文件 该页用于对列表文件的内容和形式进行细致的调节 其中比较常见的选项是CCompileListing下的AssemblyCode项 选中该项可以在列表文件中生成C语言源程序所对应的汇编代码 C51页面用于对Keil的C51编译器的编译过程进行控制 其中比较常用的是CodeOptimization组 该组中Level是优化等级 C51在对源程序进行编译时 可以对代码多至9级优化 默认使用8级 一般不必修改 如果在编译中出现一些问题 可以降低优化级别试一试 Emphasis是选择编译优先方式 第一项是代码量优化 最终生成的代码量小 第二项是速度优先 最终生成代码的速度快 第三项是默认 默认的是速度优先 可根据需要更改 Debug页面用于设置用户程序的调试方式 单击 Debug 仿真选项卡 可以选择软件仿真 也可以选择硬件仿真 软件仿真是在uVision2环境中仅用软件方式完成对用户程序的调试 硬件仿真需要硬件目标板或相应硬件虚拟仿真环境的支持 对于软件仿真 则选择左侧的 UseSimulator 即可 这也是系统的默认设置 对于硬件仿真器仿真设置请单击靠右侧的 Use 项后 在其右侧的列表栏中选取一个仿真目标即可 参见教材 单片机的C51应用程序设计 第314页 三 新建文件单击 File 菜单 再在下拉菜单中单击 New 选项 或直接单击工具栏上的 新建文件 快捷图标来建立一个新的编辑窗口 此时光标在编辑窗口里闪烁 就可以输入用户的应用程序了 或者把已有的程序从其他地方直接复制到程序编辑窗口内 文件的建立也可以用Windows环境的附件中的记事本或写字板等纯文本编辑软件完成 参见教材 单片机的C51应用程序设计 第309页 新建文件时 建议首先保存空白文件 单击菜单上的 File 在下拉菜单中选中 SaveAs 选项 在弹出对话框的 文件名 栏右侧编辑框中 输入欲使用的文件名 然后单击 保存 按钮 保存时必须输入正确的扩展名 如果用C语言编写程序 文件的扩展名为 c 如果用汇编语言编写程序 文件的扩展名为 asm 在输入指令时可以看到事先保存待编辑文件的好处 Keil会自动识别关键字 并以不同的颜色提示用户加以注意 这样会使用户少犯错误 有利于提高编程效率 程序输入完毕后别忘了再次保存 参见教材 单片机的C51应用程序设计 第309页 1 打开一个已有的工程项目 导入一个新建的C语言文件 2 打开一个已有的工程项目 导入一个新建的汇编语言文件 我来演示 四 编译连接在住窗口中单击 Project 菜单 选中 Builttarget 选项进行编译连接 或者使用快捷键F7 或者单击工具栏的快捷图标 参见教材 单片机的C51应用程序设计 第312页 选择 Builttarget 选项 如果当前文件已修改 软件会先对该文件进行编译 然后再连接以产生目标代码 选择 RebuildAlltargetfiles 将会对当前工程中的所有文件重新进行编译然后再连接 确保最终生产的目标代码是最新的 选择 Translate 项则仅对该文件进行编译 不进行连接 以上操作可以通过工具栏按钮直接进行 从左到右分别是 编译 编译连接 全部重建 停止编译和对工程进行设置 编译过程中的信息将会在主窗口下部的输出窗口显示出来 如错误 警告等信息 assembling 表示此时正在编译源程序 linking 表示此时正在链接工程项目文件 如果有错误 系统会提示所有错误所在的位置和错误的原因 以方便用户查找与修改 并有 Targetnotcreated 的提示 在错误提示行上双击鼠标 即可定位到编辑窗口中的错误所在行 并错误指令左面出现蓝色箭头提示 可根据此提示找出错误并修改 修改后再次进行编译 反复进行 直至编译完全通过 即系统提示为出现 0Error s 参见教材 单片机的C51应用程序设计 第312页 Creatinghexfilefrom 说明已生成目标文件 0Error s 0Warning s 说明项目在编译过程中不存在错误和警告 编译链接成功 编译异常一般有两种提示 及警告 Warning 和错误 Error 警告一般不影响程序的执行 而错误是产生不了目标代码的 当然就不能被计算机正常执行了 1 打开一个已有的工程项目 编译连接 2 打开一个已有的工程项目 改动原来的程序 编译连接 3 在第2步的基础上 修改程序 编译连接直至通过 4 打开一个已有的工程项目 编译连接 生成HEX文件 我来演示 五 调试运行1 常用调试命令在KeiluVision集成开发环境下有两种方法执行调试命令 一种是选择主菜单debug下的子菜单 另一种是用主界面下工具栏中的调试工具 在对工程成功地进行编译 连接以后使用菜单Debug Start StopDebugSession可进入调试状态 或按Ctrl F5 或单击工具条上的按钮 参见教材 单片机的C51应用程序设计 第314页 进入调试状态后 界面与编缉状态相比有明显的变化 Debug菜单项中原来不能用的命令现在已可以使用了 工具栏会多出一个用于运行和调试的工具条 从左到右依次是复位 运行 暂停 单步 过程单步 执行完当前子程序 运行到当前行 下一状态 打开跟踪 观察跟踪 反汇编窗口 观察窗口 代码作用范围分析 1 串行窗口 内存窗口 性能分析 工具按钮等命令 1 复位CPU单击工具栏的 ResetCPU 命令按钮可以复位CPU 在不改变程序的情况下 若想使程序重新开始运行 执行此命令即可 执行此命令后程序指针返回到0000H地址单元 另外 一些内部特殊功能寄存器在复位期间也将重新赋值 例如 A将变为00H DPTR变为0000H SP变为07H I O口变为0FFH 2 全速运行 F5 用 Debug 工具栏的 Go 或快捷命令 Run 命令按钮 即可实现全速运行程序 当然若程序中已经设置断点 程序将执行到断点处 并等待调试指令 Vision2处于全速运行期间 Vision2不允许对任何资源的查看 也不接受其他命令 3 单步跟踪 F11 用 Debug 工具栏的 Step 或快捷命令 Stepinto 命令按钮 可以单步跟踪程序 每执行一次此命令 程序将运行一条指令 以指令为基本执行单元 当前的指令用黄色箭头标出 每执行一步箭头都会移动 已执行过的语言呈绿色 在汇编语言调试下 可以跟踪到每一个汇编指令的执行 4 单步运行 F10 用 Debug 工具栏的 StepOver 或快捷命令 StepOver 按钮 可以以过程单步形式执行命令 所谓过程单步 是指将汇编语言中的子程序或高级语言中的函数作为一个语句来全速执行 它以语句 该语句不管是单一命令行还是函数调用 为基本执行单元 5 执行返回 Ctrl F11 在用单步跟踪命令跟踪到子函数或子程序内部时 使用 Debug 菜单栏中的 StepOutofCurrentFunction 或快捷命令按钮 StepOut 即可将程序的PC指针返回到调用此子程序或函数的下一条语句 2 断点设置在某一程序行设置断点 设置好断点后可以全速运行程序 一旦执行到该程序行即停止 可在此观察有关变量值 以确定问题所在 在程序行设置 移除断点的方法是将光标定位于需要设置断点的程序行 使用菜单 Debug Insert RemoveBreakPoint 设置或移除断点 可以用鼠标在该行双击实现设置或移除断点 参见教材 单片机的C51应用程序设计 第315页 Debug Enable DisableBreakpoint 是开启或暂停光标所在行的断点功能 Debug DisableAllBreakpoint 暂停所有断点 Debug KillAllBreakPoint 清除所有的断点设置 按 Debug Breakpoints 即出现一个对话框 该对话框用于对断点进行详细的设置 Expression后的编缉框内用于输入表达式 该表达式用于确定程序停止运行的条件 1 打开一个已有的工程项目 编译连接 全速调试运行 软件仿真 2 打开一个已有的工程项目 编译连接 单步调试运行 软件仿真 3 打开一个已有的工程项目 设置断点 删除断点 我来演示 3 在线汇编在进入Keil的调试环境以后 如果发现程序有错 可以直接对源程序进行修改 但是要使修改后的代码起作用 必须先退出调试环境 重新进行编译 连接后再次进入调试 如果只是需要对某些程序行进行测试 或仅需对源程序进行临时的修改 可采用在线汇编 将光标定位于需要修改的程序行上 用菜单Debug InlineAssambly 在EnterNew后面的编缉框内直接输入需更改的程序语句 输入完后键入回车将自动指向下一条语句 可以继续修改 如果不再需要修改 可以点击右上角的关闭按钮关闭窗口 4 调试观察窗口Keil软件在调试程序时提供了多个窗口 主要包括输出窗口 OutputWindows 观察窗口 Watch CallStatckWindows 存储器窗口 MemoryWindow 反汇编窗口 DissamblyWindow 和串行窗口 SerialWindow 等 进入调试模式后 可以通过菜单View下的相应命令打开或关闭这些窗口 各窗口的大小可以使用鼠标调整 程序调试过程中可借助于各种窗口观察程序运行的状态 便于分析程序运行的正确性 1 输出窗口 OutputWindows 进入调试程序后 输出窗口自动切换到Command页 该页用于输入调试命令和输出调试信息 在调试状态下 选择主菜单View下的OutputWindow选项 可打开或关闭输出窗口 2 寄存器观察窗口 ProjectWindow 在调试状态下 选择主菜单View下的ProjectWindow选项 可打开或关闭工程项目窗口 工程项目窗口中的寄存器页 Regs 给出了当前的工作寄存器组 r0 r7 和系统寄存器的值 系统寄存器组有一些是实际存在的寄存器如a b sp dptr pc psw等特殊寄存器 有一些是实际中并不存在或虽然存在却不能对其操作的如PC Status等 每当程序中执行到对某寄存器的操作时 该寄存器会以反色 蓝底白字 显示 用鼠标单击然后按下F2键 即可修改该值 在执行程序的过程中可以看到 这些值会随着程序的执行发生相应的变化 3 存储器观察窗口 MemoryWindow 在调试状态下 选择主菜单View下的MemoryWindow选项 可打开或关闭存储器观察窗口 存储器观察窗口分4页 分别是Memory 1 Memory 4 每一页都可以显示程序存储器 内部数据存储器和外部数据存储器的值 参见教材 单片机的C51应用程序设计 第316页 通过在Address后的编缉框内输入 字母 数字 即可显示相应内存值 其中字母可以是C D I X S 例如 C 30C 0X500C 1000H 在存储器窗口的地址栏处输入C 0000H后回车 则可以观看所有单片机片内程序存储器从地址0开始的单元内容 即查看程序的二进制代码 下面用横线画出来的部分就是已经编辑的源程序转化成的机器语言的十六进制数 对应的机器码 如果在存储器窗口的地址栏处输入D 30H后回车 则可以观看单片机片内数据存储器30H单元开始的内容 如果在存储器窗口的地址栏处输入I 10后回车 显示10号单元开始的内部数据存储器的内容 该部分是间接寻址方式 如果在存储器窗口的地址栏处输入X 0 x1000后回车 显示从1000H单元开始的外部数据存储器的内容 这些窗口的显示值可以以各种形式显示 如十进制 十六进制 字符型等 改变显示方式的方法是点鼠标右键 在弹出的快捷菜单中选择 该菜单用分隔条分成三部份 其中第一部份与第二部份的三个选项为同一级别 选中第一部份的任一选项 内容将以整数形式显示 选中第二部份的Ascii项则将以字符型式显示 选中Float项将相邻四字节组成的浮点数形式显示 选中Double项则将相邻8字节组成双精度形式显示 第一部份又有多个选择项 其中Decimal项是一个开关 如果选中该项 则窗口中的值将以十进制的形式显示 否则按默认的十六进制方式显示 Unsigned和Signed则分别代表无符号形式和有符号形式 Unsigned和Signed后分别有三个选项 Char 以单字节方式显示 Int 将相邻双字节组成整型数方式显示 Long 将相邻四字节组成长整型方式显示 究竟从哪一个单元开始的相邻单元则与你的设置有关 以整型为例 如果你输入的是I 0 那么00H和01H单元的内容将会组成一个整型数 如果你输入的是I 1 01H和02H单元的内容全组成一个整型数 以此类推 第三部份的ModifyMemoryatX xx用于更改鼠标处的内存单元值 选中该项即出现一个对话框 可以在这个对话框内输入要修改的内容 4 变量观察窗口 Watch CallStatckWindows 如果需要观察其它的寄存器的值或者在高级语言编程时需要直接观察变量 就要借助于观察窗口 在调试状态下 选择主菜单View下的Watch CallStatckWindows选项 可打开或关闭变量观察窗口 变量观察窗口由4页组成 分别是Locals Watch 1 Watch 2和CallStack Locals页用于自动显示程序运行过程中的局部变量的值 这些局部变量只有在有效区域时才被显示 Watch 1 Watch 2页既可显示局部变量的值也可显示全局变量的值 使用时在name区按F2键 然后输入变量名 常年供需运行时就可在value区看到对应的变量值 CallStack页主要用于显示子程序调用过程中的相关信息 5 串口调试观察窗口 SerialWindow 在调试状态下 选择主菜单View下的SerialWindow 1 SerialWindow 2或SerialWindow 3选项 可打开或关闭串口调试观察窗口 该窗口提供一个串行的界面 串口的发送和接收都可在该界面上进行 例如 用printf和scanf的输出和输入就可以通过该界面完成 6 反汇编窗口 DissamblyWindow 点击View DissamblyWindow可以打开反汇编窗口 该窗口可以显示反汇编后的代码 源程序和相应反汇编代码的混合代码 可以在该窗口进行在线汇编 利用该窗口跟踪已找行的代码 在该窗口按汇编代码的方式单步执行 Keil提供了跟踪功能 在运行程序之前打开调试工具条上的允许跟踪代码开关 然后全速运行程序 当程序停止运行后 点击查看跟踪代码按钮 自动切换到反汇编窗口 其中前面标有 号的行就是中断以前执行的代码 可以按窗口边的上卷按钮向上翻查看代码执行记录 7 周期更新窗口 PeriodicWindowUpdata 点击View PeriodicWindowUpdata 确认该项处于被选中状态 即可在全速运行时动态地观察有关值的变化 选中该项 将会使程序模拟执行的速度变慢 5 外围接口观察窗口 1 并行口观察窗口选择主菜单Peripherals下的I O Port子菜单下的Port0 Port1等 并行口多少根据芯片型号而定 可以观察并行口的值和各位的状态 下图所示是P1口的值和状态 其中位状态中的 表示该位为1 空白表示该位为0 2 串行口观察窗口在调试状态下 选择主菜单Pe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络协议书的作用
- 活动合伙协议书
- 授权开发协议书
- 物业公司保密协议书
- 度小麦协议书
- 职工参保协议书
- 反核协议书内容
- 日本协定达成协议书
- 2025年度设备采购合同
- 2025技术员工劳动合同范本
- 2025河北水发节水有限公司公开招聘工作人员16人笔试参考题库附答案解析
- 新版中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840-1919)-2025年版
- 2025-2026学年人教版(2024)九年级物理全册第十四章 内能的利用(单元同步检测练习)(含答案)
- 第1课时 10的加、减法(教学设计)-2024-2025学年一年级上册数学人教版
- 2025至2030中国聚烯烃行业项目调研及市场前景预测评估报告
- 夜间红外成像算法优化-洞察及研究
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 新教科版小学1-6年级科学需做实验目录
- 三年级下册书法练习指导全册教案(湖南美术出版社)
- GB/T 17880.5-1999平头六角铆螺母
- WS/T 102-1998临床检验项目分类与代码
评论
0/150
提交评论