C51语言
C51语言与标准C语言间有许多相同地方,但也有自身特点。不同的嵌入式C语言编译系统之所以与标准C语言有不同的地方,主要是由于它们所针对的硬件系统不同。对于8051单片机,目前广泛使用的是C51语言。
C51语言基本语法与标准C相同,是在标准C的基础上进行适合8051内核单片机硬件的扩展,但与标准c又有不同之处:
- 库函数不同:
例如,在标准C中,库函数printf和scanf,常用于屏幕打印和接收字符,而在C51语言中,主要用于串行口数据的收发。
- 数据类型有一定区别:
例如,8051单片机包含位操作空间和丰富的位操作指令,因此,C51语言与标准C语言相比增加了位类型。
- C51语言变量存储模式与标准C语言中变量存储模式数据不同:
标准C最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,而C51语言中变量的存储模式与8051单片机的各种存储器区紧密相关。
- 数据存储类型不同:
8051存储区可分为内部数据存储区、外部数据存储区以及程序存储区。
- 其他不同:
中断。标准C语言没有处理单片机中断的定义,而C51语言中有专门的中断函数。
头文件。C51语言头文件必须把8051单片机内部的外设硬件资源(如定时器、中断、I/O等)相应的特殊功能寄存器写入到头文件内,而标准C不用。
程序结构。由于8051单片机的硬件资源有限,它的编译系统不允许太多的程序嵌套。其次,标准C语言所具备的递归特性不被C51语言支持。
C51支持的基本数据
| 数据类型 | 位数 | 字节 | 值域 |
| signed char | 8 | 1 | -128~127 |
| unsigned char | 8 | 1 | 0~255 |
| signed int | 16 | 2 | -32768~32767 |
| unsigned int | 16 | 2 | 0~65536 |
| signed long | 32 | 4 | -32768~32767 |
| unsigned long | 32 | 4 | 0~4294967295 |
| float | 32 | 4 | -2147483648~2147483647 |
| double | 32 | 4 | +-1.75494E-38~+-3.402834E+38 |
| * | 8~24 | 1~3 | 对象指针 |
| bit | 1 | 0/1 | |
| sfr | 8 | 1 | 0~255 |
| sfr16 | 16 | 2 | 0~65536 |
| sbit | 1 | 0/1 |

C51语言是为8051单片机设计的,它在标准C的基础上增加了位类型、特殊功能寄存器等特性。与标准C不同,C51的库函数、数据类型和存储模式都有所调整,以适应单片机硬件。C51支持位运算、算术运算、关系运算、逻辑运算和赋值运算等,并有特定的中断处理和头文件使用方式。此外,C51的控制语句包括if、switch、while、do-while和for等,以及break、continue和goto语句。C51中的数组也包括一维和多维字符数组的定义和初始化。

1565

被折叠的 条评论
为什么被折叠?



