wrt_cmd.c

来自「keil C51编写的的RFM01和RFM02应用程序」· C语言 代码 · 共 36 行

C
36
字号
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg52.h>
#include <intrins.h>                      	

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};	 
//extern bit SCK,SDI;                
sbit  SDI=P1^0;
sbit  SCK=P1^1;
//--------------------------------------------------------------------------------------------------
// 函数名称: WRT_CMD.c
// 入口参数: cmd
// 函数功能: SPI方式发送两个字节,在SDI上升沿逐位将数据写入
//--------------------------------------------------------------------------------------------------
unsigned int WRT_CMD(unsigned int cmd)
{ 
	unsigned char n=16;     // 向SDA上发送位数据字节,共16位 
        SCK =0;                  //时钟置低
 
	while(n--)
	{ 
            delayNOP();
            SCK = 0 ;                  //时钟置低
        if(cmd&0x8000) 			   		// 若要发送的数据最高位为1则发送位1
		{       
                  SDI = 1;    // 传送位1
		}
		else
		{  
			SDI = 0;    // 否则传送位0
		}
                delayNOP();
		cmd = cmd<<1;        // 数据左移一位
             SCK = 1 ;                  //时钟置高 
	}
	return 0;
}

⌨️ 快捷键说明

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