亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nrf2401.c

?? nrf2401的通訊設置程序
?? C
字號:
/**********************************************************************************/
/**********************************************************************************/
// The nRF2401 2.4GHz Multi Channel Software
//
// This software and any related documentation is provided "as is" without any
// warranty of any kind, either express or implied, including, without
// limitation, the implied warranties or merchantability, fitness for a
// particular purpose, and noninfringment. The entire risk arising out of use
// of this software remains with you.
// write time is 2004.3.20====debug time is 2004.3.20--21
// copyright is shenzhen.xuntong Co.Ltd
// cpu= At89lv51,keilC51 compiler
/**********************************************************************************/
/**********************************************************************************/
#include <reg51.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <intrins.h>
/**********************************************************************************/
#define uchar unsigned char 
#define uint  unsigned int

#define	Fclk	3686400
#define	BitRate	19200
#define	BRR		(Fclk/(16*Bitrate))-1

#define	timerdiv	1
#define	timerval	256-(Fclk/timerdiv)/100000			// timeout each 10us
/**********************************************************************************/
uchar 	InitData[15];
uchar 	TXData[14];
uchar 	RXData[10];

uchar 	Temp;
uchar 	BitCnt;	
uchar 	ByteCnt;
uchar 	Data1=	0xff;

bdata 	uchar 	tempi;
/**********************************************************************************/
sbit	CLK1 	=P2^0;
sbit	CS		=P2^2;
sbit	Data	=P2^3;
sbit	CE		=P2^4;
sbit	Clk2	=P2^5;
sbit	Dout2	=P2^6;

sbit	DR2		=P3^2;
sbit	DR1		=P3^3;
sbit	PWR_UP	=P3^5;

sbit	LED1	=P0^4;
sbit	LED2	=P0^5;
sbit	LED3	=P0^6;
sbit	LED4	=P0^7;

sbit 	bflag	=tempi^7;

/**********************************************************************************/
void 	init_io();
void 	nRF2401_ON();
void 	BuildInitWord();
void 	InitnRF2401();
void 	DoSPIClock();
void 	CE_High();
void 	RXEN_HIGH();
void 	TXEN_LOW();
void 	Delay10();
void 	delay100();
void 	BuildShockWord();
void 	ShockBurst();
void 	CheckButtons();
void 	ReceiveShock();

/*****************************************MAIN  START ******************************/
void main(void)
{	
	init_io();
	nRF2401_ON();
	BuildInitWord();
	InitnRF2401();
	CE_High();
	RXEN_HIGH();
    delay100();				//delay for LED light	
    P0=0xff;				//close all LED 
    TXEN_LOW();				// set TX mode
	BuildShockWord();  
	ShockBurst();		
	Delay10();				// delay for mode change
	RXEN_HIGH();	                         
	while(1)
		{
			CheckButtons(); //check if the button is pressed
			DR1=1;
			if(DR1==1)		// Check if DR1 is high (any received from nRF2401)	
				ReceiveShock();			
		}					
		
}
/*************************************Rmain      END *******************************/
/*************************************init_io   START ******************************/
void init_io()
{
	P0=0Xff;
	P1=0xff;
	P2=0x00;
	P3=0xff;
	P0=0x0f;
}
/*************************************init_io    END *******************************/
/*************************************BuildSPIWord START****************************/
void BuildInitWord()
{
	InitData[0]=0x50;		//RX receiver 2, Datalength 80bit(10 byte)
	InitData[1]=0x50;		//RX receiver 1, Datalength 80bit(10 byte)
	InitData[2]=0x00;
	InitData[3]=0xcc;
	InitData[4]=0xcc;
	InitData[5]=0xcc;
	InitData[6]=0xcc;
	InitData[7]=0x00;
	InitData[8]=0xcc; 		//RX receiver 1 address   High byte
	InitData[9]=0xcc;		//RX receiver 1 address   High byte
	InitData[10]=0xcc;		//RX receiver 1 address   Low byte
	InitData[11]=0xcc;		//RX receiver 1 address   Low byte
	//InitData[12]=0x82;	//this is for 32 bit address(Bit7-Bit2), 16bit CRC(Bit1), CRC disable(Bit0) for ES chip
	InitData[12]=0x83;		//this is for 32 bit address(Bit7-Bit2), 16bit CRC(Bit1), CRC enable(Bit0) for final chip	
	InitData[13]=0x4f;		//One receiver(Bit7), shock Mode(Bit6), Datarate(Bit5) 250K, crystal(Bit4-Bit2), RF Power(Bit1-Bit0)
	//InitData[13]=0x6f;	//One receiver(Bit7), shock Mode(Bit6), Datarate(Bit5) 1M, crystal(Bit4-Bit2), RF Power(Bit1-Bit0)
	InitData[14]=0x05;		//Channel Number(Bit7-Bit1), RX/TX mode(Bit0)
}
/*************************************BuildSPIWord END******************************/
/*************************************InitnRF2401 START******************************/		
void InitnRF2401()
{
	CE=0;						//Disable CE
	CS=1;						//Enable CS--confige mode
	for (ByteCnt=0;ByteCnt<15;ByteCnt++)
		{
		tempi=InitData[ByteCnt];
		for (BitCnt=0;BitCnt<8;BitCnt++)
			{
				if (bflag==1)	//Check if first bit is HIGH
					Data=1;		//Set Data high
				else
					Data=0;		//Set Data low
				tempi=tempi<<1;	//Left Shift to get next bit
				DoSPIClock();	//Call "DoClock" to generate a clock pulse
			}
		}
	CS=0;						//Disable CS--standby mode	
	Data=0;						//Set Data low
}
/*************************************InitnRF2401 END *******************************/
/*************************************DoSPIClock START******************************/
void DoSPIClock()
{
	CLK1=1;
	_nop_();
	_nop_();
	CLK1=0;
}	

/*************************************DoSPIClock END *******************************/
/*************************************CE_High   START ******************************/
void CE_High()
{
	CE=1;
}
/*************************************CE_High    END *******************************/
/*************************************TXEN_LOW  START ******************************
void CE_Low()
{
	CE=0;
}
*************************************CE_Low     END ********************************/
/*************************************nRF2401_ON START******************************/
void nRF2401_ON()
{
	PWR_UP=1;
}
/*************************************nRF2401_ON END *******************************/
/*************************************nRF2401_OFF START*****************************/
//void nRF2401_OFF()
//{
//	PWR_UP=0;			// Set Power_Up low	
//}
/*************************************nRF2401_OFF END ******************************/
/*************************************RXEN_HIGH START ******************************/
void RXEN_HIGH()
{
	CE=0;				//Set CE LOW		
	CS=1;				//Set CS HIGH--confige mode
	Data=1;				//Set Data HIGH
	DoSPIClock(); 		//Make one SPIClock cycle
	CS=0;				//Set CS LOW		
	CE=1;				//Set CE HIGH--active mode
}
/*************************************RXEN_HIGH  END *******************************/
/*************************************TXEN_LOW  START ******************************/		
void TXEN_LOW()
{
	CE=0;				//Set CE LOW			
	CS=1;				//Set CS HIGH--confige mode
	Data=0;				//Set Data LOW
	DoSPIClock();		//Make one SPIClock cycle
	CS=0;				//Set CS LOW		
	CE=1;				//Set CE HIGH--active mode
}

/*************************************TXEN_LOW   END *******************************/
/*************************************delay10   START ******************************/
void Delay10()
{
	uchar  x;
	uchar  y;
	for(x=0;x<10;x++)
		{
		for(y=0;y<100;y++)
		_nop_();
		}
}
/*************************************delay10    END *******************************/
/*************************************delay100   START *****************************/	
void delay100()
{
	uchar  x;
	uchar  y;
	for(x=0;x<100;x++)
		{
		for(y=0;y<100;y++)
		_nop_();
		}
}
/*************************************delay100   END *******************************/
/*************************************ShockBurst START *****************************/
void BuildShockWord()
{
	TXData[0]=0xcc;		//MSB    ;RX receiver 1 address   High byte
	TXData[1]=0xcc;		//MSB-1  ;RX receiver 1 address   High byte
	TXData[2]=0xcc;		//MSB-2  ;RX receiver 1 address   Low byte
	TXData[3]=0xcc;		//MSB-3  ;RX receiver 1 address   Low  byte
	TXData[4]=Data1;	//MSB-4  ;Data byte 9
	TXData[5]=0x02;		//MSB-5  ;Data byte 8
	TXData[6]=0x03;		//MSB-6  ;Data byte 7
	TXData[7]=0x04;		//MSB-7  ;Data byte 6
	TXData[8]=0x05;		//MSB-8  ;Data byte 5
	TXData[9]=0x06;		//MSB-9  ;Data byte 4
	TXData[10]=0x07;	//MSB-10 ;Data byte 3
	TXData[11]=0x08;	//MSB-11 ;Data byte 2
	TXData[12]=0x09;	//MSB-12 ;Data byte 1
	TXData[13]=0x10;	//MSB-13 ;Data byte 0   
}
/************************************* BuildShockWord END *******************************/
/************************************* ShockBurst   START *******************************/
void ShockBurst()
{
	CS=0;					//Pull CS low
	CE=1;					//Enable CE	active mode
	for (ByteCnt=0;ByteCnt<14;ByteCnt++)
	{
		tempi=TXData[ByteCnt];
		for (BitCnt=0;BitCnt<8;BitCnt++)
		{
			if (bflag==1)	//Check if first bit is HIGH
				Data=1;		//Set Data high
			else
				Data=0;		//Set Data low
			tempi=tempi<<1;	//Left Shift to get next bit
			DoSPIClock();
			//SendData();	//Call SendData
		}
	}
	CE=0;					//Disable CE (TX Starts!)--standby mode
	Data=0;					//Set Data low
}
/************************************* ShockBurst END ***********************************/
/************************************* SendData     START *******************************
		
void SendData()
{
	for (BitCnt=0;BitCnt<8;BitCnt++)
		{
		if (bflag==1)		//Check if first bit is HIGH
			Data=1;			//Set Data high
		else
			Data=0;			//Set Data low
		tempi=tempi<<1;		//Left Shift to get next bit
		DoSPIClock();		//Call "DoClock" to generate a clock pulse
		}
}

************************************** SendData END *************************************/
/************************************* CheckButtons START *******************************/	
void CheckButtons()
{
	P0=0xff;
	Temp=P0&0x0f;			//read key value from port P0
	if (Temp!=0x0f)
		{
			Temp=Temp<<4;
			Data1=Temp;		//put the button Data in dada package
			P0=Data1;		//Turn On the LED
			TXEN_LOW();		//set TX mode
			BuildShockWord();
			ShockBurst();
			delay100();		//delay for LED light
			RXEN_HIGH();
			P0=0xff;		//close LED display
			
		 }
}
/************************************* CheckButtons END *********************************/
/************************************* ReceiveShock START *******************************/
void ReceiveShock()
{
	Data=1;					//Set Data tri state
	Temp=0;
	for (ByteCnt=0;ByteCnt<10;ByteCnt++)
	{
		for(BitCnt=0;BitCnt<8;BitCnt++)
		{
			Temp=Temp<<1;	//shift left to receive next bit
			CLK1=1;			//set clock high
			_nop_();	
			_nop_();		//wait one clk cycle
			Data=1;
			if(Data==1)		//check if Data=high		
				Temp|=0x01;	//yes - set bit high
			CLK1=0;			//set clock low
			_nop_();		//wait one clk cycle
		}
		_nop_();
		RXData[ByteCnt]=Temp;
		DR1=1;
		if(DR1!=1)			//check if DR1 is not still high
		{		
			_nop_();
			P0=RXData[0];	//Turn On the LED
			delay100();
  	    	P0=0xff;
		}
	 }
}

/************************************* ReceiveShock END *********************************/	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av欧美精品.com| 99精品国产视频| 亚洲色图欧美偷拍| 日韩一区二区三区在线视频| 国产精品主播直播| 亚洲va国产va欧美va观看| 国产日韩欧美在线一区| 6080日韩午夜伦伦午夜伦| av在线不卡观看免费观看| 久久99久国产精品黄毛片色诱| 1000精品久久久久久久久| 精品国产乱码久久久久久蜜臀| 91精品福利在线| 北条麻妃国产九九精品视频| 久久激情五月激情| 偷拍与自拍一区| 亚洲免费观看高清完整版在线观看 | 一区二区三区在线观看国产| 精品日韩99亚洲| 51精品视频一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产成人8x视频一区二区 | www.成人在线| 国产九九视频一区二区三区| 三级久久三级久久久| 亚洲精品高清在线| 亚洲视频你懂的| 国产精品夫妻自拍| 国产亲近乱来精品视频| 精品国产3级a| 2023国产精华国产精品| 日韩免费性生活视频播放| 欧美另类一区二区三区| 在线电影国产精品| 欧美人妖巨大在线| 777午夜精品免费视频| 欧美日韩久久一区二区| 欧美优质美女网站| 在线观看亚洲成人| 精品视频在线视频| 欧美日韩国产综合一区二区 | 国产精品久99| 成人免费小视频| 亚洲视频 欧洲视频| 中文字幕亚洲欧美在线不卡| 中文字幕视频一区| 亚洲人成伊人成综合网小说| 亚洲日穴在线视频| 一区二区三区**美女毛片| 亚洲一区二区黄色| 奇米在线7777在线精品| 九色|91porny| 国产91对白在线观看九色| 不卡一区二区三区四区| 色中色一区二区| 精品视频色一区| 欧美一区二区三区成人| 精品剧情在线观看| 国产精品妹子av| 亚洲激情av在线| 日本伊人午夜精品| 国产伦精品一区二区三区在线观看| 国产一区视频导航| av电影在线观看不卡| 欧美在线小视频| 欧美丰满美乳xxx高潮www| 26uuu精品一区二区在线观看| 国产女人18毛片水真多成人如厕 | 麻豆91精品视频| 国产麻豆午夜三级精品| av欧美精品.com| 3d动漫精品啪啪1区2区免费| 精品理论电影在线| 亚洲欧美一区二区三区国产精品 | 亚洲人吸女人奶水| 日韩精品电影一区亚洲| 国产一区二区三区美女| 色婷婷综合久久久| 日韩免费一区二区三区在线播放| 国产精品国产成人国产三级| 日韩在线a电影| 国产成人丝袜美腿| 欧美日韩国产精选| 国产日韩欧美不卡| 三级不卡在线观看| va亚洲va日韩不卡在线观看| 在线成人av网站| 国产精品女同一区二区三区| 日本欧美大码aⅴ在线播放| 国产aⅴ综合色| 91麻豆精品国产91久久久久久 | 国产精品久久久一本精品| 亚洲电影第三页| 国产成人欧美日韩在线电影| 欧美综合一区二区| 中文在线一区二区| 久久成人av少妇免费| 欧美亚洲日本一区| 中文字幕不卡三区| 免费三级欧美电影| 欧美精品在线视频| 亚洲国产一二三| 国产乱码精品一区二区三 | 精品久久久久久久久久久院品网| 亚洲视频一二区| 国产激情一区二区三区四区| 欧美人xxxx| 一区二区三区蜜桃| 国产99精品国产| 精品国产凹凸成av人网站| 亚洲成人精品影院| 色综合激情久久| 国产精品国产三级国产有无不卡| 久久99精品久久久久婷婷| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久久久久久综合日本| 秋霞午夜av一区二区三区| 欧美日韩国产不卡| 一区二区三区 在线观看视频| 高清不卡在线观看av| 久久先锋影音av| 卡一卡二国产精品| 日韩亚洲电影在线| 肉色丝袜一区二区| 欧美精品vⅰdeose4hd| 亚洲韩国精品一区| 欧美在线一二三四区| 一区二区三区日韩欧美精品 | 欧美日韩亚洲综合一区二区三区| 中文字幕一区视频| 国产iv一区二区三区| 国产欧美一区二区在线| 国产精品影视在线观看| 2023国产精华国产精品| 国产一区二区不卡| 精品久久久久一区二区国产| 日本不卡中文字幕| 这里只有精品99re| 蜜臀av亚洲一区中文字幕| 91精品久久久久久久99蜜桃| 天堂久久一区二区三区| 91精品国产一区二区三区香蕉| 日韩电影免费在线看| 日韩三级免费观看| 狠狠色综合色综合网络| 欧美精品一区二区三区久久久| 精品系列免费在线观看| 精品国产免费久久| 国产精品中文字幕一区二区三区| 国产视频一区二区在线观看| 高清不卡一区二区| 一区二区三区四区五区视频在线观看| 日本国产一区二区| 午夜精品久久久久久久99水蜜桃| 制服.丝袜.亚洲.另类.中文| 久久精品久久99精品久久| 久久理论电影网| 99re这里只有精品首页| 一区二区三区高清| 日韩免费在线观看| jlzzjlzz欧美大全| 亚洲午夜久久久久久久久久久| 制服丝袜中文字幕亚洲| 国产激情一区二区三区四区| 亚洲免费av高清| 日韩欧美国产一区在线观看| 国产一区在线看| 亚洲日本护士毛茸茸| 91麻豆精品久久久久蜜臀| 国产成人自拍网| 亚洲在线视频免费观看| 精品国产乱码久久久久久蜜臀| 99久久er热在这里只有精品15 | 91精品国产福利在线观看 | 欧美群妇大交群中文字幕| 韩国三级在线一区| 亚洲人吸女人奶水| 精品国产免费人成在线观看| 99riav久久精品riav| 男人的j进女人的j一区| 国产精品日韩精品欧美在线| 在线视频欧美精品| 久久黄色级2电影| 亚洲裸体xxx| 亚洲精品一区在线观看| 日本福利一区二区| 久久99精品久久久久久动态图| 亚洲视频免费在线| 久久久综合视频| 欧美丝袜自拍制服另类| 国产成人自拍网| 蜜臂av日日欢夜夜爽一区| 亚洲精品五月天| 日韩精品一区国产麻豆| 91网站最新地址| 韩国av一区二区三区四区| 亚洲一区二区在线播放相泽| 国产精品国产三级国产有无不卡| 欧美一级在线观看| 欧亚一区二区三区|