资源描述:
《c51学习资料 c51学习手册介绍运算符算法数组指针结构体共用体枚举》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C51编程学习作者:刘园珍一:数据类型·运算符·表达式1.1C51支持的数据类型数据类型名称长度值域基本类型bit1bit0,1Unsignedchar,char1byte0~255,-128~127Unsignedint,int2byte0~65525,-32768~32767Unsignedlong,long4byte0~4294967295Float4byte6位数字Double8byte10位数字构造类型数组结构体共用体枚举指针类型2~3byte存储空间,最大64KB空类型1.2常量和变量常量:#defineCONST10变量:bitb_start//位变量C
2、harc_start//字符变量其他略。1.3C51存储器·寄存器定义定义:分为片内数据存储器·片外数据存储器·片内程序存储器·片外程序存储器。1.31C51的数据存储类型关键字存储器对应关系data直接寻址片外数据存储器(128byte)bdat片内位寻址存储空间(16byte)idata间接寻址片内数据存储空间,可以访问RAM全部内容pdata分页寻址片外数据存储器(256byte)Xdata片外数据存储器(64KB)Code代码存储器(64KB)例子:chardatac_Var;//无符号char型变量,定义到内部存储空间低128byte1.32寄存器SfrSB
3、UF=0x99;//定义串行数据寄存器Sfr16T2=0xcc;//定义T2计时器数据存储器SbitD0=P2^1;定义位变量SbitCY=0xd7;使用绝对地址定义使用sbit定义变量空间Bdataunsignedcharuc_shield_byte;Sbitb_x=uc_shield_byte^1;//定义首位12C51编程学习作者:刘园珍Sbitb_y=uc_shield_byte^2;Sbitb_z=uc_shield_byte^3;1.1逻辑运算与:&&或:
4、
5、非:!位逻辑运算位与:&位或:
6、位异或:^位取反:~1.2移位运算左移位:<<,个位左移,补0;右
7、移位:>>,高位右移,补0;二:C51控制流(1)顺序结构(2)选择结构1.If……else语句2.If语句3.Switch语句Switch(判断条件){Case常量表达式1:{语句块1}break;……Default:{语句n+1}break;}4.If和switch嵌套(3)循环结构1.While语句2.Dowhile语句12C51编程学习作者:刘园珍Do{代码块;}while(条件);1.For语句三:函数1.无参数函数定义Void函数名(void)//无参数,无返回值函数定义{}Int函数名(chara,charb)//带参数,带返回值函数定义{}2.局部变量
8、和全局变量静态局部变量和动态局部变量Staticinta;静态(static不可省略)Autointa;动态(auto可省略)3.内部函数和外部函数(1)内部函数:staticunsignedcharFun(inta);内部函数只能被该源文件中的其他函数调用(2)外部函数:externunsignedcharFun(inta);外部函数可以被其他源文件调用的函数四:数组和指针12C51编程学习作者:刘园珍(1)数组:l一维数组:类型数组名【size】;l二维数组类型数组名【sizeA】【sizeB】;l字符数组Charch1【】={‘j’,’a’,’c’,’k’,’x
9、’,’u’};以字符形式赋值Charch1[]={“jackxu”};以字符串形式赋值(2)指针1)指针和指针变量类型*变量名Int*ptr1;float*ptr2;char*ptr3;2)指针的引用Inta=10;Int*p=&a;X=a;直接访问方式X=*p;间接访问方式(3)数组和指针Inta[]={1,2,3,4,5,6,7,8,9,10},*ip;Ip=a;//*ip代表a[0],*(ip+i)代表a[i];二维数组与指针同上;(4)字符串和指针不能用指针变量来修改字符串常量;12C51编程学习作者:刘园珍(1)数组,指针和函数的关系1)数组可作为函数的参数
10、:intsum(inta[],intnum);2)指针作为函数参数:intsum(int*ip,intnum);3)返回指针的函数:char*ip(char*ip,charc);(2)指针数组和指向指针的指针1)类型*数组名【size】;Char*name【3】={“I”,“love”,“you”};定义了三个字符型指针数组并进行了初始化1)类型**指针变量名//指针变量的变量声明*指针变量//获取指针变量指向的指针**指针变量//获取指针变量指向的指针内容例子:Main(){Char*name[]={“Tom”,”Jacky”,”Andy”};Ch