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表示指针指向外部程序存贮器或外部数据存贮器指针,本身(即被指 示地址)应为十六位长
您可能关注的文档
- ManagementReview质量体系管理评审详解.ppt
- MAPGIS6.7操作详解.ppt
- mapinfo基本操作详解.ppt
- mapinfo使用详解.ppt
- MarketingSTP详解.ppt
- mary人教新课标版初中七上1.3.1地图的基本要素详解.ppt
- MATE7连接Probe测试软件配置指导详解.docx
- MATLAB2015B安装详解.docx
- MATLABR2015a安装方法(Win8_32位)详解.docx
- matlab基础06详解.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)