C51学习资料 C51学习手册介绍运算符算法数组指针结构体共用体枚举.doc_第1页
C51学习资料 C51学习手册介绍运算符算法数组指针结构体共用体枚举.doc_第2页
C51学习资料 C51学习手册介绍运算符算法数组指针结构体共用体枚举.doc_第3页
C51学习资料 C51学习手册介绍运算符算法数组指针结构体共用体枚举.doc_第4页
C51学习资料 C51学习手册介绍运算符算法数组指针结构体共用体枚举.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一:数据类型运算符表达式1.1 C51支持的数据类型数据类型名称长度值域基本类型bit1 bit0,1Unsigned char,char1 byte0255,-128127Unsigned int,int2byte065525,-3276832767Unsigned long,long4 byte04294967295Float4 byte6位数字Double8 byte10位数字构造类型数组结构体共用体枚举指针类型23byte存储空间,最大64KB空类型1.2 常量和变量常量:#define CONST 10变量:bit b_start /位变量 Charc_start/字符变量其他略。1.3 C51存储器寄存器定义定义:分为片内数据存储器片外数据存储器片内程序存储器片外程序存储器。1.31C51的数据存储类型关键字存储器对应关系data直接寻址片外数据存储器(128byte)bdat片内位寻址存储空间(16byte)idata间接寻址片内数据存储空间,可以访问RAM全部内容pdata分页寻址片外数据存储器(256byte)Xdata片外数据存储器(64KB)Code代码存储器(64KB)例子:char data c_Var; /无符号char型变量,定义到内部存储空间低128byte1.32寄存器Sfr SBUF=0x99;/定义串行数据寄存器Sfr16T2=0xcc;/定义T2计时器数据存储器Sbit D0=P21;定义位变量SbitCY=0xd7;使用绝对地址定义使用sbit定义变量空间Bdata unsigned char uc_shield_byte;Sbit b_x= uc_shield_byte1;/定义首位Sbit b_y= uc_shield_byte2;Sbit b_z=uc_shield_byte3;1.4 逻辑运算与:&或:|非:!位逻辑运算位与:&位或:|位异或:位取反:1.5 移位运算左移位:,高位右移,补0;二:C51控制流(1) 顺序结构(2) 选择结构1 Ifelse语句2 If语句3 Switch语句Switch(判断条件)Case 常量表达式1:语句块1break;Default:语句n+1break;4 If和switch嵌套(3) 循环结构1 While语句2 Do while语句Do代码块;while(条件);3 For语句三:函数1 无参数函数定义Void 函数名(void)/无参数,无返回值函数定义Int 函数名(char a,char b)/带参数,带返回值函数定义2 局部变量和全局变量静态局部变量和动态局部变量Staticint a;静态(static不可省略)Autointa;动态(auto可省略)3 内部函数和外部函数(1)内部函数:static unsigned char Fun(int a);内部函数只能被该源文件中的其他函数调用(2)外部函数:extern unsigned char Fun(int a);外部函数可以被其他源文件调用的函数四:数组和指针(1) 数组:l 一维数组:类型数组名【size】;l 二维数组类型数组名【size A】【size B】;l 字符数组Char ch1【】=j,a,c,k,x,u;以字符形式赋值Char ch1=“jackxu”;以字符串形式赋值(2) 指针1) 指针和指针变量类型*变量名Int *ptr1;float *ptr2;char *ptr3;2) 指针的引用Int a=10;Int *p=&a;X=a ;直接访问方式X=*p;间接访问方式(3) 数组和指针Int a=1,2,3,4,5,6,7,8,9,10,*ip;Ip=a; /*ip代表a0,*(ip+i)代表ai;二维数组与指针同上;(4) 字符串和指针不能用指针变量来修改字符串常量;(5) 数组,指针和函数的关系1) 数组可作为函数的参数:int sum(int a,int num);2) 指针作为函数参数:int sum(int *ip,int num);3) 返回指针的函数:char *ip(char *ip,char c);(6) 指针数组和指向指针的指针1)类型 *数组名【size】;Char *name【3】=“I”,“love”,“you”;定义了三个字符型指针数组并进行了初始化3) 类型 *指针变量名 /指针变量的变量声明*指针变量 /获取指针变量指向的指针*指针变量 /获取指针变量指向的指针内容例子:Main()Char *name=“Tom”,”Jacky”,”Andy”;Char *cp=name;For(int i=0;iMonth=8;例子:求平均数Struct memberFloat Slaray;flashman【5】=3000,4000,5000,6000,7000;Float AVRage(struct member *p_Man)Float avr,sum;Unsigned char j;Sum=avr=0;For(j=0;jSlaray;If(j=4)Avr=sum/5;Return avr;Main()Float avr;Struct member *p;P=flashman;Menberavr=average(p);(2) 联合体定义:union 结构名类型说明符 成员1类型说明符 成员2。类型说明符 成员n;结构名 变量名1,变量名2.;2)union结构名类型说明符 成员1类型说明符 成员2。类型说明符 成员n变量名1,变量名2.;3)union 类型说明符 成员1类型说明符 成员2。类型说明符 成员n变量名1,变量名2.;(3) 枚举1)定义:Enum 枚举名枚举值列表;枚举名 变量1,变量2,;2)Enum 枚举名枚举值列表; 枚举名变量1,变量2,;六:程序设计技巧中断响应快速的一种解决方法#define N 256Char dataNStatic int couter=0;Void main(void)If(flag=1)Handledata(data);/数据处理模块Void Timer0 (void)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论