新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机c语言教程:C51变量

单片机c语言教程:C51变量

作者:时间:2012-09-11来源:网络收藏

(1)sbit 位名=位地址

sbit P1_1 = Ox91;

这样是把位的绝对地址赋给位。同sfr一样sbit的位地址必须位于80H-FFH之间。

(2)Sbit 位名=特殊功能寄存器名^位位置

sft P1 = 0x90;

sbit P1_1 = P1 ^ 1; //先定义一个特殊功能寄存器名再指定位变量名所在的位置

当可寻址位位于特殊功能寄存器中时可采用这种方法

(3)sbit 位变量名=字节地址^位位置

sbit P1_1 = 0x90 ^ 1;

这种方法其实和2是一样的,只是把特殊功能寄存器的位址直接用常数表示。

c存储器类型中供给有一个bdata的存储器类型,这个是指可位寻址的数据存储器,位于的可位寻址区中,能将要求可位录址的数据定义为bdata,如:

unsigned char bdata ib; //在可位录址区定义ucsigned char类型的变量ib

int bdata ab[2]; //在可位寻址区定义数组ab[2],这些也称为可寻址位对象

sbit ib7=ib^7 //用关键字sbit定义位变量来独立访问可寻址位对象的其中一位

sbit ab12=ab[1]^12;

操作符^后面的位位置的最大值取决于指定的基址类型,char0-7,int0-15,long0-31。

下面我们用上一课的电路来实践一下这一课的知识。同样是做一下简单的跑马灯实验,项目名为RunLED2。程序如下:
 sfr P1 = 0x90; //这里没有使用预定义文件,
sbit P1_0 = P1 ^ 0; //而是自己定义特殊寄存器
sbit P1_7 = 0x90 ^ 7; //之前我们使用的预定义文件其实就是这个作用
sbit P1_1 = 0x91; //这里分别定义P1端口和P10,P11,P17引脚

c语言相关文章:c语言教程


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


存储器相关文章:存储器原理


尘埃粒子计数器相关文章:尘埃粒子计数器原理
激光器相关文章:激光器原理


评论


相关推荐

技术专区

关闭