版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主要内容C51的基本数据类型及存储类型C51中的函数C51程序设计方法9.1C51程序的基本构成include<>long fun1();float fun2();int x,y;float z;fun1(){
函数体…}main(){
主函数体…}fun2(){
函数体…}预处理命令函数说明变量定义功能函数1主函数功能函数29.2C51的数据结构C51中的基本数据类型1.字符型char
字符型变量分为有符号和无符号两种,它们的长度为8位,占用1个字节。有符号型用char(或signedchar)表示。无符号型用unsignedchar表示。2.整型int
整型变量也分为有符号和无符号两种,它们的长度16位,占用2个字节。有符号整型用singedint表示。无符号整型用unsignedint表示。C51中的基本数据类型4.浮点型floatfloat型数据变量为32位,占4个字节。格式符合IEEE-754标准的单精度浮点型数据,精度为24位,尾数的高位始终为“1”,因而不保存。最高位为符号位,“1”表示负数,“0”表示正数,其次的8位为阶码,最后的23位为尾数。9.2C51的数据结构C51中的基本数据类型5.指针型*
指针型*本身就是一个变量,在这个变量中存放着指向另一个数据的地址。在C51中它的长度一般为1~3个字节。6.特殊功能寄存器sfrAT89S51系列单片机内部定义了26个特殊功能寄存器(SFR),它们不连续地分布在片内RAM的高128字节中,地址为80H~FFH。sfr P0=0x80;
//定义P0口地址为0x809.2C51的数据结构C51中的基本数据类型7.16位特殊功能寄存器sfr16sfr16和sfr一样用于定义特殊功能寄存器,所不同的是它用于定义占2字节的寄存器。8.位类型bit9.可寻址位sbitsfr16DPTR=0x82; sbit P1_1=P1^1;
//定义P1_1为P1中的P1.1引脚 9.2C51的数据结构数据类型长度值域unsignedchar单字节0~255signedchar单字节−128~+127unsignedint双字节0~65535signedint双字节−32768~+32767unsignedlong四字节0~4294967295signedlong四字节−2147483648~+2147483647float四字节±1.175494E-38~±3.402823E+38*1~3字节对象的地址bit位0或1sfr单字节0~255sfr16双字节0~65535sbit位0或19.2C51的数据结构9.2.3C51的变量与存储类型C51的变量定义[存储类型] 类型说明符 [存储器类型]变量名类型说明符用于在定义变量时指明变量的数据类型。
变量名可以由字母、数字和下划线三种字符组成,且第一个字母必须为字母或下划线。
存储类型是用于指定变量在程序执行过程中的有效作用范围。存储器类型是用于定义C51程序中数据存储的位置。
存储类型(1)auto:使用auto定义的变量称为自动变量,其作用范围在定义它的函数体或复合语句内部,(2)extern:使用extern定义的变量称为外部变量。在一个函数体内,要使用一个已在该函数体外或别的程序中定义过的外部变量时用。(3)static:使用static定义的变量称为静态变量。它分为内部静态变量和外部静态变量。(4)register:使用register定义的变量称为寄存器变量。它定义的变量存放在CPU内部的寄存器中,处理速度快,但数目少。存储器类型存储器类型描述data直接寻址的片内RAM低128B,访问速度快bdata片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata间接寻址访问的片内RAM,允许访问全部片内RAMpdata用Ri间接访问的片外RAM的低256Bxdata用DPTR间接访问的片外RAM,允许访问全部64k片外RAMcode程序存储器ROM64k空间
存储器模式存储器模式描述SMALL变量放入直接寻址的片内数据存储器(默认存储器类型为DATA)COMPACT变量放入分页寻址的片外数据存储器(默认存储器类型为PDATA)LARGE变量放入片外数据存储器(默认存储器类型为XDATA)9.3C51的运算符9.3C51的运算符1.赋值运算符2.算术运算符及表达式a=0x86; //将常数0x86赋值给变量a+
加法或正值符号− 减法或负值符号* 乘法/
除法%
模(求余)3.关系运算符及表达式9.3C51的运算符
小于
大于
=
小于等于
=
大于等于==
等于
=
不等于4.逻辑运算符及表达式&&
逻辑“与”||
逻辑“或”! 逻辑“非”9.3C51的运算符5.位运算符及表达式&
按位与|
按位或^
按位异或~
按位取反
位左移
位右移6.自增减运算符及表达式
++ 自增−− 自减9.4C51的函数函数定义的一般形式:函数类型 函数名(形式参数表)形式参数说明{
局部变量定义 函数体语句}函数的说明与调用
对函数进行说明的一般形式为:
类型标识符 被调用的函数名(形式参数表);调用的一般形式为: 函数名 (实际参数表)C51中的特殊函数
1.再入函数格式:函数类型 函数名(形式参数表)[reentrant]2.中断服务函数格式:函数类型函数名(形式参数表)[interruptm][usingn]C51的常用控制语句1.选择语句if在这种结构中,如果括号中的表达式成立(为真),则程序执行花括号中的语句;否则程序将跳过花括号中的语句部分,执行下面的其他语句。if语句的基本结构是if(表达式){语句;}三种形式的if语句2.循环语句C51的常用控制语句
(1)while语句while(表达式){循环体}例:while((P1&0x10)==0){ i++;}2.循环语句C51的常用控制语句
(2)dowhile语句do{循环体}while(表达式)例:do{ i++;}while(P1^0==0);2.循环语句C51的常用控制语句
(3)for语句for(表达式1;表达式2;表达式3){循环体}例:for(sum=0,i=0;i<=100;i++){ sum=sum+i;}9.5C51的编译预处理C51的编译预处理命令类似于汇编语言中的伪指令。编译器在对整个程序进行编译之前,先对程序的编译控制行进行预处理,然后再将处理结果和源程序一起进行编译。常用的预处理命令有:宏定义、文件包含和条件编译命令。这些命令都是以“#”开头,以与源程序中的一般语句行和说明行相区别。9.5.1宏定义1.不带参数的宏定义格式:#define 宏符号名 常量表达式2.带参数的宏定义格式:
#define 宏符号名(参数表) 表达式9.5.2文件包含格式为:
#include “文件名”9.5.3条件编译1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南豫能控股股份有限公司及所管企业招聘31人备考题库【培优a卷】附答案详解
- 2026江苏南通市工会社会工作者招聘21人备考题库附答案详解【预热题】
- 2026安徽滁州市中小学新任教师招聘240人备考题库及答案详解(名师系列)
- 2026广东岭南国防教育基地仓库管理员招聘备考题库【考试直接用】附答案详解
- 2026上半年四川事业单位统考安州区考试招聘教师26人备考题库及参考答案详解【轻巧夺冠】
- 2026云南白药集团春季校园招聘备考题库带答案详解(培优a卷)
- 2026上半年四川事业单位统考安州区考试招聘教师26人备考题库及完整答案详解【历年真题】
- 2026四川乐山市峨边彝族自治县招聘县属国有企业人员27人备考题库附完整答案详解【名校卷】
- 2026广东省南方医科大学珠江医院三水医院第二批合同制工作人员招聘26人备考题库附参考答案详解【培优b卷】
- 福建省2026年重点学校高一入学语文分班考试试题及答案
- 2026广西钦州市公安局面向社会招聘警务辅助人员158人考试备考题库及答案解析
- 立春二声部合唱谱
- 2026杭州市临安区机关事业单位编外招聘56人笔试模拟试题及答案解析
- 提高肿瘤治疗前TNM分期评估率
- 2025年四川省绵阳市中考英语真题
- 荨麻疹的定义、分类、诊断及管理国际指南(2026)解读课件
- 2026中证数据校园招聘备考题库(含答案详解)
- 《老年临床营养管理服务规范》编制说明
- 2026年及未来5年市场数据中国双乙烯酮行业市场深度分析及发展前景预测报告
- 2026年河南农业职业学院单招职业技能测试模拟测试卷附答案
- 2023年煤矿安全生产管理人员考试题库
评论
0/150
提交评论