1.1 C51语言的基本语法
1.1.1 数据类型
unsigned char 单字节 0~255
signed char 单字节 -128~+127
unsigned int 双字节 0~65535
signed int 2 -32768~+32767
unsigned long 4 0~4294967295
signed long 4 -2147483648~2147483647
float 4 ±1.175494E-38~ ±3.402823E+38
* 1~3 对象的地址
bit 位 0或1
sfr 1 0~255
sfr16 2 0~65535
sbit 位 0或1
1.1.2 运算符和表达式
1 =
2 + - * / %
3 ++ --
4 < <= > >= == !=
5 && || !
6 ~ & ^(按位或) << >>
7 += >>= -= &= *= |= /= ^=(异或) %= ~= <<=
8 ,
9 逻辑表达式?表达式1:表达式2
10 * 表示取地址里的内容 & 表示取地址 例:int i; int *int_prt; int_prt=&i;
*int_prt=5; 执行结果为i=5。
11 ()强制类型转换符 例:px=(char xdata *) 0xB00;
12 sizeof
1.2
1.2.1 C51控制流
1 选择控制语句 (1) if ①if ②if-else ③else-if
(2) switch-case
2 循环控制语句 (1) for
(2) while 可以看作是for语句的简化
(3) do-while
3 转移控制语句 (1) break
(2) continue
(3) goto
1.2.2 C51函数
1 函数的定义
1 无参函数
2 有参函数
3 空函数
2 函数参数和函数的返回值
1 形参和实参
2 函数的返回值
3 函数的调用
4 变量的存储类别
(1) 自动
(2) static
(3) extern
5 局部变量和全局变量
1.2.3 C51数组和指针
1 C51数组
(1) 一维数组
(2) 多维数组
2 C51指针
(1) 指针变量的定义
(2) 指针变量的引用
(3) 指针的运算
1.2.4 C51结构、联合和枚举
1 C51结构(结构体)
(1) struct
(2) 结构变量的使用
(3) 结构数组和结构指针
struct{
int duan[8];
int wei[8];
}xianshi[8];
也可定义为 struct LED{
int dua[8];
int wei[8];
};
struct LED xianshi[8];
xianshi[0].duan
xianshi[6].wei
结构指针 struct string{
int duan[8];
int wei[8];
}*xianshi;
则 xianshi->wei=5
strcpy(xianshi->duan,"3F");
2 C51联合(共用体)
(1) union 联合名{
数据类型 成员名;
数据类型 成员名;
……
}联合变量名;
联合可以出现在结构体中,结构体也可以出现在联合中
不同点:在任何同一时刻联合中只存放了一个被选中的成员,而结构体中的所有成员都存在。
3 C51枚举
(1) 枚举的定义和说明
enum 枚举名 (枚举值列表) 变量列表;
也可以 enum 枚举名 (枚举值列表);
enum 枚举名 变量列表;
(2) 枚举变量的取值
在默认情况下,第一项符号取值为0,第2项取值为1。。。,也可以初始化,通过初始化后, 后续各项符号随之依次增加。
例: enum direct{up,down,left=10,right};
则 up 为 1, down 为 2,left为10,right为11.
1.3 C51使用技巧
1 使用位变量
对于某些标志位,应该使用位变量,而不是unsigned char。
但是注意 ①用"#pragma disable"说明和用"using"指定的函数,不能返回bit值;
②bit 变量不能声明为指针 ③不能使用bit数组,如bit a[5]
2 使用短型变量
3 使用无符号类型变量
4 用局部变量代替全局变量
5 避免使用浮点指针
6 使用特定指针 如xdata code
7 使用宏代替函数
8 为变量分配内部存储区
PS:以上内容,是小菜一个字一个字的敲上去的,希望对大家有点用处。
Fly
阅读(735) | 评论(0) | 转发(0) |