Keil C51编程基础与语法详解

需积分: 9 14 下载量 183 浏览量 更新于2024-09-16 收藏 4KB TXT 举报
"Keil C51是针对8051微控制器的C编译器,本资料主要讲解了C51的语法规则,适用于初学者快速查阅和学习。" 在C51编程中,我们需要了解以下几个关键知识点: 1. **程序存储区**(Program Area):这是存放代码的地方,通常从0000H到FFFFH,共64KB的空间。示例中的`codeseg_TAB`数组就是存放在代码段中的常量数据。 2. **内部数据存储区**(Internal Data Memory): - `data`区:这是默认的数据存储区,用于存放普通变量,如`dataa, b, c;`,其地址范围通常是00H到7FH,大小为128字节。 - `idata`区:这个区域同样位于内部RAM,但可以指定地址,如`in_buff`和`out_buff`数组。 - `bdata`区:这是可位寻址的内部RAM,如`ay_8bit`,地址范围从20H到2FH。 3. **外部数据存储区**(External Data Memory):`xdata`区用于存放需要大容量存储的变量,如`infor`数组,其地址范围从0000H到0FFFFH,总共64KB。 4. **特殊功能寄存器内存**(Special Function Register Memory):SFR是8051微控制器特有的,包含输入/输出和控制寄存器。例如,`sfr P0 = 0x80;`定义了P0口的地址为80H,而`sbit key2 = P0^2;`定义了P0口的第2位为`key2`。 5. **数据类型**:C51支持基本的数据类型,如`char`, `int`, `long`, `unsigned`, `float`等。`bit`类型用于定义位变量,只能在内部RAM的`bdata`区使用。`sfr`和`sbit`则用于定义特殊功能寄存器和其位。 6. **位操作**:可以对`bit`类型进行操作,如定义`bit`变量`b0, b1`,或者通过指针或数组访问位,如`sbit bit0 = ib^;`,`sbit arr_b07 = arr[0]^7;`。 7. **预处理指令**(Preprocessor Directives):`#define`用于定义宏,如`P8255_A`和`P8255_C`,这样可以通过宏来访问特定地址的内存,如`P8255_C = 0x45;`和`x = P8255_A;`。 以上是C51语法的基础内容,对于编写8051微控制器程序至关重要。理解这些概念和规则,将有助于编写高效且可靠的嵌入式程序。
2022-04-02 上传