其他分享
首页 > 其他分享> > Keil C51 关键字sfr sbit相关知识

Keil C51 关键字sfr sbit相关知识

作者:互联网

读头文件的意义-20220619

 

SFR 不是标准C 语言的关键字,而是Keil 为能直接访问80C51而提供了一个新的关键词。

 

功能:

用来定义硬件寄存器地址的关键字,具有定义硬件特性。

 

举个例子:

sfr P0 =0x80;

sfr P1 = 0x90;

 

(C语言,这样就定义了51系列MCU中0x80地址,在编程时可以用P0符号代替地址0x80,具有定义硬件特性,一般在SFR的定义在头文件reg51.h或reg52.h或者stc8g.h内。

 

经过定义之后,编程的时候可以直接使用p0=0xff p1=0xff来实现控制端口IO。

 

===============================================================================================================================

在C51里,利用sbit可访问RAM中可寻址位SFR中可寻址位

如果直接写P1.0,C 编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字,比如P1_0,可是P1_0 是不是就是P1.0呢?

C编译器可不这么认为,所以必须给它们建立联系,这里使用了Keil C的关键字sbit 来定义,sbit 的用法有三种:

第一种方法:sbit 位变量名=地址值

第二种方法:sbit 位变量名=SFR 名称^变量位地址值

第三种方法:sbit 位变量名=SFR 地址值^变量位地址值

 

例如,

定义P1 中的P1.1脚可以用以下三种方法:

sbit P1_1=0x92     //(1)说明:0x92是P1.1的位地址值

sbit P1_1=P1^1     //(2)说明:其中P1必须先用sfr定义好

sbit P1_1=0x90^2    //(3)说明:0x90就是P1的地址值

 

因此这里用sfr P1_0=P1^0;就是定义用符号P1_0 来表示P1.0引脚。

————————————————
版权声明:本文为CSDN博主「Tsy.H」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42131443/article/details/112050819

标签:P1,定义,C51,Keil,SFR,sfr,地址,sbit
来源: https://www.cnblogs.com/icaowu/p/16390023.html