keil里位域的使用方法

时间:2024-10-12 13:12:12

单片机程序经常要使用标志位来标志某个状态,而大部分单片机的开发环境都提供了位操作功能,但具体实现细节各有所异,Keil对与位操作既保持了传统语言的特性,又增加了自己独特的风格。

工具/原料

PC一台

Keil软件

使用结构体

1、结构体中使用位域是C语言的通用规范,基本上每一个合格的C编译器都应该支持,但这一方法存在一定缺陷,因为C语言并没有规定一个变量中位域的分配方向,也就是说你必须自己去保证你的程序在某个编译器中位域在某个变量中对应的具体位置。不过对于不需要跨平台编译的程序这一缺陷就显得没那么重要了。第一步:打开一个Keil工程,在其中定义一个无符号8位类型u8:typedef unsigned char u8;

keil里位域的使用方法

2、第二步:定义一个由位域构成的结构体TYPE_MY_BIT1:typedef struct{罕铞泱殳 u8 bit0:1; //第0位 u8 bit1:1; //第1位 u8 bit2:1; //第2位 u8 bit3:1; //第3位 u8 bit4:1; //第4位 u8 bit5:1; //第5位 u8 bit6:1; //第6位 u8 bit7:1; //第7位}TYPE_MY_BIT;//定义带位域的结构体

keil里位域的使用方法

3、第三步:对新类型进行测试,测试代码如下:void main(void){ TYPE_MY_BIT testBit; testBit.bit0 = 1;//给第0位赋值1}

keil里位域的使用方法

使用sbit关键字

1、Keil提供一个名为sbit的关键词,它可以将定义在可位寻址区域的变量单独分配成一个位的变量,使得操作起来非常方便。第一步:新建一个Keil工程,定义一个bdata区域的unsigned char便利,名为v:bdata unsigned char v;//定义一个可位寻址的无符号字节型变量

keil里位域的使用方法

2、第二步:将变量v的每个位通过sbit关键词赋予新的名称:sbit v_bit0 = v^0挢旗扦渌;//将v的第0位分配给v_b足毂忍珩it0sbit v_bit1 = v^1;//将v的第1位分配给v_bit1sbit v_bit2 = v^2;//将v的第2位分配给v_bit2sbit v_bit3 = v^3;//将v的第3位分配给v_bit3sbit v_bit4 = v^4;//将v的第4位分配给v_bit4sbit v_bit5 = v^5;//将v的第5位分配给v_bit5sbit v_bit6 = v^6;//将v的第6位分配给v_bit6sbit v_bit7 = v^7;//将v的第7位分配给v_bit7

keil里位域的使用方法

3、第三步:对上面的代码进行测试,比如: v_bit0 = 1;//给v的第0位赋值1,等同于v |= 0x01; v_bit3 = 0;//给v的第3位赋值0,等同于v &= ~(0x08);

keil里位域的使用方法
© 手抄报圈