- 数值类型:整型(hort,int,long)、浮点型(float,double)
- 字符类型 char
- 构造类型:数组、结构体、共用体、枚举
- 指针
- 空类型 void
数据类型 | 关键字 | 位数 | 数范围 |
无符号字符型 | unsigned char | 8 | 0~255 |
有符号字符型 | char | 8 | -128~127 |
无符号整型 | unsigned int | 16 | 0~65535 |
有符号整型 | int | 16 | -32768~32767 |
无符号长整型 | unsigned long | 32 | 0~2 32 − 1 2^{32}-1232−1 |
有符号长整型 | long | 32 | − 2 31 -2^{31}−231 ~ 2 31 − 1 2^{31}-1231−1 |
单精度浮点型 | float | 32 | 3.4e-38~3.4e38 |
双精度浮点型 | double | 64 | 1.7e-308~1.7e308 |
类型 | 长度 | 值域 | 说明 |
bit | 位 | 0/1 | 位变量声明 |
sbit | 位 | 0/1 | 特殊功能位声明 |
sfr | 8位=1字节 | 0~255 | 特殊功能寄存器声明 |
Sfr16 | 16位=2字节 | 0-65535 | Srf的16位数据声明 |
* | 1~3字节 | 对象的地址 |
示例:
sfr SCON=0x98;
sbit T1=SCON^1; # 取SCON第一位
12
3. C51运算量(1)常量
- 整型常量,如 长整型:L结尾;
- 浮点型常量
- 字符型常量:单引号定义,如'a';
- 字符串型常量:双引号定义,如: “DA”,字符串结尾处会有\0;
略……
(3)位运算符- & 按位与
- | 按位或
- ^ 按位异或
- ~ 按位取反
- << 左移
- >> 右移
表达式1, 表达式2, ……表达式n
表达式从左到右运算,返回最右边一个表达式的值。
4. 数组unsigned char x[5];
unsigned int y[3]={1,2,3};
char string1[10];
二、51 最小系统构成1. 晶振电路
晶振一般选择12M或11.0592Mhz,
- 12M更容易计算机器周期,
- 串口通讯中使用11.0592MHz更适合,在串行通信设置波特率时误差为0.
晶振起振时一瞬间会产生电感,2端加无极性旁路电容,用来消除起振电感,容量一般选择 10-33p。
复位条件:在RST/VPD引脚端出现 >=10ms时间的高电平时复位。 高电平要>=3V。
一般有两种实现方式;
- 上电复位
- 手动按键复位
上电时,电容通交流、断直流,rst会直连5V高电平。
然后电容开始充电,充电完成后,电容对直流隔断,rst通过r2连到地低电平。
按下开关时,电容放电,放电过程电容通交流,RST相当于连5V高电平。由于R1的阻值很小(有的电路设计里不用这个R1,但直接对电容短接放电可能不太好),rst也可以通过这个通路连接高电平。
3. 电源电路4. 下载电路供电脑使用USB转TTL连接电路板。这里使用CH340C芯片,它自带晶阵,芯片7、8脚是空的。
如果使用CH340G需要外接晶振。
CH340C的13、14脚要对应普中开发板下载程序使用,通过Q5三极管控制Q3MOS的通断。
当DTR高电平、RTS低电平,三极管导通,MOS会导通,VCC通电。
当DTR低电平、RTS高电平,三极管截止,Q3的G脚被R20拉低,MOS管截止,VCC没有电源。
这个电路可以在使用普中开发板的下载程序省掉冷启动的过程。