- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 编译模式 默认 存储分区 特 点 SMALL data 小模式。 变量默认在片内RAM。空间小,速度块。 COMPACT pdata 紧凑模式。变量默认在片外RAM的页(256字节,页号由P2口决定)。 LARGE xdata 大模式。 变量默认在片外RAM的64KB范围。空间大,速度慢。 编译模式默认的变量存储分区 3.1.3 C51的编译模式 未对变量存储分区定义时,C51编译器采用默认存储分区。例如: char var; //SMALL模式时,var定位于data存储区 //COMPACT模式时,var定位于pdata存储区 //LARGE模式时,var定位于xdata存储区 * * 3.1.4 用_at_定义变量绝对地址 用关键字“_at_”定义变量存放的首地址 idata int y _at_ 0x30; // idata区域整型变量y的首地址为0x30 例如: 又如: xdata char string[20] _at_ 0x3000; //xdata中字符型数组string的首地址为0x3000 注意,C51编程时不要轻易使用绝对地址定位变量。 * * 3.2 C51的指针 对于一个变量a,利用a表示变量a的地址。则语句 p = a; 表明把a的地址赋给了指针变量p,则“p指向了变量a”。 可以用*P表示变量a 指针变量的定义 char *p; // 定义指针变量P p = 30H ; // 指针变量赋值,30H为片内RAM地址 x = *p; // 30H单元的内容送给变量x *P 指针变量 数据变量 3.2.1 已定义数据存储分区的指针 定义时就指定了所指向数据的存储分区。 该指针占1个字节(idata *,data *,pdata *)或2个字节(code *,xdata *) 示例: char data *str; // 指针str指向的char型数据存于data 空间 int xdata *num; // 指针num指向的int型数据存于xdata 空间 基于存储器的指针长度比通用指针短,可以节省存储器空间,运行速度快,但它所指对象具有确定的存储器空间,兼容性不好。 数据 数据分区 * * 定义时未指定所指向的数据的存储分区 。也称通用指针。 3.2.2 未定义数据存储分区的指针---通用指针 通用指针占3个字节 第一字节存放该指针的默认存储器类型编码(见表) 第二字节存放该指针的高位地址偏移量 第三字节存放该指针的低位地址偏移量 存储器类型编码 存储器类型 bdata/ data / idata xdata pdata code 编码 0x00 0x01 0xfe 0xff * * 通用指针定义示例: char *xdata strptr; // 指针本身存于xdata 空间,它指向char型数据 int *data number; // 指针本身存于data 空间,它指向int型数据 由于指向对象的存储空间在编译时无法确定(运行时确定),因此必须生成通用代码以保证对任意空间的对象进行存取。所以通用指针生成的代码速度较慢。 指针 char型数据 指针分区 * * 3.2.3 利用指针进行绝对地址访问 unsigned char data *p; p=0x40 ; *p=0x55; //数据0x55送入内部RAM的0x40单元 例如: C51编译器提供了一组宏定义实现对80C51绝对地址的访问。这组宏定义原型放在absacc.h文件中,形如: #define DBYTE ((unsigned char volatile data *) 0) 从而使DBYTE用于以字节形式对data区访问,可以写成: *(DBYTE)=0x55H;或 DBYTE[0]=0x55H; 与此类似: CBYTE用于以字节形式对code区进行访问; PBYTE用于以字节形式对pdata区进行访问; XBYTE用于以字节形式对xdata区进行访问。 CWORD、DWORD、PWORD和XWORD用于以字形式对code区、data区、pdata区和xdata区进行访问。 3.2.4 C51程序编写示例 【例3-1】将30H至3FH共16个RAM单元初始化为“55H”。 #include reg52.h #include absacc.h void main(void) { unsigned char i; for (i=0;i=15;i++) { DBYTE[0x30+i]=0x55; } whil
您可能关注的文档
- 千秋功过秦始皇.ppt
- 千禧银杏苑B8楼新技术PPT.ppt
- 半索动物门笔石纲.ppt
- 华东电力设计院叶勇健——利用现有火电厂环保系统降低PM2.5颗粒排放的方法.ppt
- 半自动档技术培训.ppt
- 华中师范大学中国近现代史纲要第一讲(2).ppt
- 华中科技大学机械学院专业硕士近四年就业统计(2014).pptx
- 华中科技大学《量子力学》1讲绪论.ppt
- 华为SDH设备操作维护手册.doc
- 华中农业大学病毒学实验技术第六章病毒纯化(2013).ppt
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题最新.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库最新.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库最新.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
最近下载
- DB3204T1024 污水排入城镇污水管网排放口设置技术规范.pdf VIP
- 保安意识和保安职责(含Z07Z08)推荐.docx VIP
- gdc数字电影服务器ftp功能.pdf VIP
- 医疗设备智能化在心血管疾病治疗中的应用与效果评估教学研究课题报告.docx
- 《循环神经网络》PPT课件.pptx VIP
- 生成式AI在CV算法测试中的创新实践-2025研发效能最佳实践.pdf VIP
- 仪器制造技术名词解释.doc VIP
- 2025福建福州市江南智慧城市建设运营有限公司招聘10人备考题库附答案解析.docx VIP
- 高中物理选择性必修2教材习题答案.docx VIP
- 大学生职业生涯规划大赛获奖作品7206.pdf VIP
原创力文档


文档评论(0)