附表1-2 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循环结构 |
附表1-1 ANSIC标准关键字
关键字 | 用 途 | 说 明 |
bit | 位标量声明 | 声明一个位标量或位类型的函数 |
sbit | 位标量声明 | 声明一个可位寻址变量 |
Sfr | 特殊功能寄存器声明 | 声明一个特殊功能寄存器 |
Sfr16 | 特殊功能寄存器声明 | 声明一个16位的特殊功能寄存器 |
data | 存储器类型说明 | 直接寻址的内部数据存储器 |
bdata | 存储器类型说明 | 可位寻址的内部数据存储器 |
idata | 存储器类型说明 | 间接寻址的内部数据存储器 |
pdata | 存储器类型说明 | 分页寻址的外部数据存储器 |
xdata | 存储器类型说明 | 外部数据存储器 |
code | 存储器类型说明 | 程序存储器 |
interrupt | 中断函数说明 | 定义一个中断函数 |
reentrant | 再入函数说明 | 定义一个再入函数 |
using | 寄存器组定义 | 定义芯片的工作寄存器 |
附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)
带*号的特殊功能寄存器都是可以位寻址的寄存器
符 号 | 地 址 | 注 释 |
*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位 |
附录三 运算符优先级和结合性
级 别 | 类 别 | 名 称 | 运算符 | 结合性 |
1 | 强制转换、数组、 结构、联合 | 强制类型转换 | ( ) | 右结合 |
下标 | [ ] | |||
存取结构或联合成员 | ->或. | |||
2 | 逻 辑 | 逻辑非 | ! | 左结合 |
字 位 | 按位取反 | ~ | ||
增 量 | 加一 | ++ | ||
减 量 | 减一 | -- | ||
指 针 | 取地址 | & | ||
取内容 | * | |||
算 术 | 单目减 | - | ||
长度计算 | 长度计算 | sizeof | ||
3 | 算 术 | 乘 | * | 右结合 |
除 | / | |||
取模 | % | |||
4 | 算术和指针运算 | 加 | + | |
减 | - | |||
5 | 字 位 | 左移 | << | |
右移 | >> | |||
6 | 关系 | 大于等于 | >= | |
大于 | > | |||
小于等于 | <= | |||
小于 | < | |||
7 | 恒等于 | == | ||
不等于 | != | |||
8 | 字 位 | 按位与 | & | |
9 | 按位异或 | ^ | ||
10 | 按位或 | | | ||
11 | 逻 辑 | 逻辑与 | && | 左结合 |
12 | 逻辑或 | || | ||
13 | 条 件 | 条件运算 | ?: | |
14 | 赋 值 | 赋值 | = | |
复合赋值 | Op= | |||
15 | 逗 号 | 逗号运算 | , | 右结合 |