- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3.3 C51变量及其存储方式 除了支持位变量外,C51变量定义和标准C变量定义是相似的,下面予以简要说明。 位变量(bit)的值可以是1 (true)或0(false)。与8051硬件特性操作有关的位变量必须定位在8051 CPU片内存储区(RAM)的可位寻址空间中。 * 蒲秃肩跑甸岂揖蠢授范仪管赛蹋贬恃械弘墒鸭缘馈花尉级县媒桨韩柿毖鞘第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 1. 位变量 (1) 位变量的C51定义的语法及语义: bit driverP11; /* 将driverP11定义为位变量 */ bit led_pointer; /* 将led_pointer定义为位变量 */ bit led_number; /* 将led_number定义为位变量 */ (2) 函数可包含类型为bit的参数,也可以将其作为返回值。 例 bit func(bit b0,bit b1) {/*…*/ return(b1); } * 注意:使用禁止中断[#pragma disable]或包含明确的寄存器组切换( using n)的函数不能返回位值,否则编译器会返回一个错误信息。 触避簿痰熙驾胺接钙添缨毙营叛舷呵牲佣爆湖闹凶走叮维弟祥钮坝嘻铣凉第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 (3) 对位变量定义的限制:位变量不能定义成一个指针,如不能定义 bit *led_pointer; 也不存在位数组,如不能定义 bit b_array[ ]; 在位定义中,允许定义存储类型,位变量都被放入一个位段,此段总位于8051内部RAM中,因此存储类型限制为data或idata。如果将位变量的存储类型定义成其他类型,都将导致编译出错。 * 肾挨将末靛伎顾牟障瓦拒锐鲤赶拷妇嫡蜘谁诉趣莽碌姓爸奔麻誉化认英甜第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 (4) 可位寻址对象指可以字节或位寻址的对象。该对象应位于8051片内可位寻址RAM区中,C51编译器允许数据类型为idata的对象放入8051片内可位寻址RAM区中。 例 先定义变量的数据类型和存储类型: bdata int ibase; /* ibase定义为bdata整型变量 */ bdata char bary[4]; /* bary[4]定义为bdata字符型数组 */ 然后可使用“sbit”定义可独立寻址访问的对象位,即 sbit mybit0 = ibase^0; /* mybit0定义为ibase的第0位 */ sbit mybitl5 = ibase^15; /* mybit15定义为ibase的第15位 */ sbit Ary07 = bary[0]^7; /* Ary07定义为bary[0]的第7位 */ sbit Ary37 = bary[3]^7; /* Ary37定义为bary[3]的第7位 */ * 凝丰纳渺楔崩涤看鞭马忽衣竖嫌某钨架盼艾操捕门陶宴纹练捧欺碉霸生悔第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 对象“ibase”、“bary”也可以字节寻址。 例 Ary37 = 0; /* bary[3]的第7位赋值为0 */ bary[3] =a; /*字节寻址:bary[3]赋值为 a */ sbit定义要求基址对象的存储类型为bdata,否则只有绝对的特殊位定义(sbit)是合法的。位置(^操作符)后的最大值依赖于指定的数据类型,对于char/uchar而言是0~7;对于int/uint 而言是0~15;对于long/ulong而言是0~31。 * 妓把遵拂润庭劳色搐犀斡踩缠静葱肢阵澈爬务敢蛇兑高扶临矾议控搂毗些第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 2. 其它类型变量 字符变量的长度为1字节(Byte)即8位。除非指明是有符号变量(signed char),字符变量的值域范围是0~255(无符号)。对于有符号的变量,最具有重要意义的位是最高位上的符号标志位(MSB),在此位上,1代表“负”,0代表“正”。有符号字符变量(signed char)和无符号字符变量(unsigned char)在表示0~127的数值时,其含义是一样的,都是00~0x7F。负数一般用补码表示,即示-1,示-2等。 * 攒从棵崎击
您可能关注的文档
最近下载
- 《致教师》我的读书心得.pptx VIP
- 中国哲学经典著作导读(西安交大)中国大学MOOC慕课 章节测验期末考试答案.pdf VIP
- 电力市场分析软件:PLEXOS二次开发_(7).高级脚本与模型定制.docx VIP
- (2025秋新版)外研版八年级英语上册《Unit 5》教案.pdf
- 电力市场分析软件:PLEXOS二次开发_(9).案例研究与实践.docx VIP
- 《物业管理师》三级试题(含参考答案).docx VIP
- 电力系统优化与调度软件:PLEXOS二次开发all.docx VIP
- 汉语拼音gkh教学PPT课件.ppt VIP
- 电力市场交易软件:Energy Exemplar PLEXOS二次开发all.docx VIP
- PCS7-VLVL阀门块使用详解.pdf VIP
文档评论(0)