




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章单片机的C语言程序设计及仿真调试 本章节主要内容 2 1C51程序设计中的常用功能及应注意的问题 2 2KeilC和ANSIC 2 3STC15F2K60S2单片机C语言程序调试 2 4利用ISP工具将程序下载到单片机中验证程序 2 1C51程序设计中的常用功能及应注意的问题 2 1 1C51程序设计中的常用典型功能2 1 2C51程序编写中应注意的问题 2 1 1C51程序设计中的常用典型功能 C语言功能 1 逻辑运算和位运算逻辑运算符与运算符 表示两个条件同时满足时 即两个条件都为真时 返回结果才为真或运算符 用于检查两个条件中是否有一个为真的运算符 只要有一个条件为真 运算结果就为真逻辑非运算符 表示对表达式的真值取反关系运算符和逻辑运算符的优先级一般都低于算术运算符 C51程序设计中的常用典型功能 C语言功能 1 逻辑运算和位运算位运算符按位 与 运算 双目运算符 其功能是参与运算的两数各对应的二进位相与 只有对应的两个二进位均为1时 结果位才为1 否则为0按位 或 运算 双目运算符 其功能是参与运算的两数各对应的二进位相或 只要对应的两个二进位有一个为1时 结果位就为1按位 异或 运算 双目运算符 其功能是参与运算的两数各对应的二进位相异或 当两个对应的二进位相异时 结果为1求反运算 单目运算符 具有右结合性 其功能是对参与运算的数的各二进位按位求反左移运算 双目运算符 其功能是把 左边的运算数的各二进位全部右移若干位 右边的数指定移动的位数对于有符号数 在右移时 符号位将随同移动 当为正数时 最高位补0 而为负数时 符号位为1 最高位是补0或是补1取决于编译系统的规定 C51程序设计中的常用典型功能 C语言功能 2 预处理 以 号开头的命令是预处理命令宏定义 define 在 语言源程序中允许用一个标识符来表示一个字符串 称为宏 被定义为宏的标识符称为宏名 在编译预处理时 对程序中所有出现的宏名 都用宏定义中的字符串去代换 这称为宏代换或宏展开 宏代换是由预处理程序自动完成的 无参宏定义 define标识符字符串 标识符为所定义的宏名 字符串可以是常数 表达式 格式串等带参宏定义 define宏名 形参表 字符串 例如 defineMAX a b a b a b 取a和b的最大数 C51程序设计中的常用典型功能 C语言功能 2 预处理文件包含 include include 文件名 包含命令中的文件名可以用双引号括起来 也可以用尖括号括起来 例如 include stdio h include二者的区别 使用尖括号表示在包含文件目录中去查找 包含目录由用户在开发环境中设置 而不在源文件目录去查找 使用双引号则表示首先在当前的源文件目录中查找 若未找到才到包含目录中去查找 C51程序设计中的常用典型功能 C语言功能 2 预处理条件编译 条件编译就是按不同的条件去编译不同的程序部分 从而产生不同的目标代码文件 条件编译对于程序的移植和调试 可以分段调试 非常有用 特别是在操作系统的裁减中 经常使用条件编译 ifdef标识符程序段1 else程序段2 endif 它的功能是 如果标识符已被 define命令定义过 则对程序段1进行编译 否则对程序段2进行编译 如果没有程序段2 它为空 本格式中的 else可以没有 C51程序设计中的常用典型功能 C语言功能 2 预处理条件编译 ifndef标识符程序段1 else程序段2 endif if常量表达式程序段1 else程序段2 endif 与第一种形式的区别是将ifdef改为ifndef 它的功能是 如果标识符未被 define命令定义过则对程序段1进行编译 否则对程序段2进行编译 这与第一种形式的功能正相反 它的功能是 如果常量表达式的值为真 非0 则对程序段1进行编译 否则对程序段2进行编译 因此可以使程序在不同条件下 完成不同的功能 2 1C51程序设计中的常用功能及应注意的问题 2 1 1C51程序设计中的常用典型功能2 1 2C51程序编写中应注意的问题 2 1 2C51程序编写中应注意的问题 基本要求程序结构清析 简单易懂目标明确 直接了当 代码精简 避免垃圾程序尽量使用标准库函数和公共函数对于拿不准的运算顺序 应该根据实际编程需要使用括号来避免运算顺序的二义性注意程序的书写格式在各个层次的程序模块中 利用缩进 使用键盘的Tab键 来显示程序的逻辑结构对于自增1和自减1运算符 当它们出在较复杂的表达式或语句中时 常常难于弄清 因此应仔细分析 由于它们在变量前后的含义不同 例如i 和 i的含义就不同 只使用自增1和自减1运算符在变量后面的情况 否则分析时容易搞混在适当的地方做注释每个函数 都有函数头说明主要变量 结构 联合 类或对象 定义或引用时 注释能反映其含义常量定义 DEFINE 有相应说明处理过程的每个阶段都有相关注释说明在典型算法前都有注释 C51程序编写中应注意的问题 注意变量的命名规范在循环结构的程序设计中 可以使用单字母变量作为循环变量 除此以外 尽可能避免单字母变量名 尽量采用有意义的英文单词或者拼音 或它们的缩写 做变量名所有变量在使用前必须被初始化 否则可能会产生意想不到的结果给函数命名时 也应该使用具有一定意义的名字注意变量的作用域不要随意定义全局变量 尽量使用局部变量函数之间传递数据时 尽量使用参数传递 这不仅可以使得函数能够用在多种情况下 而且还能提高函数代码的可读性对于结构化的程序设计方面 有如下的要求 禁止出现两条等价的支路禁止goto语句使用判断分支语句时 判断两个量是否相等 要使用测试相等运算符 尽量用case实现多路分支 避免不必要的分支C语言是一种结构化的编程语言 结构化编程语言的一个基本特点就是不允许流程出现交叉尽量不使用条件赋值语句 2 2KeilC和ANSIC 2 2 1KeilC51扩展关键字2 2 2扩展I O口的使用2 2 3KeilC51函数2 2 4STC15F2K60S2单片机C51程序框架 2 2 1KeilC51扩展关键字 内存区域 MemoryAreas 程序存储器code 程序存储区 可以使用code定义表格常数内部RAMdata 直接寻址区 内部RAM的低128字节 地址范围为00H 7FHidata 间接寻址区 包括整个内部RAM区256字节 地址范围为00H 0FFHbdata 可位寻址区 地址范围为20H 2FH外部数据存储器xdata 可指定多达64KB的外部直接寻址区 地址范围0000H 0FFFFHpdata 能访问1页 256Bytes 的外部RAM 很少用 变量或参数的存储类型可由存储模式指定缺省类型 也可由关键字code data idata xdata pdata直接声明指定 例如 databuffer charcodearray hello unsignedcharxdataarr 10 4 4 KeilC51扩展关键字 at 关键字 若要实现变量的绝对定位 称为绝对变量 可以直接在数据定义后加上 at 常数地址 即可 注意 绝对变量不能被初始化 bit型函数及变量不能用 at 指定 例如 unsignedcharidataADCdata at 0 x40 指定ADCdata变量在40H处unsignedcharxdatabuffer 20 at 0 x0010 指定buffer数组从XRAM的0010H单元开始 KeilC51扩展关键字 存储模式 有Small Compact和Large三种模式 存储模式可在KeilC51编译器选项中选择 如下图所示 指定存储模式 Small模式 在该模式中所有变量都默认位于单片机内部数据存储器 此模式访问变量的效率很高 缺点是空间有限 只适用于小程序 Compact模式 所有缺省变量均位于外部RAM区的一页内 256字节 这和使用pdata指定存储器类型一样 该模式空间比Small宽裕 速度比Small慢 比large快 是一种中间状态 Large模式 所有缺省变量可放在多达64KB的外部RAM区 这和使用xdata指定存储器类型一样 使用数据指针DPTR进行寻址 通过数据指针访问外部数据存储器的效率较低 特别是当变量为2个字节或更多字节时 该模式的数据访问比Small和Compact产生更多的代码 优点是空间大 可存变量多 缺点是速度较慢 KeilC51扩展关键字 变量或数据类型 2 2KeilC和ANSIC 2 2 1KeilC51扩展关键字2 2 2扩展I O口的使用2 2 3KeilC51函数2 2 4STC15F2K60S2单片机C51程序框架 2 2 2扩展I O口的使用 由于使用C语言访问外部I O时用到指针的功能 因此 首先介绍KeilC51的指针 1 KeilC51指针KeilC51支持一般指针 GenericPointer 和存储器指针 MemorySpecificPointer 一般指针的声明和使用均与标准C相同 同时还可以说明指针的存储类型 例如 下面的语句都声明pt为指向保存在外部RAM中unsignedchar数据的指针 但pt本身的保存位置却不同 unsignedcharxdata pt pt本身依存储模式存放unsignedcharxdata datapt pt被保存在内部RAM中unsignedcharxdata xdatapt pt被保存在外部RAM中 一般指针本身用3个字节存放 分别为存储器类型 高位偏移 低位偏移量 基于存储器的指针 说明时即指定了存储类型 这种指针存放时 只需一个字节或2个字节就够了 因为只需存放偏移量 例如 chardata str str指向data区中char型数据intxdata pow pow指向外部RAM的int型整数 关于堆栈指针SP的设定一般情况下 用户不需要在C语言程序中修改堆栈指针SP 但要关心一下SP的位置 C51是在startup A51中设置SP指针的 用CODE选项生成的汇编代码中是找不到这段代码的 startup A51是C51的初始化代码 单片机复位后先执行这段代码 完成初始化后由它调用main 函数 特殊需要时 可以修改这段代码 然后连接到用户的程序中去 扩展I O口的使用 2 外部扩展I O口的访问方法1 使用自定义指针 由于片外I O端口与片外存储器统一编址 所以可以定义xdata类型的指针访问外部I O端口 例如 某单片机应用系统中 使用8255扩展I O端口 采用线选法对8255进行地址译码 单片机的P2 7 A15 接8255的片选引脚 则8255的命令字地址为7FF3H PA口地址为7FF0H PB口地址为7FF1H PC口地址为7FF2H 访问8255的C程序如下 写端口程序 charxdata com8255 定义指向外部存储区的指针com8255 0 x7FF3 使指针指向8255的控制口口地址7FF3H com8255 0 x81 输出81H到端口读端口程序 charxdata com8255 定义指针com8255 0 x7FF0 使指针指向8255的PA口口地址7FF0Hchari i com8255 读PA端口到变量i 扩展I O口的使用 2 外部扩展I O口的访问方法2 使用C51预定义指针 为了方便地访问外部存储器及I O端口 在C51中的absacc h头文件做了如下定义 利用这些定义可以方便地访问外部I O端口 defineCBYTE unsignedcharvolatilecode 0 defineDBYTE unsignedcharvolatiledata 0 definePBYTE unsignedcharvolatilepdata 0 defineXBYTE unsignedcharvolatilexdata 0 例如 include definePORTAXBYTE 0 x7FF0 其中 PORTA为程序定义的I O端口名称 内的内容7FF0H为PORTA的地址voidmain void chara PORTA 0 x81 输出81H到端口7ff0Ha PORTA 读端口7ff0H到变量a 2 2KeilC和ANSIC 2 2 1KeilC51扩展关键字2 2 2扩展I O口的使用2 2 3KeilC51函数2 2 4STC15F2K60S2单片机C51程序框架 2 2 3KeilC51函数 C51的程序结构 C51的程序也是从main 函数 主函数 开始执行的 主函数是程序的入口 主程序中的main 主函数可以根据不同需求来调用不同的函数 被调用的函数可以是编译器提供的库函数 也可以是用户自己编制设计的函数 当函数执行完毕的时候 就会发出返回指令 主程序中语句执行完毕 整个程序也完毕 但在一般的设计中 主程序都是一直循环 不断的重复执行 因此 一般在主程序中使用while 1 语句构成无限循环 在构成C51语言程序的若干函数中 有并且只能有一个主函数 在C51中定义主函数时 要求主函数没有参数 并且没有返回值 除此之外 C51的函数声明对ANSIC作了扩展 KeilC51函数 C51的函数声明对ANSIC的扩展中断函数声明中断函数通过使用interrupt关键字和中断号来声明 中断号告诉编译器中断服务程序的入口地址 STC15F2K60S2单片机的中断号及中断服务程序入口地址如下表所示 例如 串行口1的中断函数可以声明如下 voidUART1 ISR void interrupt4 using1 中断服务程序的代码 KeilC51函数 C51的函数声明对ANSIC的扩展指定工作寄存器区当需要指定函数中使用的工作寄存器区时 使用关键字using后跟一个0到3的数 对应着工作寄存器0到3区 例如 在下面的函数中使用了工作寄存器1区 相当于PSW 4 0 PSW 3 1 unsignedcharGetKey void using1 用户程序代码 KeilC51函数 C51的函数声明对ANSIC的扩展指定存储模式用户可以使用small compact及large说明存储模式 例如 voidfun1 void small 提示 small说明的函数内部变量全部使用内部RAM 关键的 经常性的 耗时的地方可以这样声明 以提高运行速度 KeilC51函数 C51的函数声明对ANSIC的扩展函数的参数传递规则最多只能有3个参数通过寄存器传递 规律如下表所示 KeilC51函数 C51的函数声明对ANSIC的扩展函数返回值的规定函数返回值一律放于寄存器中 规则如下表所示 KeilC51函数 C51的库函数C51的本征库函数只有9个 数目虽少 但都非常有用 列如下 crol cror 将char型变量循环向左 右 移动指定位数后返回 iror irol 将int型变量循环向左 右 移动指定位数后返回 lrol lror 将long型变量循环向左 右 移动指定位数后返回 nop 相当于插入NOP testbit 相当于JBCbitvar测试该位变量并跳转同时清除 chkfloat 测试并返回源点数状态 使用时 必须包含 inclucle intrins h 一行 KeilC51函数 C51的库函数例如 chara b a 0 xA5 b crol a 3 执行完后 b变为0 x2D再如 bittest flag if testbit test flag printf Bitwasset n elseprintf Bitwasclear n KeilC51函数 几类重要库函数1 专用寄存器include文件2 绝对地址include文件absacc h该文件中实际只定义了几个宏 以确定各存储空间的绝对地址 在程序中 用 include absacc h 即可使用其中定义的宏来访问绝对地址 包括 CBYTE XBYTE PWORD DBYTE CWORD XWORD PBYTE DWORD例如 rval CBYTE 0 x0002 指向程序存贮器的0002h地址rval XWORD 0 x0002 指向外RAM的0004h地址 WORD是一个字 两个字节 故为0004h defineCOM8255XBYTE 0X060FF KeilC51函数 几类重要库函数3 动态内存分配函数 位于stdlib h中4 缓冲区处理函数位于 string h 中其中包括拷贝比较移动等函数如 memccpymemchrmemcmpmemcpymemmovememset这样很方便地对缓冲区进行处理 5 输入输出流函数 位于 stdio h 中流函数通过8051的串口或用户定义的I O口读写数据 缺省为串口 2 2KeilC和ANSIC 2 2 1KeilC51扩展关键字2 2 2扩展I O口的使用2 2 3KeilC51函数2 2 4STC15F2K60S2单片机C51程序框架 2 2 4STC15F2K60S2单片机C51程序框架 为了便于学习 下面给出一个通用的STC15F2K60S2单片机的C51程序框架 读者可以在适当的地方根据设计任务需要填入代码 便可构成较完整的C语言程序 STC15F2K60S2单片机C51程序框架 例2 1 编程实现通过延时函数 由P1 0输出方波信号 并通过示波器观察程序输出波形的周期 2 3STC15F2K60S2单片机C语言程序调试 2 3 1使用Keil集成环境软件模拟调试C51程序2 3 2使用Keil集成环境在线调试C51程序 2 3 1使用Keil集成环境软件模拟调试C51程序 1 Keil的安装与启动Keil是一个标准Windows应用程序 安装过程与一般Windows应用程序的安装过程类似 安装的最后一个窗口如下图所示 去掉所有选项的 单击 Finish 按钮便可完成安装 使用Keil集成环境软件模拟调试C51程序 1 Keil的安装与启动从 程序 组中选择 KeiluVision4 程序项或者直接双击桌面上的KeiluVision4程序图标 就可以启动Keil 此时 还没有安装授权 使用的是评估版 与正式版唯一的区别是编译代码有2KB字节的限制 每次进入调试前会出现如下图所示的提示对话框 安装授权的方法是 在 File 菜单中选择 LicenseManagement 菜单项 弹出 LicenseManagement 对话框 如下图所示 可以根据右上方的ComputerID号 向软件经销商索取 NewLicenseIDCode 并填入该单行编辑框中 然后 单击单行编辑框右边的 AddLIC 按钮 即可完成授权的安装 单击 Close 按钮关闭 LicenseManagement 对话框 使用Keil集成环境软件模拟调试C51程序 2 新建一个项目文件并从器件库中选择一个器件要新建一个项目文件 可以从Keil的 Project 菜单中选择 NewProject 菜单项 将打开 CreateNewProject 对话框 如下图所示 假如需要修改启动文件来迎合目标硬件 应该把文件STARTUP A51复制一份到项目文件夹中 如果只是调试比较简单的8051单片机程序 可以选择 否 使用Keil集成环境软件模拟调试C51程序 3 新建一个源文件并把它加入到项目中新建一个源文件从 File 菜单中选择 New 菜单项新建一个源文件 或者单击工具栏中的 Newfile 按钮 将打开一个空的编辑窗口 以便用户输入程序源代码 为了能够高亮显示C语言语法字符 可以首先保存文件 从 File 菜单中选择 SaveAs 菜单项 将文件保存为想要的名字 如ex2 1 c 如下图所示 在编辑窗口中输入例2 1中的程序代码 并保存 使用Keil集成环境软件模拟调试C51程序 3 新建一个源文件并把它加入到项目中将源文件加入到项目中在 ProjectWorkspace 窗口 也称为工程管理器 中 单击 Target1 前面的 展开下一层的 SourceGroup1 文件夹 在 SourceGroup1 文件夹上单击右键 弹出右键快捷菜单 如图所示 加入文件到源程序组 从文件列表框中选择要加入的文件并双击即可添加到工程中 单击Add 添加文件后 对话框不会自动关闭 而是继续等待用户添加其他文件 初学者往往以为没有添加成功 其实此时已经添加完毕 单击对话框中的 Close 按钮关闭对话框 给工程添加文件成功后 工程管理器的 SourceGroup1 文件夹的前面会出现一个 号 单击 可以看到ex2 1 c文件已经包含在源程序组中 双击它即可打开进行修改 使用Keil集成环境软件模拟调试C51程序 4 针对目标硬件设置工具选项 可以通过工具条图标 菜单或在 ProjectWorkspace 窗口的 Target1 上单击右键打开 OptionsforTarget 对话框选中 OptionsforTarget 对话框的 Output 标签页 选中 CreateHEXFile 选中此处 选中 CreateHEXFile 选项时 每次编译成功后 都会生成 重新生成 能够下载到单片机的后缀名为hex的文件 使用Keil集成环境软件模拟调试C51程序 5 编译项目并生成可以编程到程序存储器的HEX文件单击工具条上的 Build 目标或 Rebuild 目标的图标 可以编译所有的源文件并生成应用 当程序中有语法错误或警告时 Keil将在界面下部的 BuildOutput 窗口中显示错误或者告警信息 双击一行信息将打开此信息对应的文件 并定位到语法错误或警告处 如左下图所示 根据信息提示 修改程序 直到不再出现警告或错误信息为止 如下图所示 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试 选中 OptionsforTarget 对话框的 Debug 标签 选择软件模拟调试功能 从 Debug 菜单中选择 Start Stopdebugsession 菜单项 快捷键是Ctrl F5 或者从工具条中单句 Start Stopdebugsession 按钮 开始模拟调试过程 在该对话框中选择 UseSimulator 单选框以进行软件模拟调试 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试 菜单栏菜单栏和一般Windows应用程序的菜单栏作用相同 可以从菜单栏中选择菜单项 以执行相应的命令 调试控制工具栏在调试控制工具栏中包括调试有关的命令按钮 例如复位 运行 Go F5 停止 单步执行 Step F11 单步执行跳过 SetpOver F10 等 视图切换工具栏在该工具栏中 包含命令视图的显示 不显示切换控制按钮和观察视图中各个子视图的显示 不显示切换控制按钮 使用Keil集成环境软件模拟调试C51程序 寄存器视图在寄存器视图中 显示关键寄存器在调试过程中的变化情况反汇编视图在该视图中 显示了与C语言程序对应的汇编语言程序 除非特别需要 在调试过程中 一般用不到 因此 一般也就不让其显示C语言源程序视图在该视图中 显示用户编写的C语言源程序 在该视图中 可以设置程序的断点 可以单步调试等命令视图在该视图中 显示了在调试过程中所用到的命令观察视图在该视图中 显示在调试过程中可能用到的子视图 例如 调用关系 CallStack 局部变量 Locals Watch视图 Watch1 存储器子视图 Memory1 符号子视图 Symbols 用户可以根据需要选择是否显示相应的视图 6 进行仿真调试 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试 在调试过程中 可以进行如下操作 连续执行 单步执行 单步跳过执行程序 Debug 菜单中的 Go F5 Step F11 SetpOver F10 分别可以进行程序的连续执行 单步执行和单步跳过执行 其中 每选择执行一次单步执行程序的命令 都会执行一行程序 当执行到某个函数或者子程序时 会跳入到函数或者子程序中运行程序 单步跳过执行程序的含义是 当单步运行程序到某个子程序的调用时 如果想跳过该子程序 继续运行下面的程序 可以使用该功能 在这种情况下 所跳过的子程序仍然执行 但 不是单步执行 运行到光标所在行单击工具条上的 RuntoCursorline 图标 或者从 Debug 菜单中选择 RuntoCursorline Ctrl F10 菜单项 则可以使得程序运行到当前光标所在的行 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试设置断点在要设置断点的行上单击鼠标右键 弹出如右图所示的菜单 在此菜单中 选择 Insert RemoveBreakpoint 菜单项 则可以在当前行插入或删除断点 只要在当前行设置了断点 则在当前行的前面会出现一个红色的小方块 也可以在相应代码行的行号上双击鼠标 进行断点的设置和删除 连续运行程序后 执行到该行时 程序会暂停运行 此时 用户可以查看程序运行的一些中间状态和结果 插入 删除断点菜单项 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试观察视图的使用在程序调试过程中 应充分利用观察视图对程序运行过程中的变量和状态进行观察 这样可以大大提高程序调试的速度和准确度 例如 如要在运行过程中 查看P10变量 对应P1 0 的状态 可以在观察视图中 单击 Watch1 标签页 根据提示 在 double clickorF2toadd 行上双击 然后输入P10并键入回车 则P10变量就出现在Watch标签视图中 如下图所示 使用Keil集成环境软件模拟调试C51程序 6 进行仿真调试查看外围 从 Peripherals 菜单中选择不同的菜单项 可以查看单片机某些资源的状态 包括 Interrupt 打开中断向量表窗口 在窗口里显示了所有的中断向量 对选定的中断向量可以用窗口下面的复选框进行设置 I O Ports 打开输入输出端口 P0 P3 的观察窗口 在窗口里显示了程序运行时的端口的状态 可以随时修改端口的状态 从而可以模拟外部的输入 Serial 打开串行口的状态和设置对话框 Timer 打开定时器的状态和设置对话框 2 3STC15F2K60S2单片机C语言程序调试 2 3 1使用Keil集成环境软件模拟调试C51程序2 3 2使用Keil集成环境在线调试C51程序 2 3 2使用Keil集成环境在线调试C51程序 1 硬件设置监控CPU负责和Keil C51集成开发调试环境通信并控制仿真目标CPU芯片执行仿真功能仿真CPU目标芯片必须是宏晶的IAP15F2K62S2或IAP15L2K62S2芯片推荐由监控CPU板提供仿真目标CPU电源 用户系统电源 如电流大则由用户系统自己给自己提供电源 VCC不连接在一起 GND要相连 每次重新下载程序调试时 用户系统必须手工停电 上电 计算机 仿真器和学习板连接示意图 使用IAP15F2K62S2仿真器可以仿真宏晶STC15系列的单片机 使用过程如下 使用Keil集成环境在线调试C51程序 2 软件设置 按照上一小节中介绍的方法创建一个工程ex2 2 然后输入上述程序 保存为ex2 2 c并加入到项目中 使用Keil集成环境在线调试C51程序 3 仿真代码占用的资源程序空间 6K字节 0 xE000 0 xF7FF 用户在程序中不要使用 常规RAM 0字节XRAM 768字节 0 x0400 0 x06FF 用户在程序中不要使用 I O P3 0 P3 1用户在程序中不得操作P3 0 P3 1 不要使用INT4 T2CLKO P3 0 不要使用T2 P3 1 不要使用外部中断INT4 不要使用T2的时钟输出功能 不要使用T2的外部计数功能 使用Keil集成环境在线调试C51程序 4 Keil环境设置设置晶振频率使用Project OptionsforTarget Target 命令打开选项设置窗口 如下图所示 在此编辑框中输入晶振频率 使用Keil集成环境在线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭装修施工投诉3篇
- 员工外出安全免责协议书3篇
- 奶茶店股份合同协议书3篇
- 工业控制计算机在工业互联网平台中的关键作用考核试卷
- 租赁设备市场融资渠道拓展考核试卷
- 河湖治理工程概预算与招投标考核试卷
- 玻璃工艺品的防伪技术考核试卷
- 《资治通鉴》中的帝王智慧与现代管理启示
- 2025电子版本软件购买协议合同书
- 委托担保合同的性质
- 华大新高考联盟2025届高三4月教学质量测评化学+答案
- 2025年中国防晒护理洗发露市场调查研究报告
- 2025年陕西省普通高中学业水平合格考试模拟卷(五)历史试题(含答案)
- 2025年有关“我为群众办实事”主题日活动工作方案
- 铁路雨季三防培训课件
- (精选word)洪恩识字-生字卡片1-200
- CNC作业指导书及操作规范
- EHS安全培训教育周知卡(机械伤害)
- 贵州生态停车场建设工程监理规划
- 大班音乐欣赏粤曲《荔枝颂》微课件
- 《肌内注射说课》ppt课件
评论
0/150
提交评论