⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitop.c

📁 一个流量控制仪器的源码
💻 C
字号:
/***********************************************************************************
C51 位操作函数库  BitOp.C

MCU 型号: Philips P89C668
时钟频率: 11.0592 MHz           6Clock
开发环境: Keil C51 V7.06	
开发日期: 2003.09.17
程序编写: BaoFang
	
***********************************************************************************/

/*宏uchar定义*/ 
#define uchar unsigned char


uchar code uc8Bit_value[8]={1,2,4,8,16,32,64,128};


/*******************************************************************
			测试变量某一位是否为‘1’
函数原型: uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
功能: 测试变量某一位是否为‘1’
      返回0--否
      返回1--是
变量:ucNumTest为待测试的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
{
        if( ucNumTest>> ucBitNum & 0x01 == 1 )

                return 1;

        else

                return 0;
}

/*******************************************************************
			清除某一位
函数原型: uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
功能: 清除某一位
      返回结果
变量:ucNumTest为待清除的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
{

        return ucNumTest & ~uc8Bit_value[ucBitNum];

}


/*******************************************************************
			设置某一位
函数原型: uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
功能: 设置某一位
      返回结果
变量:ucNumTest为待设置的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
{

        return ucNumTest | uc8Bit_value[ucBitNum];

}


/*******************************************************************
			取反某一位
函数原型: uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
功能: 取反某一位
      返回结果
变量:ucNumTest为待取反的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
{

        if( ucNumTest>> ucBitNum & 0x01 == 1 )

                return ucNumTest & ~uc8Bit_value[ucBitNum];

        else

                return ucNumTest | uc8Bit_value[ucBitNum];
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -