单片机C51基础知识汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机C51基础知识汇总
李小鹏
2019.12.24
目录
1、标识符
2、数据类型
3、变量
4、常量
5、二进制、八进制、十进制、十六进制
6、运算符
7、语句
8、注释
9、if语句
10、switch--case语句
11、for循环
12、while循环
13、do—while循环
14、循环控制
15、一维数组
16、二维数组
17、字符数组与字符串数组
18、函数
19、函数重入与递归
20、预处理
21、宏
22、条件编译指令
23、指针(*)
24、结构(struct)
25、联合(union)
26、枚举(enum)
主要内容
1 .标识符
标识符就是编程时使用的表示某个事情名称的符号,如函数名、变量名、引脚名、特殊功能寄存器名等。标识符有系统标识符和用户自定义标识符之分。
标识符的命名规则:
(1) 标识符第一个字符必须是字母或下划线。
(2) 标识符只能由字母、数字和下划线三类字符组成。
(3) 标识符是区分大小写的。如A 和a 是两个不同的标识符。
(4) 标识符有效长度不超过32 个字符。
(5) 标识符不能是C51 的关键字。
2 .数据类型
char有符号字符型,一字节,值域-128~127。
int 有符号整型,两字节,值域-32768~32767。
long有符号长整型,四字节,值域-2147483648~2147483647 unsigned char无符号字符型,一字节,值域0~255
unsigned int无符号整型,两字节,值域0~65535
unsigned long无符号长整型,四字节,值域0~4294967295
float浮点型(都是有符号的),四字节,±1.175494E-38~±3.402823E+38
bit位变量,一个二进制位,值域0~1。
sbit51 单片机特殊功能寄存器位,值域0~1。
Sfr 51 单片机特殊功能寄存器,值域0~255。
sfr1651 单片机特殊功能寄存器,如DPTR,值域0~65535。bit,sbit,sfr,sfr16不是标准C 的内容,是51 单片机及C51 编译器特有的,不能用指针对它们进行操作。
3 .变量
C51 规定所有变量在使用前都必须加以说明。变量说明语句由数据类型、可选的存储类型和其后的一个或多个变量名组成,形式如下:
数据类型[存放类型] 变量表;
变量的作用范围:在花括号内说明(也称声明或定义)的变量,其作用范围仅限该花括号内,称为局部变量;在所有函数外面定义的变量,其作用范是整个程序,称为全局变量。
静态变量:在类型前加关键词static 说明的变量,称静态变量。在函数内部定义的静态变量也是局部变量,但它在函数下次调用时,能保存上次调用的值。在函数外面定义的静态变量,是全局变量,但
它只在当前C 文件中有效。这可以防止多个C 文件中同名冲突。(函数加了关键词static,可以定义成静态函数,静态函数只能被同一个C 文件的程序调用。)
4 .常量
常量的意思就是不可改变的量,是一个常数。同变量一样,常量也可以有各种数据类型。常量可以用以下几种方式定义:
(1)宏定义
#define OFF 1 /*定义常量标识符OFF,其值为1*/ (2)使用CODE 空间
char code array[]={1,2,3,4};
/*定义一个常数表,存放在程序存储器中*/ (3)常量定义关键词const
Const int MAX = 60;
(4) enum 枚举常量
enum switchENUM {ON,OFF}; /*ON 值为0,OFF 值为1*/ 5 .二进制,十进制,八进制,十六进制
(1)C 语言中没有二进制的直接表示方法。
(2)以数字“0”开头的数为八进制,如067。
(3)以“0x”或“0X”开头的数为十六进制,如0x3F。
(4)八进制及十六进制与二进制都可以直接转换,八进制每 1 位数对应3 位二进制数。十六进制的每1 位对应4 位二进制数。(5)用四位二进制数来表示的十进制数称BCD 码。
6 .运算符
(1 )赋值运算符(=)
‘=’赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。
注意:这里并不是等于的意思,只是赋值,等于用‘==’表示。例如:
count=5;
total1=total2=0; //同时赋值给两个变量
(2)算术运算符(+,-,*,/,%,++,--)
+ 加,单目正;- 减,单目负;* 乘法;/ 除法;% 取模;
++ 自加1(++a,先自加,再赋值;a++,先赋值,再自加)
- - 自减1(- -a,先自减,再赋值;a- -,先赋值,再自减)
(3)逻辑运算符(&&,||,!)
逻辑运算符是根据表达式的值来返回“真”或“假”。非0 为真值,0 为假值。
&& 逻辑与;|| 逻辑或;! 逻辑非
(4)关系运算符(>,<,>=,<=,==,!=)
关系运算符是对两个表达式进行比较,返回一个真、假值。
> 大于,如(4>5)的值为0,(4>2)的值为1。
< 小于
>= 大于等于
<= 小于等于