电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第4章 Keil C51应用程序设计

21页
  • 卖家[上传人]:E****
  • 文档编号:89503321
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:278KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Keil C51应用程序设计,Keil C51程序的一般结构,与标准C语言相同,Keil C51程序由一个或多个 函数构成,其中应至少包含一个main函数。一般结构如下: 预处理命令 /* 用于包含头文件等 */ 全局变量说明 /* 全局变量可被本程序的所有函数引用 */ 功能函数说明 /* 说明自定义函数,以便调用 */ main() /* 主函数 */ 局部变量说明;/* 局部变量只能在所定义函数内部引用 */ 执行语句; 函数调用; /* 其他函数定义 */,数据类型,Keil C51编译器除了支持常用的char(字符型), int(整型), long(长整型), float(浮点型),*(指针型)等基本数据类型之外,还支持以下扩充数据类型。 bit 位类型。可定义一个位变量,但不能定义位 指针, 也不能定义位数组。 sfr 特殊功能寄存器。可以定义8051单片机的所 有内部8位特殊功能寄存器。sfr型数据占用 一个内存单元, 其取值范围是0255。 sfr16 16位特殊功能寄存器。它占用两个内存单元, 取值范围是065535,可以定义8051单片机 内部16位特殊功能寄存器。

      2、 sbit 可寻址位。可以定义8051单片机内部RAM中的 可寻址位或特殊功能寄存器中的可寻址位。,Keil C51能够识别的数据类型,变量定义格式,Keil C51 中对变量进行定义的格式如下: 存储种类 数据类型 存储器类型 变量名表; 其中, “存储种类”和“存储器类型”是可选项。 变量的存储种类有四种: 自动(auto)、外部(extern)、静态(static)和寄存器(register)。定义变量时如果省略存储种类选项,则该变量将为自动(auto)变量。 Keil C51编译器还允许说明变量的存储器类型,使之能够在8051单片机内准确地定位。,Keil C51能够识别的存储器类型,编译模式,Keil C51定义变量时如果省略“存储器类型”选项, 则按编译时使用的存储器模式SMALL、COMPACT或LARGE来规定默认存储器类型,确定变量的存储器空间, 函数中不能采用寄存器传递的参数变量和过程变量也保存在默认的存储器空间。,Keil C51能够识别的编译器模式,一般指针与基于存储器的指针,Keil C51支持两种指针类型:一般指针和基于存储器的指针。一般指针可用于存取任何变

      3、量而不必考虑变量在8051单片机存储器空间的位置,许多C51库函数采用了一般指针。 定义一般指针与ANSI C相同,例如: char * sptr; /* char 型指针 */ int * numptr /* int 型指针 */ 定义基于存储器的指针时可以指定存储器空间 ,例如: char data * xdata str; /* 指向data空间char型数据的指针, 指针本身在xdata空间*/ int xdata * data num; /* 指向xdata空间char型数据的指针, 指针本身在data空间*/ long code * idata pow; /* 指向code空间long型数据的指针, 指针本身在idata空间*/,Keil C51对存储器的访问,Keil C51可以采用指针变量来访问存储器地址空间。由于8051单片机存储器结构自身的特点,仅用指针方式访问有时会感觉不太方便,也可以利用库函数中绝对地址访问头文件“ABDACC.H”来访问不同区域的存储器地址空间。,绝对地址访问,Keil C51在源程序中定义变量时,可以利用扩展关键字“_at_”来对指定变量在存

      4、储器空间的绝对地址,一般格式如下: 存储器类型 数据类型 标识符 _at_ 地址常数 其中,“存储器类型”为idata、data、xdata等C51编译器能够识别的所有类型,如果省略该选项,则按编译模式LARGE、COMPACT或SMALL规定的默认存储器类型确定变量的存储器空间;“数据类型”除了可用int、long、float等基本类型外,还可以采用数组、结构等复杂数据类型;标识符为要定义的变量名;地址常数规定了变量的绝对地址,它必须位于有效存储器空间。 也可以用头文件“ABSACC.H”中的预定义宏来指定变量的绝对地址。,头文件“ABSACC.H”中的预定义宏,中断服务函数与寄存器组定义,Keil C51编译器支持在C语言源程序中直接编写8051单片机的中断服务函数程序,一般形式为: 函数类型 函数名(形式参数表) interrupt n using n 关键字intrrupt后面的n是中断号, n的取值范围为031。编译器从8n+3处产生中断向量, 具体的中断号n和中断向量取决于8051系列单片机芯片型号。 关键字using用来选择8051单片机中不同的工作寄存器组。using后

      5、面的n是一个03的常整数, 分别选中4个不同的工作寄存器组。,常用中断号与中断向量,数据调用协议,Keil C51编译器规定数据在内存中按高字节地址在前、低字节地址在后的顺序存放。 一个值为0x12345678 的“long” 类型数据, 在内存中存储格式如下:,数据调用协议,“float”类型数据的长度为4个字节(32位),在内存中按IEEE-754标准单精度32位浮点数的格式存储。格式如下:,其中, S为符号位,“0”正“1”负。E为用原码表示的阶码,占用8位二进制数, 存放在两个字节中,E的取值范围是1254。注意, 实际上以2为底的指数要用E的值减去偏移量127,实际幂指数的取值范围为-126+127。M为尾数的小数部分,用23位二进制数表示, 存放在三个字节中。尾数的整数部分永远为1,因此不予保存, 但它是隐含存在的。小数点位于隐含的整数位“1”的后面。,数据调用协议,Keil C51编译器支持“基于存储器”的指针和“一般”指针。基于存储器类型data、 idata 和pdata的指针具有1个字节的长度, 基于存储器类型xdata和code的指针具有2个字节的长度,一般指针具

      6、有3个字节的长度。在一般指针的3个字节中, 第一个字节表示存储器类型, 第二、第三个字节表示指针的地址偏移量。一般指针在内存中的存储格式为:,第一个字节中存储器类型的编码如下:,Keil C51的库函数,本征库函数 本征库函数是指编译时直接将固定的代码插入到当前行,而不是用汇编语言中的“ACALL”和“LCALL”指令来实现调用,从而大大提高函数的访问效率。非本征库函数则必须由“ACALL”和“LCALL”指令来实现调用。Keil C51的本征库函数只有9个,数量虽少,但非常有用。本征库函数在头文件INTRINS.H中定义。 字符判断转换库函数 字符判断转换库函数的原型声明在头文件CTYPE.H中定义。,Keil C51的库函数,输入输出库函数 输入输出库函数的原型声明在头文件STDIO.H中定义,通过8051系列单片机的串行口工作, 如果希望支持其它I/O接口, 只需要改动_getkey()和putchar()函数, 库中所有其它I/O支持函数都依赖于这两个函数模块,在使用8051系列单片机的串行口之前,应先对其进行初始化。 例如以2400波特率(12MHz时钟频率)初始化串行口的语

      7、句如下: SCON=0x52; /* SCON 置初值 */ TMOD=0x20; /* TMOD 置初值 */ TH1=0xf3; /* T1 置初值 */ TR1=1; /* 启动 T1 */,Keil C51的库函数,字符串处理库函数 字符串处理库函数的原型声明包含在头文件STRING.H中,字符串函数通常接收指针串作为输入值。一个字符串应包括2个或多个字符, 字符串的结尾以空字符表示。在函数 memcmp、memcpy、memchr、memccpy、memset和memmove中,字符串的长度由调用者明确规定。 类型转换及内存分配库 类型转换及内存分配库函数的原型声明包含在头文件STDLIB.H中,利用该库函数可以完成数据类型转换以及存储器分配操作。,Keil C51的库函数,字符串处理库函数 字符串处理库函数的原型声明包含在头文件STRING.H中,字符串函数通常接收指针串作为输入值。一个字符串应包括2个或多个字符, 字符串的结尾以空字符表示。在函数 memcmp、memcpy、memchr、memccpy、memset和memmove中,字符串的长度由调用者明确规定。 类型转换及内存分配库 类型转换及内存分配库函数的原型声明包含在头文件STDLIB.H中,利用该库函数可以完成数据类型转换以及存储器分配操作。 数学计算库函数 数学计算库函数的原型声明包含在头文件MATH.H中。,

      《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第4章 Keil C51应用程序设计》由会员E****分享,可在线阅读,更多相关《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第4章 Keil C51应用程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.