这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 基础知识» 51单片机中c语言的那些事儿

共2条 1/1 1 跳转至

51单片机中c语言的那些事儿

专家
2023-10-31 14:09:22 被打赏50分(兑奖) 打赏

开发51单片机,您使用什么语言呢?不出意外的哈,90%以上的人会选择C吧。那么您知道C语言为了适应51单片机的开发,做了哪些改变吗?下面我们就聊一聊这方面的事儿。

一、有关数据类型的

1、bit

这个是为了适应51单片机的位操作而增加的关键字

2、sbit

这个是为了方便操作51单片机IO而增加的关键字,用于声明位变量

3、sfr

声明8位寄存器

4、sfr16

声明16位寄存器

二、和函数有关的关键字

1、using

指定函数使用寄存器组

2、interrupt

中断函数指定中断号

3、reenttrant

声明函数为可重入函数

三、存储类型

1、bdata

可位寻址的区域(16字节,供128bit

2、data

内部直接寻址区域(128字节地址空间)

3、idata

内部间接寻址区域(256字节地址空间)

4pdata

xdata中的一页空间(8bit间接寻址,共256字节地址空间)

5xdata

外部16bit间接寻址区域(64K字节地址空间)

5、code

代码区,存放指令以及常量的地方(64K字节地址空间)

图片1.png

四、存储模式

1small

小模式,默认使用data区空间。访问速度快,但空间小。

2compact

紧凑模式,默认使用pdata空间。

3large

大模式,默认使用xdata空间

以上设置,可以在Keil的开发环境中配置

图片2.png

声明变量时,可以使用idata,xdata,bdata,data,code关键字,来设置存储位置

图片3.png图片4.png

对于指针型变量,这个时候就一定要注意声明时使用的关键字,因为使用了不同关键字,意味着使用的不是同种类型的空间。这个时候,有数据交换、传送之类的操作,可就完全不一样了。这个懂汇编语言的,一定会很清楚。

例如以下声明:

char data * xdata p;

data *表示指针p指向的是存储在data区域的指针

xdata表示p的数据,是保存在xdata区域





关键词: 菜鸟学单片机 51单片机 c语言

院士
2023-11-02 17:57:22 打赏
2楼

学习并收藏了,谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]