51单片机学习笔记4 C51语言

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

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
  • 定义:临时变量只能定义在代码块的最开始,即”{“后面,且变量定义前不能有非定义语句。因为Keil能够在编译时就比较好确定栈内存,如果超过限定内存会报编译错误。(此处基于C89规范,C99没有此限制。)
  • 申明:如果外部文件需要使用全局变量,使用extern来限定。
  • 初始化:全局变量和局部变量,如果没有指定初始化值,默认为0。
  • bit:位类型,bit指定的变量可以直接按拉寻址,所以需要特殊的内存匹配&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunai8297

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值