- 1、本文档共127页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]补充:C51程序设计基础
C51程序设计基础 2.1.1 C51特点 C51语言与ANSI C的对比 2.1.2 C51编程的例子 2.1.2 C51编程的例子 2.1.2 C51编程的例子 2.1.3 C51的标识符和保留字 2.1.3 C51的标识符和保留字 2.1.4 C51的数据类型 2.1.4 C51的数据类型 2.1.4 C51的数据类型 C51扩充数据类型:bit、sfr或sfr16、sbit 2.1.4 C51的数据类型 2.1.5 C51的常量 5. 符号常量 2.1.6 变量 2.1.6 变量 存储类型 (1)data区 data区的寻址是最快的,所以应该把经常使用的变量放在data区,但是data区的空间是有限的,data区除了包含程序变量外,还包含了堆栈和寄存器组。 data区声明中的存储类型标式符为data,通常指片内RAM的低128字节的内部数据存储的变量,可直接寻址。 声明举例如下: unsigned char data system_status=0; unsigned int data unit_id[2]; char data inp_string[16]; (2)bdata bdata实际是data中的位寻址区,在这个区中声明变量就可以进行位寻址。位变量的声明对状态寄存器来说是十分有用的,因为它可能仅仅需要某一位,而不是整个字节。 以下是在bdata区中声明的位变量和使用位变量的例子: unsigned char bdata status_byte; unsigned int bdata status_word; unsigned long bdata status_dword; sbit stat_flag=status_byte^4; if(status_word^15) { … } stat_flag=1; (3)idata区 idata区也可以存放使用比较频繁的变量,使用寄存器作为指针进行寻址。idata区声明中的存储类型标识符为idata,指内部的256字节的存储区,但是只能间接寻址,速度比直接寻址慢。 (4)pdata区和xdata区 pdata区和xdata区属于外部数据存储区,外部数据区是可读可写的存储区,最多可以有64KB。 在这两个区,变量的声明与在其他区的语法是一样的,但pdata区只有256字节而xdata区可达65536字节。 unsigned char xdata system_status=0; unsigned int pdata unit_id[2] ; char xdata inp_string[16] ; float pdata out_value; (5)程序存储区code 程序存储区的数据是不可改变的,跳转向量和状态表对code段访问和对xdata区访问的时间是一样的。编译的时候要对程序存储区中的对象进行初始化,否则就会产生错误。 程序存储区code声明的标识符为code,在C51语言编译器中可以用code存储区类型标识符来访问程序存储区。下面是程序存储区声明的例子: unsigned char code a[ ]= {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15}; 变量存储类型定义举例: unsigned char data var1; bit bdata flags; float idata x,y,z; unsigned int pdata dimension; unsigned char xdata vector[10][4][4]; 编译模式 编译模式 使用C51变量时应注意的问题 尽量使用短变量 尽量使用无符号变量 尽量避免使用浮点类型变量或指针 在编程时,为了书写方便,经常使用简化的缩写形式来定义变量的数据类型: #define uchar unsigned char 使用位变量。 用局部变量代替全局变量 为变量分配内部存储区 2.1.7 C51的常用运算符 算术运算符 逻辑运算符 位运算符 复合赋值运算符 例如: a+=b //a=(a+b) x*=a+b //x=(x*(a+b)) a=b //a=(ab) a=4 //a=(a4) 算
您可能关注的文档
- [工学]第四章根轨迹法自动控制理论.ppt
- [工学]第四章斜截面.ppt
- [工学]第四章模电课件_模拟电子技术课件.ppt
- [工学]第四章模具特种加工.ppt
- [工学]第四章环境规划.ppt
- [工学]第四章移动机器人的定位.ppt
- [工学]第四章简单C程序设计.ppt
- [工学]第四章:无失真信源编码.pdf
- [工学]第四章:选择结构程序设计.ppt
- [工学]第四章金属的塑性变形与再结晶.ppt
- 2024-2025学年人教版小学数学四年级下册教学计划及进度表.docx
- 2024-2025学年北师大版小学数学二年级下册教学计划及进度表.docx
- 2024-2025学年人教版小学数学五年级下册教学计划及进度表.docx
- 2024-2025学年人教大同版(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年人教精通版(三起)(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年统编版初中道德与法治八年级下册教学计划及进度表.docx
- 2024-2025学年统编版(2024)初中道德与法治七年级下册教学计划及进度表.docx
- 2023-2024学年上海黄埔区中考二模综合测试(物理部分)试卷及答案.pdf
- 2024-2025学年外研版(三起)(2024)小学英语三年级下册教学计划及进度表.docx
- 2025届北京市北京第四中学高三冲刺模拟数学试卷含解析.doc
文档评论(0)