C51关键字及sfr寄存器

C51 编译器所支持的数据类型

数据类型 长 度 值 域
unsigned char 单字节 0~255
signed char 单字节 -128~+127
unsigned int 双字节 0~65535
signed int 双字节 -32768~+32767
unsigned long 四字节 0~4294967295
signed long 四字节 -2147483648~+2147483647
float 四字节 ±1.175494E-38~±3.402823E+38
* 1~3 字节 对象的地址
bit 0 或 1
sfr 单字节 0~255
sfr16 双字节 0~65535
sbit 0 或 1

C51 中的关键字

关键字 用 途 说 明
auto 存储种类说明 用以说明局部变量,缺省值为此
break 程序语句 退出最内层循环
case 程序语句 Switch 语句中的选择项
char 数据类型说明 单字节整型数或字符型数据
const 存储类型说明 在程序执行过程中不可更改的常量值
continue 程序语句 转向下一次循环
default 程序语句 Switch 语句中的失败选择项
do 程序语句 构成 do..while 循环结构
double 数据类型说明 双精度浮点数
else 程序语句 构成 if..else 选择结构
enum 数据类型说明 枚举
extern 存储种类说明 在其他程序模块中说明了的全局变量
flost 数据类型说明 单精度浮点数
for 程序语句 构成 for 循环结构
goto 程序语句 构成 goto 转移结构
if 程序语句 构成 if..else 选择结构
int 数据类型说明 基本整型数
long 数据类型说明 长整型数
register 存储种类说明 使用 CPU 内部寄存的变量
return 程序语句 函数返回
short 数据类型说明 短整型数
signed 数据类型说明 有符号数,二进制数据的最高位为符号位
sizeof 运算符 计算表达式或数据类型的字节数
static 存储种类说明 静态变量
struct 数据类型说明 结构类型数据
swicth 程序语句 构成 switch 选择结构
typedef 数据类型说明 重新进行数据类型定义
union 数据类型说明 联合类型数据
unsigned 数据类型说明 无符号数数据
void 数据类型说明 无类型数据
volatile 数据类型说明 该变量在程序执行中可被隐含地改变
while 程序语句 构成 while 和 do..while 循环结构

C51 编译器的扩展 ANSIC 关键字

关键字 用 途 说 明
bit 位标量声明 声明一个位标量或位类型的函数
sbit 位标量声明 声明一个可位寻址变量
Sfr 特殊功能寄存器声明 声明一个特殊功能寄存器
Sfr16 特殊功能寄存器声明 声明一个 16 位的特殊功能寄存器
data 存储器类型说明 直接寻址的内部数据存储器
bdata 存储器类型说明 可位寻址的内部数据存储器
idata 存储器类型说明 间接寻址的内部数据存储器
pdata 存储器类型说明 分页寻址的外部数据存储器
xdata 存储器类型说明 外部数据存储器
code 存储器类型说明 程序存储器
interrupt 中断函数说明 定义一个中断函数
reentrant 再入函数说明 定义一个再入函数
using 寄存器组定义 定义芯片的工作寄存器

51 特殊功能寄存器列表(适用于同一架构的芯片)

符 号 地 址 注 释
*ACC E0H 累加器
*B F0H 乘法寄存器
*PSW D0H 程序状态字
SP 81H 堆栈指针
DPL 82H 数据存储器指针低 8 位
DPH 83H 数据存储器指针高 8 位
*IE A8H 中断允许控制器
*IP D8H 中断优先控制器
*P0 80H 端口 0
*P1 90H 端口 1
*P2 A0H 端口 2
*P3 B0H 端口 3
PCON 87H 电源控制及波特率选择
*SCON 98H 串行口控制器
SBUF 99H 串行数据缓冲器
*TCON 88H 定时器控制
TMOD 89H 定时器方式选择
TL0 8AH 定时器 0 低 8 位
TL1 8BH 定时器 1 低 8 位
TH0 8CH 定时器 0 低 8 位
TH1 8DH 定时器 1 高 8 位

字符串定时时常用转义字符表

转义字符 含义 ASCII 码(16/10 进制)
\o 空字符(NULL) 00H/0
\n 换行符(LF) 0AH/10
\r 回车符(CR) 0DH/13
\t 水平制表符(HT) 09H/9
\b 退格符(BS) 08H/8
\f 换页符(FF) 0CH/12
\' 单引号 27H/39
" 双引号 22H/34
\\ 反斜杠 5CH/92