ImageVerifierCode 换一换
格式:PPT , 页数:21 ,大小:278KB ,
文档编号:2921419      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2921419.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(KeilC51应用程序设计课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

KeilC51应用程序设计课件.ppt

1、KeilKeil C51 C51应用程序设计应用程序设计KeilKeil C51 C51程序的一般结构程序的一般结构 与标准C语言相同,Keil C51程序由一个或多个 函数构成,其中应至少包含一个main函数。一般结构如下: 预处理命令 /* 用于包含头文件等 */全局变量说明 /* 全局变量可被本程序的所有函数引用 */功能函数说明 /* 说明自定义函数,以便调用 */ main() /* 主函数 */ 局部变量说明;/* 局部变量只能在所定义函数内部引用 */ 执行语句; 函数调用;/* 其他函数定义 */ 数数据类型据类型 Keil C51编译器除了支持常用的char(字符型), in

2、t(整型), long(长整型), float(浮点型),*(指针型)等基本数据类型之外,还支持以下扩充数据类型。bit bit 位类型位类型。可定义一个位变量,但不能定义位 指针, 也不能定义位数组。sfrsfr 特殊功能寄存器。特殊功能寄存器。可以定义8051单片机的所有内部8位特殊功能寄存器。sfr型数据占用一个内存单元, 其取值范围是0255。sfr16 16sfr16 16位特殊功能寄存器。位特殊功能寄存器。它占用两个内存单元, 取值范围是065535,可以定义8051单片机内部16位特殊功能寄存器。sbitsbit 可寻址位。可寻址位。可以定义8051单片机内部RAM中的可寻址位或

3、特殊功能寄存器中的可寻址位。 KeilKeil C51 C51能够识别的数据类型能够识别的数据类型 数据类型长 度值 域 unsigned char单字节0255signed char单字节-128127unsigned int双字节065536signed int 双字节-3276832767unsigned long四字节04294967295signed long四字节 -21474836482147483647float四字节1.175494E-383.402823E38*13字节对象的地址bit位 0 或 1sfr单字节0255sfr16双字节 065536sbit位0 或 1变量定

4、义格式变量定义格式Keil C51 中对变量进行定义的格式如下: 存储种类存储种类 数据类型数据类型 存储器类型存储器类型 变量名表;变量名表;其中, “存储种类”和“存储器类型”是可选项。 变量的存储种类有四种: 自动(auto)、外部(extern)、静态(static)和寄存器(register)。定义变量时如果省略存储种类选项,则该变量将为自动(auto)变量。 Keil C51编译器还允许说明变量的存储器类型,使之能够在8051单片机内准确地定位。KeilKeil C51 C51能够识别的存储器类型能够识别的存储器类型 存储器类型说 明DATA直接寻址的片内数据存储器(128字节),

5、 访问速度最快。BDATA可位寻址的片内数据存储器(16字节), 允许位与字节混合访问。IDATA间接访问的片内数据存储器(256字节), 允许访问全部片内地址。PDATA分页寻址的片外数据存储器(256字节), 用MOVX Ri指令访问。XDATA片外数据存储器(64K字节), 用MOVX DPTR指令访问。CODE程序存储器(64K字节), 用MOVC A+DPTR指令访问。编译模式编译模式 Keil C51定义变量时如果省略“存储器类型”选项, 则按编译时使用的存储器模式SMALLSMALL、COMPACTCOMPACT或LARGELARGE来规定默认存储器类型,确定变量的存储器空间,

6、函数中不能采用寄存器传递的参数变量和过程变量也保存在默认的存储器空间。 KeilKeil C51 C51能够识别的编译器模式能够识别的编译器模式 编译模式存储器类型SMALLDATA,变量被定义在8051片内数据存储器中。COMPACT PDATA,变量被定义在分页寻址的片外数据存储器中, 每一页片外数据存储器的长度为256字节。这时对变量的访问是通过寄存器间接寻址(MOVX Ri)进行 。LARGEXDATA,变量被定义在片外数据存储器中(最大可达64K字节), 使用数据指针DPTR来间接访问变量(MOVX DPTR)。 一般指针与基于存储器的指针一般指针与基于存储器的指针 Keil C51

7、支持两种指针类型:一般指针和基于存储器的指针。一般指针可用于存取任何变量而不必考虑变量在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

8、code * idata pow; /* 指向code空间long型数据的指针, 指针本身在idata空间*/ KeilKeil C51 C51对存储器的访问对存储器的访问Keil C51可以采用指针变量来访问存储器地址空间。由于8051单片机存储器结构自身的特点,仅用指针方式访问有时会感觉不太方便,也可以利用库函数中绝对地址访问头文件“ABDACC.H”来访问不同区域的存储器地址空间。绝对地址访问绝对地址访问 Keil C51在源程序中定义变量时,可以利用扩展关键字“_at_”来对指定变量在存储器空间的绝对地址,一般格式如下: 存储器类型存储器类型 数据类型数据类型 标识符标识符 _at_

9、地址常数地址常数 其中,“存储器类型”为idata、data、xdata等C51编译器能够识别的所有类型,如果省略该选项,则按编译模式LARGE、COMPACT或SMALL规定的默认存储器类型确定变量的存储器空间;“数据类型”除了可用int、long、float等基本类型外,还可以采用数组、结构等复杂数据类型;标识符为要定义的变量名;地址常数规定了变量的绝对地址,它必须位于有效存储器空间。 也可以用头文件“ABSACC.H”中的预定义宏来指定变量的绝对地址。 头文件头文件“ABSACC.H”ABSACC.H”中的预定义宏中的预定义宏宏定义可访问的存储器空间及数据类型CBYTE地址(访问CODE

10、区char型)CWORD地址(访问CODE区int型)DBYTE地址(访问DATA区char型)PBYTE地址(访问PDATA区或I/O端口char型)XBYTE地址(访问XDATA区或I/O端口char型)DWORD地址(访问DATA区int型)PWORD地址(访问PDATA区或I/O端口int型)XWORD地址(访问XDATA区或I/O端口int型)中断服务函数与寄存器组定义中断服务函数与寄存器组定义 Keil C51编译器支持在C语言源程序中直接编写8051单片机的中断服务函数程序,一般形式为:函数类型函数类型 函数名函数名(形式参数表形式参数表) interrupt n using n

11、 关键字intrrupt后面的n是中断号, n的取值范围为031。编译器从8n+3处产生中断向量, 具体的中断号n和中断向量取决于8051系列单片机芯片型号。 关键字using用来选择8051单片机中不同的工作寄存器组。using后面的n是一个03的常整数, 分别选中4个不同的工作寄存器组。 常用中断号与中断向量常用中断号与中断向量 中断号 n中 断 源中断向量 8n+30外部中断 00003H1定时器 0000BH2外部中断 10013H3定时器 1001BH4串行口0023H数据调用协议数据调用协议 Keil C51编译器规定数据在内存中按高字节地址在前、低字节地址在后的顺序存放。 一个值

12、为0 x12345678 的“long” 类型数据, 在内存中存储格式如下: 地址 +0 +1 +2 +3内容 0 x12 0 x34 0 x56 0 x78数据调用协议数据调用协议 “float”类型数据的长度为4个字节(32位),在内存中按IEEE-754标准单精度32位浮点数的格式存储。格式如下: 地址 +0 +1 +2 +3 内容 SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM其中, S为符号位,“0”正“1”负。E为用原码表示的阶码,占用8位二进制数, 存放在两个字节中,E的取值范围是1254。注意, 实际上以2为底的指数要用E的值减去偏移量127,实际幂指数

13、的取值范围为-126+127。M为尾数的小数部分,用23位二进制数表示, 存放在三个字节中。尾数的整数部分永远为1,因此不予保存, 但它是隐含存在的。小数点位于隐含的整数位“1”的后面。 数据调用协议数据调用协议 Keil C51编译器支持“基于存储器”的指针和“一般”指针。基于存储器类型data、 idata 和pdata的指针具有1个字节的长度, 基于存储器类型xdata和code的指针具有2个字节的长度,一般指针具有3个字节的长度。在一般指针的3个字节中, 第一个字节表示存储器类型, 第二、第三个字节表示指针的地址偏移量。一般指针在内存中的存储格式为: 地址 +0 +1 +2 内容 存储

14、器类型 高字节地址偏移量 低字节地址偏移量第一个字节中存储器类型的编码如下:存储器类型 idata/data/bdata xdata pdata code 编码值 0 x00 0 x01 0 xFE 0 xFFKeil C51的库函数的库函数 本征库函数本征库函数 本征库函数是指编译时直接将固定的代码插入到当前行,而不是用汇编语言中的“ACALL”和“LCALL”指令来实现调用,从而大大提高函数的访问效率。非本征库函数则必须由“ACALL”和“LCALL”指令来实现调用。Keil C51的本征库函数只有9个,数量虽少,但非常有用。本征库函数在头文件INTRINS.H中定义。字符判断转换库函数字

15、符判断转换库函数 字符判断转换库函数的原型声明在头文件CTYPE.H中定义。 Keil C51的库函数的库函数 输入输出库函数输入输出库函数 输入输出库函数的原型声明在头文件STDIO.H中定义,通过8051系列单片机的串行口工作, 如果希望支持其它I/O接口, 只需要改动_getkey()和putchar()函数, 库中所有其它I/O支持函数都依赖于这两个函数模块,在使用8051系列单片机的串行口之前,应先对其进行初始化。 例如以2400波特率(12MHz时钟频率)初始化串行口的语句如下: SCON=0 x52; /* SCON 置初值 */ TMOD=0 x20; /* TMOD 置初值

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

17、。 Keil C51的库函数的库函数 字符串处理库函数字符串处理库函数 字符串处理库函数的原型声明包含在头文件STRING.H中,字符串函数通常接收指针串作为输入值。一个字符串应包括2个或多个字符, 字符串的结尾以空字符表示。在函数 memcmp、memcpy、memchr、memccpy、memset和memmove中,字符串的长度由调用者明确规定。类型转换及内存分配库类型转换及内存分配库 类型转换及内存分配库函数的原型声明包含在头文件STDLIB.H中,利用该库函数可以完成数据类型转换以及存储器分配操作。 数学计算库函数数学计算库函数 数学计算库函数的原型声明包含在头文件MATH.H中。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|