单片机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单片机printf函数~2147483647
unsigned char 无符号字符型,一字节,值域 0~255
unsigned int 无符号整型,两字节,值域 0~65535
unsigned long 无符号长整型,四字节,值域 0~4294967295
float 浮点型(都是有符号的),四字节,±1.175494E-38~±3.402823E+38
bit 位变量,一个二进制位,值域 0~1。
sbit 51 单片机特殊功能寄存器位,值域 0~1。
Sfr 51 单片机特殊功能寄存器,值域 0~255。
sfr16 51 单片机特殊功能寄存器,如 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 位二进制数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论