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

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

?? nrf2401.c

?? nRF2401 2.4GHz頻段的多通道軟件。此軟件和任何相關的文件是“原樣”提供
?? 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一区二区三区免费野_久草精品视频
久久国产婷婷国产香蕉| 丁香天五香天堂综合| 久久久美女毛片| 日韩一区和二区| 成人午夜在线播放| 日本一道高清亚洲日美韩| 国产精品天干天干在观线| 91精品在线一区二区| 91日韩精品一区| 国产成人av在线影院| 蜜臀av在线播放一区二区三区 | 波多野结衣中文字幕一区二区三区| 亚洲精品美国一| 欧美zozozo| 麻豆精品新av中文字幕| 欧美色涩在线第一页| 成人永久免费视频| 黄色日韩三级电影| 香蕉影视欧美成人| 亚洲最大成人综合| 日韩一区在线免费观看| 欧美精品一区二区三区蜜桃视频| 欧美三级日韩在线| 在线一区二区三区做爰视频网站| 国产精品一区三区| 黄一区二区三区| 日本三级韩国三级欧美三级| 一区二区三区91| 亚洲卡通动漫在线| 中文字幕在线视频一区| 国产精品你懂的| 欧美激情自拍偷拍| 国产天堂亚洲国产碰碰| 欧美mv日韩mv| 日韩免费高清av| 欧美一级高清片在线观看| 欧美精品丝袜久久久中文字幕| 91官网在线观看| 欧美在线一区二区三区| 色综合久久99| 91国偷自产一区二区使用方法| 91久久一区二区| 欧美综合视频在线观看| 91国产丝袜在线播放| 欧美三级电影在线看| 欧美曰成人黄网| 欧美日韩亚洲不卡| 欧美人xxxx| 日韩欧美国产综合| 久久这里只有精品视频网| 久久久亚洲精品一区二区三区| 国产亚洲1区2区3区| 欧美国产97人人爽人人喊| 国产精品视频你懂的| 一区在线观看视频| 一区二区三区四区激情| 日韩国产高清在线| 久久国产精品第一页| 国产一区二区三区黄视频 | 91久久免费观看| 欧美性生交片4| 日韩欧美国产一区在线观看| 精品国产电影一区二区| 亚洲国产高清不卡| 亚洲自拍欧美精品| 亚洲国产成人porn| 精油按摩中文字幕久久| 国产a区久久久| 欧美在线影院一区二区| 日韩欧美国产电影| 欧美国产视频在线| 亚洲一区二区在线视频| 日韩电影在线免费看| 激情六月婷婷久久| 色噜噜久久综合| 欧美一级黄色录像| 一区二区中文字幕在线| 青青草97国产精品免费观看 | 色噜噜狠狠成人中文综合| 欧美精品少妇一区二区三区| 精品国产污网站| 成人免费在线播放视频| 日韩精品一级二级| 福利电影一区二区| 欧美日韩高清影院| 欧美国产日韩a欧美在线观看| 亚洲美女精品一区| 九九精品一区二区| 色综合久久久久网| 久久综合色一综合色88| 樱花草国产18久久久久| 激情图片小说一区| 色吊一区二区三区| 国产午夜精品一区二区三区视频| 亚洲综合在线五月| 国产在线不卡一卡二卡三卡四卡| 色婷婷国产精品久久包臀| 精品国产三级a在线观看| 亚洲午夜免费电影| 成人在线视频首页| 日韩精品一区二区三区蜜臀| 亚洲综合在线观看视频| 成人一区二区三区在线观看| 欧美日韩高清一区二区三区| 中文字幕一区日韩精品欧美| 秋霞午夜鲁丝一区二区老狼| 日本高清不卡视频| 国产精品久线观看视频| 精品一区二区日韩| 欧美精品在线观看播放| 亚洲综合久久久| 成人激情免费电影网址| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲图片自拍偷拍| 色香蕉成人二区免费| 中文一区二区完整视频在线观看 | 91蜜桃视频在线| 国产日韩欧美综合在线| 久久精品国产一区二区三区免费看| 在线观看日韩国产| 中文字幕一区在线观看视频| 国产成人免费视| 久久久久综合网| 国产在线不卡一区| 欧美精品一区二区三区久久久| 石原莉奈在线亚洲三区| 欧美日韩在线电影| 亚洲一区二区三区四区在线| 99麻豆久久久国产精品免费| 国产精品女主播av| 成人avav影音| 最新日韩在线视频| 93久久精品日日躁夜夜躁欧美| 国产精品入口麻豆九色| 成人免费高清视频| 中文一区在线播放| 成人av在线看| 亚洲欧美日韩一区| 91蝌蚪porny成人天涯| 亚洲精品视频在线观看网站| 91麻豆自制传媒国产之光| 中文字幕一区二区不卡| 91免费看视频| 亚洲一区欧美一区| 欧美日韩国产一二三| 午夜欧美电影在线观看| 欧美日韩电影一区| 青娱乐精品在线视频| 日韩精品一区二区三区四区| 国产最新精品精品你懂的| 国产视频一区二区在线| 国产成人精品综合在线观看 | 日韩和的一区二区| 欧美一区二区三区在| 久久精品国产99| 久久久综合精品| 9i在线看片成人免费| 亚洲最快最全在线视频| 欧美高清性hdvideosex| 韩日欧美一区二区三区| 国产精品国产三级国产普通话三级| 91美女福利视频| 免费观看成人av| 中文字幕精品三区| 欧美在线观看视频在线| 理论电影国产精品| 欧美国产视频在线| 欧美吞精做爰啪啪高潮| 麻豆一区二区在线| 亚洲国产成人午夜在线一区| 在线一区二区三区四区五区| 免费在线观看不卡| 中文字幕日韩一区| 日韩一级在线观看| 成人福利视频网站| 偷拍与自拍一区| 国产清纯白嫩初高生在线观看91 | 亚洲成人免费观看| 精品国产91久久久久久久妲己| 99久久久久久| 久久se这里有精品| 亚洲欧美日韩国产成人精品影院| 欧美一区二区三区日韩| 99久久精品国产毛片| 蜜臀久久99精品久久久久久9| 国产精品视频第一区| 欧美精品一二三区| 99久久精品一区二区| 久久国产精品99久久久久久老狼| 亚洲精品日韩专区silk| 久久免费国产精品 | 国产欧美中文在线| 欧美亚一区二区| 成人在线综合网站| 日本欧美一区二区三区乱码| 亚洲人吸女人奶水| 精品国产sm最大网站免费看| 欧美图片一区二区三区| 99久久久久久| 国产激情偷乱视频一区二区三区|