- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS51-C语言编程
MCS-51C语言编程 C51的程序结构 C51数据类型 存储类型和存储模式 指针 函数 C语言编程实例 C语言 C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能 C语言进行程序设计已经成为嵌入式软件开发的一个主流 用C语言开发系统可以大大缩短开发周期,增强程序的可读性和可维护性 MCS-51单片机的C语言采用C51编译器(简称C51) C51与ASM51 对MSC-51的指令系统不要求了解,仅需了解存贮器结构 寄存器分配、不同存贮器的寻址及数据类型等细节编译器管理 提供的库包含许多标准子程序,具有较强的数据处理能力 由于具有方便的模块化编程技术,使已编好程序可容易地移植 C51程序结构 同标准C一样,C51的程序由一个个函数组成。函数和汇编语言的“子程序”或“过程 ”具有相同的意义。其中必须有一个主函数main(),程序的执行从main()函数开始,调用其 他函数后返回主函数main(),最后在主函数中结束整个程序 C51程序结构 全局变量说明 /*可被各函数引用*/ main() /*主函数*/ { 局部变量说明 /*只在本函数引用*/ 执行语句(包括函数调用语句) } fun1(形式参数表) /*函数1*/ { 局部变量说明 执行语句(包括调用其他函数语句) } C51数据类型 常量 在程序运行中其值不变的量 变量 一个变量由变量名和变量值构成,变量名即是存贮单元地址的符号表示,而变量的值就是该单元存放的内容。定义一个变量,编译系统就会自动为它安排一个存贮单元,具体的地址值用户不必在意 C51数据类型 C51数据类型 C51语言数据类型 C51数据类型 位类型bit,不能定义位变量指针;也不能定义位变量数组 sfr,特殊功能寄存器。定义8051单片机的所有内部8位特殊功能寄存器 sfr16,16位特殊功能寄存器。定义8051单片机内部16位特殊功能寄存器 sbit 可寻址位。定义8051单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位 变量的存储类型定义举例 char data var1; bit bdata flag; float idata x,y,z; unsigned int pdata var2; unsigned char xdata var3; sfr SCON=0x98; sfr T2=0xCC; sbit CY=PSW^7; sbit CY=0xD0^7; sbit CY=0xD7; 包含文件 C51也建立了一个头文件reg51.h (增强型为reg52.h),在该文件中对所有的特殊功能寄存器的进行了sfr定义, 对特殊功能寄存器的有位名称的可寻址位进行了sbit定义,因此,只要用包含语句#includereg51.h,就可以直接引用特殊功能寄存器名,或直接引用位名称 变量定义格式 C51中对变量进行定义的格式如下: [存储种类] 数据类型[存储器类型] 变量名; 其中, “存储种类”和“存储器类型”是可选项。 变量的存储种类有四种: 自动(auto)、外部(extern)、静态(static)和寄存器(register)。定义变量时省略存储种类选项,则该变量将为自动(auto)变量 C51的存储类型 C51的存储类型 存储模式 C51定义变量时如果省略“存储器类型”选项, 则按编译时使用的存储器模式SMALL、COMPACT或LARGE来规定默认存储器类型,确定变量的存储器空间, 函数中不能采用寄存器传递的参数变量和过程变量也保存在默认的存储器空间。 存储模式 指针 在汇编语言程序中,要取存贮单元m的内容可用直接寻址方式,也可用寄存器间接寻址方式 ,如果用R1寄存器指示m的地址,用@R1取m单元的内容。 在C语言中用变量名表示取变量的值(相当于直接寻址),也可用另一个变量(如P)存放m的地址,P就相当于R1寄存器 。用*P取得m单元的内容(相当于汇编的间接寻址方式)这里P即为指针型变量。 指针定义 MCS-51有不同的存贮空间,不同的地址范围,即使对于同一外部数据存贮器,又有用@Ri分页寻址(Ri为八位)和用@DPTR寻址(DPTR为十六位)两种寻址方式 指针本身也是一个变量,有它存放的存贮区和数据长度 在指针类型的定义中要说明:被指的变量的数据类型和存贮类型;指针变量本身的数据类型(占几个字节)和存贮类型(即指针本身存放在什么存贮区) 指针定义 类型定义为data或idata,表示指针指示内部数据存贮器;而pdata表示指针指向外部数据存贮器,用@Ri间址,为八位地址 类型code/xdata表示指针指向外部程序存贮器或外部数据存贮器指针,本身(即被指 示地址)应为十六位长
您可能关注的文档
最近下载
- 25道广东电力发展新能源工程师岗位面试问题考察点及参考回答.pdf
- 挤压综合征课件.ppt VIP
- 前列腺癌诊疗指南更新.pptx VIP
- urit全自动尿液有形分析仪临床使用2014.pptx VIP
- Samsung三星条形音响 HW-Q600F(2025)使用手册中文版.pdf
- 统编版道德与法治四年级上册大单元教学计划 教学进度表.pdf
- 2024年重庆中烟工业有限责任公司考试真题试卷及答案.docx VIP
- 2025-2026学年第一学期开学典礼校长致辞:乘金秋之风,启成长新程.docx
- EXPEC2000挥发性有机物(VOCs)在线监测系统用户手册.pdf VIP
- 小学教师专业发展-PPT课件(全).pptx
文档评论(0)