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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? nrf2401.txt

?? 用于驅(qū)動(dòng)NRF2401在shockbrust模式下的無(wú)線收發(fā)數(shù)據(jù)。
?? TXT
字號(hào):
/**********************************************************************************/
/**********************************************************************************/
// 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 2006.12.20====debug time is 2006.12.20--21
// copyright is 蘇州天銥電子  www.tianyi-dz.com
// cpu= At89S52,keilC51 compiler
// tel:13862423497  15962169748
//QQ:472230383
/**********************************************************************************/
/**********************************************************************************/
#include "reg52.h"   //晶振可以用11.0592MHZ,如果用串口的話
                     //提示:在調(diào)試程序的時(shí)候晶振用12MHZ
#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 	=P1^7;
sbit	CS		=P1^5;
sbit	Data	=P3^2;
sbit	CE		=P1^1;
//sbit	Clk2	=P1^5;
//sbit	Dout2	=P1^6;

//sbit	DR2		=P3^2;
sbit	DR1		=P1^6;
sbit	PWR_UP	=P1^0;

sbit	LED1	=P0^0;
sbit	LED2	=P0^2;
sbit	LED3	=P0^4;
sbit	LED4	=P0^6;

/*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	delay_n(uchar n);
void 	BuildShockWord(Data1);
void 	ShockBurst();
void 	CheckButtons();
void 	ReceiveShock();
void 	Inituart();
/*****************************************MAIN  START ******************************/
void main(void)
{	
	init_io();
	nRF2401_ON();
	delay_n(100);///jia////////
	BuildInitWord();
	InitnRF2401();
	Inituart();
	CE_High();
	RXEN_HIGH();
	delay_n(100);       //delay for LED light
				
    P0=0xff;				//close all LED 
    TXEN_LOW();				// set TX mode
	BuildShockWord(Data1);  
	ShockBurst();		
	delay_n(10);				// 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=0x00;
	P2=0xff;
	P3=0xff;
	P0=0xff;
/*
	P0=0Xff;
	P1=0xff;
	P2=0x00;
	P3=0xff;
	P0=0x0f;
	*/
}
/*************************************init_io    END *******************************/
void Inituart(void)
{
	TMOD = 0x20;				//timer1 working mode 1
	TL1 = 0xfd;					//f7=9600 for 16mhz Fosc,and ... 
	TH1 = 0xfd;					//...fd=19200 for 11.0592mhz Fosc
	SCON = 0xd8;				//uart mode 3,ren==1
	PCON = 0x80;				//smod=0
	TR1 = 1;					//start timer1
}
/*************************************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]=0xcc;
	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******************************/
void TxData (uchar x)
{
	SBUF=x;	
	while(TI==0);
		TI=0;

}
/*************************************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 *******************************/
/*************************************delay_n   START *****************************/	
void delay_n(uchar n)
{
	uchar  x;
	uchar  y;
	for(x=0;x<n;x++)
		{
		//for(y=0;y<100;y++)
		for(y=0;y<130;y++)/////jia
		_nop_();
		}
}
/*************************************delay_n   END *******************************/
/*************************************ShockBurst START *****************************/
void BuildShockWord(Data1)
{
	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_jia()
{
	uchar xx;
	P0=0xff;
	Temp=P0&0x0f;			//read key value from port P0
	if (Temp!=0x0f)
	{
		delay_n(10);
		Temp=P0&0x0f;			//read key value from port P0
		if (Temp!=0x0f)
		{
			xx=Temp;
			Temp=Temp<<4;
			Data1=Temp;		//put the button Data in dada package
			P0=Data1;		//Turn On the LED
			TXEN_LOW();		//set TX mode
			BuildShockWord(Data1);
			ShockBurst();
			TxData(xx);
			delay_n(500);
			P0=0xff;		//close LED display
			RXEN_HIGH();

			while((P0&0x0f)!=0x0f);
		 }
	 }
}
*/
void CheckButtons()
{
	uchar xx;
	P0=0xff;
	Temp=P0&0xaa;			//read key value from port P0
	if (Temp!=0xaa)
	{
		delay_n(10);
		Temp=P0&0xaa;			//read key value from port P0
		if (Temp!=0xaa)
		{
			xx=Temp;
			Temp=Temp>>1;
			Data1=Temp;		//put the button Data in dada package
			P0=Data1;		//Turn On the LED
			TXEN_LOW();		//set TX mode
			BuildShockWord(Data1);
			ShockBurst();
			TxData(xx);
			delay_n(500);
			P0=0xff;		//close LED display
			RXEN_HIGH();

			while((P0&0xaa)!=0xaa);
		 }
	 }
}
/************************************* CheckButtons END *********************************/
/************************************* ReceiveShock START *******************************/
/*
void ReceiveShock_jia()
{
	uchar xx;
	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
			xx=(RXData[0]>>4)&0x0f;
			TxData(xx);
			delay_n(500);
  	    	P0=0xff;
		}
	 }
}
*/
void ReceiveShock()
{
	uchar xx;
	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
			xx=RXData[0]<<1;//
			TxData(xx);
			delay_n(500);
  	    	P0=0xff;
		}
	 }
}
/************************************* ReceiveShock END *********************************/	

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品久久7777| 久久97超碰色| 久久久精品tv| 欧美性受xxxx黑人xyx性爽| 国产剧情在线观看一区二区| 亚洲一区二区欧美激情| 国产日韩精品一区| 欧美一级在线观看| 欧美网站一区二区| 成人不卡免费av| 国产做a爰片久久毛片| 午夜精品久久久久影视| 亚洲男人天堂av网| 国产欧美日韩激情| 久久新电视剧免费观看| 欧美一区二区福利在线| 欧美色欧美亚洲另类二区| 97国产精品videossex| 国产夫妻精品视频| 黄色小说综合网站| 看电影不卡的网站| 免费在线观看精品| 调教+趴+乳夹+国产+精品| 一区二区在线电影| 综合久久久久综合| 国产精品久久久久毛片软件| 国产色91在线| 久久久久97国产精华液好用吗| 精品日韩成人av| 欧美一卡二卡在线观看| 制服丝袜中文字幕亚洲| 欧美综合一区二区三区| 91看片淫黄大片一级在线观看| 福利一区福利二区| 国产乱码精品一区二区三区av| 蜜臀久久久久久久| 日本va欧美va瓶| 奇米777欧美一区二区| 日韩和欧美的一区| 日本成人超碰在线观看| 日本欧洲一区二区| 日本视频中文字幕一区二区三区| 日本欧美一区二区| 秋霞电影网一区二区| 另类的小说在线视频另类成人小视频在线 | 丝袜亚洲精品中文字幕一区| 一区二区三区在线视频免费| 一区二区在线观看免费视频播放| 亚洲美女免费视频| 亚洲一区二区三区不卡国产欧美| 亚洲成人av电影在线| 日韩av不卡一区二区| 不卡在线观看av| 91亚洲午夜精品久久久久久| 91美女片黄在线观看| 欧美性猛交xxxx乱大交退制版| 欧美视频完全免费看| 欧美一区二区三区精品| 精品国产欧美一区二区| 久久久www免费人成精品| 国产欧美一区在线| 中文字幕在线不卡一区二区三区| 亚洲主播在线播放| 日本视频一区二区三区| 国产69精品久久777的优势| 99这里只有精品| 在线看日韩精品电影| 欧美va亚洲va在线观看蝴蝶网| 欧美激情综合在线| 亚洲一区在线视频| 麻豆精品久久精品色综合| 成人黄色av网站在线| 欧美绝品在线观看成人午夜影视| 日韩欧美色综合| 最新国产成人在线观看| 日本成人在线一区| fc2成人免费人成在线观看播放| 欧美日韩国产精品自在自线| 精品粉嫩aⅴ一区二区三区四区| 国产精品美女久久久久av爽李琼 | 国产盗摄一区二区| 91国产免费观看| 精品成人一区二区三区四区| 亚洲男人的天堂在线aⅴ视频 | 91小宝寻花一区二区三区| 在线91免费看| 国产精品成人网| 久久91精品国产91久久小草| 色婷婷av一区二区三区gif| 精品久久久久久久久久久久久久久久久| 中文字幕制服丝袜成人av| 日韩av在线发布| 91老师片黄在线观看| 久久午夜电影网| 日韩电影在线看| 99久久er热在这里只有精品15| 精品国产一区二区三区av性色 | 精品久久久久久综合日本欧美| 亚洲精品国产品国语在线app| 国内精品免费在线观看| 欧美挠脚心视频网站| 中文字幕一区二区三中文字幕| 久久精品国产精品青草| 欧美丝袜丝交足nylons图片| 国产精品视频你懂的| 韩国欧美国产1区| 欧美日韩国产综合一区二区 | 午夜久久电影网| 一本高清dvd不卡在线观看| 久久久国际精品| 久久99热狠狠色一区二区| 欧美男人的天堂一二区| 亚洲美女屁股眼交| 99re这里只有精品视频首页| 久久久久国产精品麻豆 | 欧洲亚洲精品在线| 国产精品欧美经典| 国产成人在线色| 精品国产a毛片| 麻豆国产欧美日韩综合精品二区 | 老司机精品视频线观看86| 欧美日韩三级在线| 亚洲一区视频在线观看视频| 99久久精品99国产精品| 中文字幕在线免费不卡| 成人国产精品免费观看视频| 欧美激情一区二区在线| 国产经典欧美精品| 国产日韩精品一区| 国产999精品久久| 2021中文字幕一区亚洲| 久久国产免费看| 精品福利一区二区三区| 久久av资源站| 久久久久99精品国产片| 国产凹凸在线观看一区二区| 日本一区二区免费在线| 成人av在线网站| 一区二区在线观看视频| 欧美网站一区二区| 日韩一区精品字幕| 日韩三级av在线播放| 精品一区二区影视| www久久精品| 成人自拍视频在线| ㊣最新国产の精品bt伙计久久| 色域天天综合网| 亚洲一区二区不卡免费| 欧美日韩一级黄| 美女性感视频久久| 日韩欧美久久一区| 国产成人在线免费| 国产精品福利一区二区| 在线一区二区三区四区五区| 亚洲成a人片在线观看中文| 日韩精品一区国产麻豆| 国产精品一区在线观看你懂的| 国产精品视频一二三| 在线观看视频一区二区| 麻豆国产精品一区二区三区| 国产女主播一区| 欧美偷拍一区二区| 美美哒免费高清在线观看视频一区二区| 亚洲精品在线免费播放| 成人黄色一级视频| 五月天久久比比资源色| 久久久噜噜噜久久人人看| 一本大道久久a久久综合| 美国av一区二区| 国产精品久久一卡二卡| 91精品视频网| av不卡免费在线观看| 日韩中文字幕1| 欧美激情一区二区三区全黄| 欧美色爱综合网| 粉嫩嫩av羞羞动漫久久久| 一区二区国产视频| 26uuu另类欧美| 欧美性xxxxxx少妇| 国产美女在线精品| 一区二区三区免费网站| 精品久久一区二区三区| 在线观看区一区二| 国产精品一级二级三级| 五月激情六月综合| 中文字幕高清不卡| 日韩欧美一级二级三级久久久| 99精品桃花视频在线观看| 美腿丝袜亚洲一区| 亚洲美女偷拍久久| 国产日韩欧美麻豆| 6080国产精品一区二区| 91女人视频在线观看| 国产在线播放一区二区三区| 丝袜亚洲另类欧美| 亚洲激情欧美激情| 中文字幕精品一区二区三区精品 | 久久久久99精品一区| 欧美精品xxxxbbbb| 色综合久久久久久久|