- 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等。 * 苍童渭蚜岂马藤孟雷巳铣是哇墙誓皮嫁因匹村擅疼垛叼蒋应渠抿永喇桃什第4章 8051单片机程序设计基础第4章 8051单片机程序设计基础 整型变量的长度为16位,8051系列CPU将int型变量的MSB存放在低地址字节。有符号整型变量(signed int)也使用MSB位作为标志位,并使用二进制的补码表
您可能关注的文档
最近下载
- 迅达3300AP电气原理图(中文精简版).pdf VIP
- (精品)《雨人》中英文台词剧本完整版.docx VIP
- 2025-2026学年初中美术八年级上册(2024)岭南版(2024)教学设计合集.docx
- 上市公司应对证券民事索赔100问.pdf VIP
- 【继续教育】水质PH(每日一练).pdf VIP
- Lenovo联想 服务器 ThinkServer TS560 说明书.pdf
- Q/GDW 364-2009《单相智能电能表技术规范》及编制说明.doc VIP
- 社会保障学 高教版 第16章--扶贫开发.ppt VIP
- 《2和5的倍数的特征》省公开课一等奖全国示范课微课金奖PPT课件.pptx VIP
- 甜梦口服液与丁螺环酮治疗广泛性焦虑症的疗效对比.PDF VIP
文档评论(0)