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

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

?? 227pm_prx.c

?? 基于nRf24L01
?? C
字號:
#include "API.h"
#include<reg52.h>

#define uchar unsigned char
//******************initializtion*******************//

//paramenters part******//

#define addr_wid 0x05//both,length of adress.
#define pld_wid	0x01//both,1~32,only ack canbe use 0 length
uchar ptx_addr[addr_wid]={0x7c,0x7c,0x7c,0x7c,0x7c};//PTX ,the free address ,the destination of the packet
uchar pipe0_addr[addr_wid]={0x7c,0x7c,0x7c,0x7c,0x7c};//PRX ,free address  which pipe0 canbe allow.
uchar static_rcv_buf[5]=0;//PTX,data buf to be transmitted.
uchar new_data=0;
uchar led[16]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x77,0x1f,0x0d,0x3d,0x4f,0x47};


sbit CE=P3^0;
sbit CSN= P1^4;
sbit SCK=  P1^7;
sbit MOSI= P1^5;
sbit MISO= P1^6;
sbit IRQ = P3^2;
sbit send_over=P0^0;
sbit recieve_over=P0^1;
sbit begin_tran=P0^2;
sbit init_over=P0^3;
//functions part********//


//****************************************************//
//function name: delay_11us();
//parameter: dull.
//function: to delay 11us,for transmiting.

 void delay_11us(void)
{uchar counter=0;
 for(;counter<5;counter++);
}	

//****************************************************//
//function name: delay_50us();
//parameter: dull.
//function: to delay 50us.

void delay_50us(void)
{
uchar counter=0;
 for(;counter<15;counter++);
}	

//****************************************************//
//function name: delay_200us();
//parameter: dull.
//function: to delay 50us.

void delay_200us(void)
{
uchar counter=0;
 for(;counter<60;counter++);
}

//****************************************************//
//function name: delay_1.5ms();
//parameter: dull.
//function: to delay 1.5ms.

void delay_1p5ms(void)
{
 uchar counter;

 for(counter=0;counter<0x2e;counter++)
    delay_50us();

}	

//****************************************************//
//function name: delay_0.5s();
//parameter: dull.
//function: to delay 1s.

void delay_0p5s(void)
{
 uchar counter1;
 uchar counter2;
 for(counter1=0;counter1<0x20;counter1++)//80*250*50=1*10^6 us
{
 for(counter2=0;counter2<0xfa;counter2++)
    delay_50us();
}
}	

//****************************************************//
//function name: delay_1s();
//parameter: dull.
//function: to delay 1s.

void delay_1s(void)
{
 uchar counter1;
 uchar counter2;
 for(counter1=0;counter1<0x50;counter1++)//80*250*50=1*10^6 us
{
 for(counter2=0;counter2<0xfa;counter2++)
    delay_50us();
}
}	

//****************************************************//
//function name: mcu_init().
//parameter: dull.
//function: to set initial condition of MCU.

void mcu_init(void)	//IO,SPI_init,CE線電平0,各燈齊閃,設定SPI工作模式,CSN線電平,CLK頻率
{
 P0=0x0f;		// led close
 CE=0;			// chip enable
 CSN=1;			// Spi disable	
 SCK=0;			// Spi clock line init high
 MOSI=1;
 MISO=1;		//NUST TO WRITE 1,THEN YOU CAN USE IT AS INPUT PIN.
 delay_0p5s();
 P0=0x00;		// led close

}

//****************************************************//
//function name: SPI_DEAL(data)
//parameter: data
//function: operation on SPI department.then return the walue in MISO reg.

uchar SPI_DEAL(uchar byte)
{
uchar bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++)   // output 8-bit
{
 MOSI = (byte & 0x80);         // output 'byte', MSB to MOSI
 byte = (byte << 1);  			// shift next bit into MSB..
 SCK = 1; 						// Set SCK high..
 byte |=MISO;       		  // capture current MISO bit
 SCK = 0;            		  // ..then set SCK low again
}
 return (byte);
}
//****************************************************//
//function name: TRAN_COMMOND(commond)
//parameter: commond,the SPI commonds such as,NOP,FLUSH_TX,FLUSH_RX,REUSE_TX_PL.
//function: to read status reg,as the last commonds,return the value in the status reg

uchar TRAN_COMMOND(uchar commond)
{
 uchar temp=0;
 CSN=0;		//命令操作使能
 temp=SPI_DEAL(commond);//發送操作命令,同時返回stature寄存器的值
 CSN=1;		//命令操作結束
 return temp;   //返回值
}

//****************************************************//
//function name: READ_REG(commond)
//parameter: reg,the register whoes value is to be read.
//function:read single byte value  of reg

uchar READ_REG(uchar commond)		//讀寄存器的值
{
 uchar temp=0;
 CSN=0;		//命令操作使能
 SPI_DEAL(commond);//發送命令,同時返回stature寄存器的值
 temp=SPI_DEAL(0);//讀取相應寄存器的值
 CSN=1;		//命令操作結束
 return temp;//返回值
}

//****************************************************//
//function name: READ_BUF(commond,buf,wid)
//parameter: commond,a special commond to read many bytes from a register.
//           buf, where is the read out bytes to be storeged.
//           wid,the length of bytes
//function: read multi values from a register.

void READ_BUF(uchar commond,uchar *buf,uchar wid)//讀rx_payload或者pipe里的地址,多字節,wid 可通過讀相應寄存器得出。
{
 uchar temp=0;
 CSN=0;//enable trans commond
 SPI_DEAL(commond);
 for(temp=0;temp<wid;temp++)//lsb first output
 {
 buf[temp]=SPI_DEAL(0);
 }
 CSN=1;//close trans
}

//****************************************************//
//function name: WRITE_REG(commond,data)
//parameter: commond,a special commond to write one byte to a register.
//           data, the value to be written.
//function: write sigle value to a register.

uchar WRITE_REG(uchar commond,uchar dat)
{
 uchar temp;
 CSN=0; 	//命令操作使能
 temp=SPI_DEAL(commond);//發送命令,同時返回stature寄存器的值
 SPI_DEAL(dat);	//write data
 CSN=1;		//命令操作結束
 return temp;   //返回值
}


//****************************************************//
//function name: WRITE_BUF(commond,buf,wid)
//parameter: commond,a special commond to write many bytes to a register.
//           buf, where is the bytes to be writen.
//           wid,the length of bytes
//function: write multi values to a register.

void WRITE_BUF(uchar commond,uchar *buf,uchar wid)//讀rx_payload或者pipe里的地址,多字節,wid 可通過讀相應寄存器得出。
{
 uchar temp=0;
 CSN=0;
 SPI_DEAL(commond);
 for(temp=0;temp<wid;temp++)//lsb first output,低字節的高位先傳送
 {
 SPI_DEAL(buf[temp]);
 }
 CSN=1;
}


//****************************************************//
//function name: RX_INIT_REG().
//parameter: dull.
//function: to set initial condition of a PRX.
void RX_INIT_REG(void)
{
WRITE_REG(W_REG+EN_AA,0x00);//only pipe 0 enabled  Auto Acknowledgment
WRITE_REG(W_REG+EN_RXADDR,0x01);//only pipe 0 enabled rx and tx
WRITE_REG(W_REG+SETUP_AW,0x03);//set Address Widths of tx and rx to be 5 byte
WRITE_REG(W_REG+SETUP_RETR,0x10);//Auto Retransmit Delay time is 500us,disable .15 times retransmission
WRITE_REG(W_REG+RF_CH,0x10);//channel frequency is 2400+(16)RF_CH MHZ
WRITE_REG(W_REG+RF_SETUP,0x0f);//2Mbit/s,0dbm,LAN gain
WRITE_BUF(W_REG+RX_ADDR_P0,pipe0_addr,addr_wid);//pipe 0 adress reset 0xE7E7E7E7E7,maybe 0x7c7c7c7c7c
WRITE_BUF(W_REG+TX_ADDR,pipe0_addr,addr_wid);// ptx address set as pipe0,when ACK enable
WRITE_REG(W_REG+RX_PW_P0,pld_wid);//Number of bytes in RX payload in data pipe 0, value of 0 is indicated of pipe no use
WRITE_REG(W_REG+CONFIG,0x7b);//disable INT of all.enable CRC with 1 byte,power down,prx
}

//****************************************************//
//function name: PRX_INIT()
//parameter: dull
//function: the PRX set of RFIC.

void PRX_INIT(void)
{
 init_over=1;
 RX_INIT_REG();
 CE=1;
 delay_0p5s();
 init_over=0;

}

//****************************************************//
//function name: STATIC_RCV_PCK()
//parameter: static buf is "static_rcv_buf"
//function: receive bytes from RFIC.

void STATIC_RCV_PCK()
{
 READ_BUF(R_RX_PAYLOAD,static_rcv_buf,pld_wid); //read data
 WRITE_REG(W_REG+STATUS,0x40);					//clear rx_dr
}
//****************************************************//
//function name: PRX_HANDLE()
//parameter: dull
//function: the PRX work plan of RFIC.

void PRX_HANDLE(void)
{
	int status=0;
	while(new_data==0)	//wait for rcv over.
		{
			status=TRAN_COMMOND(NOP);
			if(status&0x40)
				{new_data=1;}	//data is received jump out wait.
		}
	if(new_data)//recieve 
		{
			STATIC_RCV_PCK();
			new_data=0;
		}
}

//
//****the PRX will display 0~f

void main()//prx
{
 uchar num=0;

 mcu_init();
 PRX_INIT();
 new_data=0;
 //start_display();//led 0~f
 while(1)
 {
  recieve_over=0;
  PRX_HANDLE();
  P2=led[static_rcv_buf[0]];
  recieve_over=1;
  delay_0p5s();
 /*
 while(new_data==0)	//wait for rcv over.
	{
	 num=TRAN_COMMOND(NOP);
	 if(num&0x40)
	 {new_data=1;}	//data is received.
	}
////
	num=TRAN_COMMOND(NOP);//recieve
  P2=led[num&0x0f];
  num=(num>>4);
  delay_0p5s();
 P2=led[num&0x0f];
 delay_0p5s();
/////
if(new_data)
{
STATIC_RCV_PCK();
new_data=0;
WRITE_REG(W_REG+STATUS,0x40);
*/
/*
  num=TRAN_COMMOND(NOP);
  P2=led[num&0x0f];
  num=(num>>4);
  delay_0p5s();
 P2=led[num&0x0f];
 delay_0p5s();
*/
//recieve_over=1;

//}
 ///
 
 
 // recieve_over=1;
  // recieve_over=0;
  }
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩一区二区| 国产精品久久久久久久久免费桃花 | 日韩视频一区二区三区 | 日韩欧美国产三级电影视频| 国产日本欧洲亚洲| 亚洲国产wwwccc36天堂| 国产成人午夜视频| 欧美乱妇20p| 亚洲美女视频一区| 国产一区二区三区在线观看免费视频| 欧美视频一区二区三区在线观看| 国产精品成人一区二区艾草| 国产乱国产乱300精品| 欧美一级艳片视频免费观看| 亚洲一区成人在线| 91亚洲男人天堂| 国产精品天天摸av网| 狠狠色丁香九九婷婷综合五月 | 色婷婷国产精品久久包臀| 26uuu色噜噜精品一区| 婷婷丁香激情综合| 日韩天堂在线观看| 天堂av在线一区| 日本道在线观看一区二区| 国产精品免费久久久久| 国产大片一区二区| 久久新电视剧免费观看| 国产一区二区三区四| 欧美mv日韩mv| 国产精品一区在线观看乱码| 日韩欧美一级在线播放| 蜜臀99久久精品久久久久久软件| 欧美群妇大交群中文字幕| 亚洲精品视频在线看| 91在线视频播放| 成人欧美一区二区三区视频网页 | 欧美日韩视频在线一区二区| 一区二区三区中文字幕| 欧美性色aⅴ视频一区日韩精品| 一区二区三区丝袜| 日本丰满少妇一区二区三区| 一区二区三区在线观看国产| 在线观看一区二区精品视频| 亚洲国产日韩精品| 欧美日韩一二三| 日本aⅴ免费视频一区二区三区| 精品美女一区二区三区| 久久99国产精品尤物| 亚洲国产成人一区二区三区| 91在线一区二区三区| 亚洲综合在线视频| 欧美一区二区视频在线观看| 黑人精品欧美一区二区蜜桃 | 国产欧美日韩在线| 99精品视频在线观看免费| 亚洲中国最大av网站| 欧美精品一二三四| 国产一区二区女| 亚洲精品中文在线影院| 91精品一区二区三区久久久久久| 国产一区视频在线看| 亚洲欧美综合网| 91麻豆精品国产91久久久更新时间| 国内精品在线播放| 亚洲四区在线观看| 欧美一区二区三区免费大片| av一区二区三区在线| 亚洲综合丁香婷婷六月香| 欧美一区二区视频在线观看| 成人丝袜18视频在线观看| 亚洲v中文字幕| 国产精品久久久久影院| 欧美精品久久久久久久久老牛影院| 久久99精品久久久久久国产越南 | 91首页免费视频| 蜜臀久久99精品久久久久宅男 | 91首页免费视频| 免费在线观看不卡| 亚洲欧美自拍偷拍色图| 欧美一区二区三区啪啪| 91香蕉视频mp4| 国产一区二区电影| 亚洲成av人**亚洲成av**| 国产精品久久久久三级| 日韩免费性生活视频播放| 在线亚洲一区观看| 国产一区久久久| 午夜精品爽啪视频| 亚洲视频在线观看三级| 国产三级一区二区| 91 com成人网| 在线观看亚洲精品| 成人免费视频免费观看| 久久爱另类一区二区小说| 亚洲国产精品久久久久婷婷884| 国产清纯美女被跳蛋高潮一区二区久久w | 成人激情黄色小说| 精品一区二区久久久| 午夜在线成人av| 亚洲综合成人在线| 亚洲精品免费在线| 国产精品色眯眯| 久久久一区二区三区捆绑**| 欧美成人aa大片| 日韩一区二区麻豆国产| 欧美一级高清片| 日韩亚洲欧美在线| 正在播放一区二区| 欧美精品一二三| 9191久久久久久久久久久| 在线视频综合导航| 日本韩国欧美一区二区三区| www.亚洲国产| 99精品视频一区| 91啪在线观看| 色综合久久综合网| 91麻豆福利精品推荐| 97久久久精品综合88久久| 99久久精品国产一区二区三区| www.亚洲色图| 在线观看亚洲成人| 7777精品伊人久久久大香线蕉最新版| 欧美日韩精品高清| 日韩欧美自拍偷拍| 精品国产免费一区二区三区香蕉| 精品成人私密视频| 久久免费的精品国产v∧| 国产精品女人毛片| 亚洲天天做日日做天天谢日日欢| 亚洲最新在线观看| 亚洲sss视频在线视频| 日韩高清不卡一区二区三区| 美腿丝袜在线亚洲一区 | 九一九一国产精品| 粉嫩av一区二区三区粉嫩| caoporen国产精品视频| 一本色道久久综合亚洲精品按摩| 欧美三级电影网站| 337p亚洲精品色噜噜噜| 久久蜜桃一区二区| 中文字幕一区二区日韩精品绯色| 亚洲综合无码一区二区| 麻豆一区二区三区| 国产成人久久精品77777最新版本| 久久久综合视频| 中文字幕一区二区三区av| 亚洲aaa精品| 国产成人精品亚洲午夜麻豆| 色婷婷久久99综合精品jk白丝| 91精品国产色综合久久| 国产亚洲午夜高清国产拍精品| 亚洲欧美乱综合| 精品一区二区三区在线观看国产 | 亚洲一区二区不卡免费| 精品一区二区av| 99精品久久99久久久久| 欧美福利电影网| 国产精品美女久久久久久久久久久 | 视频在线观看91| 国产成人啪午夜精品网站男同| 91国产福利在线| www成人在线观看| 亚洲精品欧美专区| 狠狠网亚洲精品| 欧美美女网站色| 成人欧美一区二区三区视频网页| 日本v片在线高清不卡在线观看| 成人av高清在线| 精品欧美一区二区三区精品久久| 一区二区国产视频| 国产精品综合在线视频| 欧美老年两性高潮| 国产精品久线在线观看| 老司机精品视频在线| 欧美日韩一区二区不卡| 国产精品素人一区二区| 久久99国产精品久久99果冻传媒| 欧美性一二三区| 亚洲欧美激情一区二区| 国产精品中文有码| 日韩一区二区免费在线电影| 亚洲一本大道在线| 成人午夜av电影| 精品国产乱码久久久久久牛牛 | 洋洋成人永久网站入口| 成人短视频下载| 国产精品网站一区| 国产曰批免费观看久久久| 日韩欧美高清一区| 视频一区二区三区在线| 欧美人与性动xxxx| 一区二区久久久久| 色综合久久九月婷婷色综合| 国产精品国产三级国产| 国产成都精品91一区二区三| 久久久亚洲精品石原莉奈| 激情综合一区二区三区| 欧美一区二区三区思思人| 婷婷综合久久一区二区三区| 欧美日本视频在线|