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

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

?? code.c

?? nRF905無線FSK芯片在51單片機上工作的代碼
?? C
字號:
/*******************************************************************************************
科創四第15小組FSK通信控制程序

此乃連著本地主系統的模塊的控制程序
/*******************************************************************************************/
#include <reg51.h>
#include <intrins.h>
#include <absacc.h>
#include "set.h"

#define SB 16 //sent bytes	一個數據包里的payload字節數

sbit retest=P2^0;
int trsec;
uchar jj=0;
uchar r_flag=1;// flag of receiving	指示芯片處于接受狀態的flag
uchar retrieving_flag=0;  //高則指示單片機從芯片取數據的那段時間

code RFConfig RxTxConf =
{
 10,
 0x01,
 0x2c, 
 0x44, 
 0x10, 
 0x10, 
 0xcc, 0xcc, 0xcc,0xcc,    // 4 bytes address
 0x5c 
};
// The content of this struct is nRF905's initialize data.初始化數據
// CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
// RX TX Payload Width is SB Bytes;Disable Extern Clock;Fosc=16MHZ
// 8 Bits CRC And enable

//四個按鍵對應的動作
Key1()//
{
	  trsec	= 410;
}
Key2()//
{	  uchar i,flag=1;

 CSN=0;PB8255=PB;
	SpiWrite(RC);
  for (i=0;i<10;i++) // Write configration words  寫放配置字
 {
  temp.buf[i]=SpiRead();
 }
 CSN=1;	PB8255=PB;
 for(i=0;i<10;i++)
 {
 	if ( temp.buf[i] == RxTxConf.buf[i]) flag++;
 }
 sec_dis=flag;
}
Key3()//
{  
		int i;
		for(i=0;i<SB;i++)
		TxBuf[i]=i+1;
  		SetTxMode(); // Set Tx Mode
		//for (i=0;i<SB;i++) TxData(TxBuf[i]);
		Delay(100);
		
      	TxPacket();    // Transmit Tx buffer data
		SetRxMode();
   
}
Key4()//

{ 	   
		trsec	= 0;  SetRxMode();
}


/*
void Resend(void)
{
	int i;
	SetTxMode();
	for(i=0;i<SB;i++)
	TxBuf[i]=RxBuf[i];
	TxPacket();
	 
}  */
/**** T0時鐘中斷服務程序
	在本例中,每5ms被執行一次
*****/

timer0() interrupt 1 using 0         
{
//EA=0;
	int i;
	/* 重新對計數器賦初值,并啟動定時計數 */
	TH0=V_TH0;
    TL0=V_TL0;
    TR0=1;
    
    if(p_counter<30) p_counter++;

	/* 檢測到按鍵被按下(0)時,相應的指示燈亮(0) */
	if (KEY1==0)
	{if (p_counter==30)  {p_counter=0;Key1();} }
	if (KEY2==0) 
	{if (p_counter==30)  {p_counter=0;Key2();} }
	if (KEY3==0) 
    {if (p_counter==30)  {p_counter=0;Key3();} }
	if (KEY4==0) 
	{if (p_counter==30)  {p_counter=0;Key4();} }
				
		//the next section is about display
	Display();

//	if(r_flag>0) r_flag--;

/*	if(trsec>0)
	{
		if (trsec%400==0)
		{ SetTxMode();
		for(i=0;i<SB;i++)
		TxBuf[i]=trsec/400;
		TxPacket();
		SetRxMode();
		}
		trsec--;
	}  */


	if(trsec>0 && (!retrieving_flag))
	{
		if (trsec%180==0)
		{ 
			SetTxMode();
			for(i=0;i<SB;i++)
			TxBuf[i]=jj;
			jj++;
			if(jj>15) jj=0;
			TxPacket();
			SetRxMode();
		}
		trsec--;
		if (trsec==0) trsec=200;
	}

		  if(s_break>0)
		  {
		  	s_break--;
			if (s_break<10) time_up=1;
		  }
	
		// EA=1;
}

/*******************************************************************************************/
void main()
{

    SCON=0x50;  //模式1
    TMOD=0x21;  //定時模式2
    IE=0x90;

    //=====9600=======設置串口通訊寄存器
    PCON=0x00;   //波特率9600BPS,晶振11.0592MHZ
    TH1=0xFD;  //
    TL1=0xFD;  //計數器初值
	TH0=V_TH0;	  //5ms		鍵盤顯示中斷
    TL0=V_TL0;


	// 8255初始化 
    RST8255=0;
	COM8255=0x81;
    //================NRF905初始化
 CSN=1;      // Spi  disable      
 SCK=0;      // Spi clock line init high
 DR=1;      // Init DR for input
 AM=1; 
// TEST=1;
      // Init AM for input
 PWR_UP=1;     // nRF905 power on
 TRX_CE=0;     // Set nRF905 in standby mode
 TX_EN=0;     // set radio in Rx mode 
 ///////////////////////////////////////////
    TI = 0;//串行中斷標志位清零
    TR1 = 1;//打開計數器1 
	TR0 = 1;//開計數器0
	ET0=1;		  //允許計數器T0中斷
	PB8255=PB;



	trsec=0;
 //================
 Config905();    // Config nRF905 module

 
 SetRxMode();    // Set nRF905 in Rx mode
 retest=0; 
while(1)
{
	  
         //=====================等待NRF905接收
	
    if (r_flag && DR)   // Ifr recive data ready...
   {//Delay(500); 
   //if(DR)
   //retest=1;
   retest=1;
   r_flag=0;
   retrieving_flag=1;
   RxPacket();   // ... recive data
	fir_dis = RxBuf[1]; //jsq++;	 
	sec_dis = RxBuf[2];
	thi_dis = RxBuf[3];
	for_dis	= jsq;if (jsq<15)jsq++; else jsq=0;
	
/*	Delay(10000);
	Delay(10000);
	Delay(10000);
	retest=0;
	Resend(); */
		 
//	Config905();
	SetRxMode();
//	Delay(1000);
	retrieving_flag=0;
	 r_flag=1;
	
	}  
   
   
   if(ready2send||time_up)
	{
		SetTxMode(); 
	
		Delay(100);
		
      	TxPacket();   
		SetRxMode();
		ready2send=0;
		time_up=0;
	}  //=====================


}
}

/*******************************************************************************************/

/*******************************************************************************************/
//function Config905();
/*******************************************************************************************/
void Config905(void)
{
 uchar i,flag=1;    
 CSN=0;  PB8255=PB;    // Spi enable for write a spi command
 SpiWrite(WC);    // Write config command寫放配置命令
 for (i=0;i<RxTxConf.n;i++) // Write configration words  寫放配置字
 {
  SpiWrite(RxTxConf.buf[i]);
 }
 CSN=1;  PB8255=PB;    // Disable Spi



 CSN=0;PB8255=PB;
	SpiWrite(RC);
  for (i=0;i<RxTxConf.n;i++) // Write configration words  寫放配置字
 {
  temp.buf[i]=SpiRead();
 }
 CSN=1;	PB8255=PB;
 for(i=0;i<RxTxConf.n;i++)
 {
 	if ( temp.buf[i] == RxTxConf.buf[i]) flag++;
 }
 fir_dis=flag;
 if(flag!=11)
 Config905();
}

/*******************************************************************************************/
void FixConfig(void)	//fix the configuration command if it goes wrong
{
 uchar i,flag=1;
 TRX_CE=0;PB8255=PB;Delay(100);
 CSN=0;	PB8255=PB;
SpiWrite(RC);
  for (i=0;i<RxTxConf.n;i++) // Write configration words  寫放配置字
 {
  temp.buf[i]=SpiRead();
 }
 CSN=1;	PB8255=PB;
 for(i=0;i<RxTxConf.n;i++)
 {
 	if ( temp.buf[i] == RxTxConf.buf[i]) flag++;
 }
 if (flag!=(RxTxConf.n+1))
 {
 for_dis=10;

 	TRX_CE=0;PB8255=PB;Delay(100);

	Config905();


 }
}
/*******************************************************************************************/

//function SpiWrite();

/*******************************************************************************************/
//function TxPacket();
/*******************************************************************************************/
void TxPacket(void)
{
 uchar i;
 TRX_CE=0;
 //Config905();    
 CSN=0;    PB8255=PB;  // Spi enable for write a spi command 
 SpiWrite(WTP);    // Write payload command
 for (i=0;i<SB;i++)
 {
  SpiWrite(TxBuf[i]);  // Write 32 bytes Tx data
 }
 CSN=1;    PB8255=PB;  // Spi disable      
 Delay(1);
 CSN=0;   PB8255=PB;   // Spi enable for write a spi command 
 SpiWrite(WTA);    // Write address command
 for (i=0;i<(RxTxConf.n-6);i++)   // Write 4 bytes address
 {
  SpiWrite(RxTxConf.buf[i+5]);
 } 
 CSN=1;      // Spi disable
 TRX_CE=1;  PB8255=PB;   // Set TRX_CE high,start Tx data transmission
 Delay(1000);     // while (DR!=1);
 TRX_CE=0;  PB8255=PB;   // Set TRX_CE low
}
/*******************************************************************************************/
//function RxPacket();
/*******************************************************************************************/
void RxPacket(void)
{
 uchar i; 
 TRX_CE=0;  PB8255=PB;    // Set nRF905 in standby mode 
 Delay(100);
 CSN=0;   PB8255=PB;   // Spi enable for write a spi command
 SpiWrite(RRP);    // Read payload command 
 for (i=0;i<SB;i++)
 {
  RxBuf[i]=SpiRead();  // Read data and save to buffer  
 }
 CSN=1;   PB8255=PB;   // Disable spi
 while(DR||AM) _nop_(); 
 //P0= RxBuf[0];    // Buffer[0] output from P0 port...
 TRX_CE=1;	 PB8255=PB;
/* if (!(RxBuf[0]==0&&RxBuf[1]==0)  )
  for (i=0;i<SB;i++)
 {
  TmpBuf[i]=RxBuf[i];  // Read data and save to buffer  
 }	 */
 //xx=(RxBuf[0]>>4)&0x0f;
 for (i=0;i<SB;i++) TxData(RxBuf[i]);
   
}
/*******************************************************************************************/
//function SetTxMode();
/*******************************************************************************************/
void SetTxMode(void)    
{ 
 TX_EN=1;
 TRX_CE=0; PB8255=PB;
 Delay(100);      // delay for mode change(>=650us)
 r_flag=0;
}    
/*******************************************************************************************/
//function SetRxMode();
/*******************************************************************************************/
void SetRxMode(void)
{

TRX_CE=0;  PB8255=PB;
Delay(100);
Config905();
//FixConfig();
Delay(100);
 TX_EN=0;
 TRX_CE=1;	PB8255=PB;
 Delay(100);      // delay for mode change(>=650us)  
  r_flag=1;  
 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看中文| www激情久久| 欧美精品一区二区精品网| 中文字幕日韩一区| 久久精工是国产品牌吗| 欧美在线观看视频一区二区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲一区二区黄色| 成人黄色a**站在线观看| 欧美一区二区三区不卡| 亚洲夂夂婷婷色拍ww47| 成人午夜视频在线观看| 精品国产麻豆免费人成网站| 亚洲成av人**亚洲成av**| a在线播放不卡| 国产偷v国产偷v亚洲高清| 久久av中文字幕片| 欧美精品日韩精品| 亚洲精品精品亚洲| 91婷婷韩国欧美一区二区| 中文字幕欧美激情| 国产成人在线网站| 欧美videossexotv100| 日本不卡一区二区| 欧美日韩一区三区| 午夜视频一区二区| 欧美日韩一级视频| 亚洲一区视频在线| 欧美日韩一区二区三区免费看| 中文字幕日韩av资源站| 国产91精品在线观看| 国产欧美精品国产国产专区| 国产一区二区三区免费在线观看| 日韩一级片在线观看| 日本伊人午夜精品| 日韩精品一区二区三区在线观看| 三级一区在线视频先锋| 欧美一区二区成人| 蜜桃视频一区二区| 亚洲精品一区二区三区精华液| 精品一区二区三区久久久| 日韩精品资源二区在线| 国产一区二区成人久久免费影院| 久久久亚洲精品一区二区三区| 国产老妇另类xxxxx| 中文字幕av一区二区三区免费看 | 精品国产免费视频| 国产一区二区三区| 中文字幕av一区 二区| 成人精品亚洲人成在线| 亚洲欧美另类图片小说| 欧美色图片你懂的| 毛片一区二区三区| 国产清纯白嫩初高生在线观看91| 成人午夜在线免费| 亚洲国产精品人人做人人爽| 91精品国产一区二区三区蜜臀| 精品一区二区三区视频在线观看 | 国产精品成人在线观看| 色噜噜狠狠一区二区三区果冻| 午夜影院久久久| 久久夜色精品国产噜噜av| 成人精品国产免费网站| 偷拍一区二区三区| 国产亚洲一区二区在线观看| 99久久精品免费观看| 日本网站在线观看一区二区三区| 久久久99久久| 欧美精品久久久久久久多人混战 | 一区二区三区在线视频观看58| 欧美男同性恋视频网站| 韩国一区二区在线观看| 亚洲精品成人悠悠色影视| 精品sm在线观看| 欧美在线观看一区二区| 国产风韵犹存在线视精品| 亚洲午夜久久久久久久久电影网 | 激情六月婷婷久久| 亚洲影视资源网| 久久久久成人黄色影片| 在线欧美日韩精品| 成人精品视频一区二区三区尤物| 三级精品在线观看| 亚洲免费观看高清在线观看| 精品国产91亚洲一区二区三区婷婷| 色综合中文字幕| 国产不卡视频在线播放| 免费在线观看不卡| 性感美女极品91精品| 亚洲国产成人一区二区三区| 日韩精品一区二区三区老鸭窝| 一本大道久久精品懂色aⅴ| 国产成人免费高清| 国产一区二区三区不卡在线观看| 天堂精品中文字幕在线| 日韩一区日韩二区| 中文字幕精品一区| 久久精品日韩一区二区三区| 日韩一区二区三区精品视频| 欧洲亚洲国产日韩| 91在线国产观看| a级高清视频欧美日韩| 国产成人aaa| 韩国三级中文字幕hd久久精品| 天天做天天摸天天爽国产一区| 亚洲激情第一区| 中文字幕在线免费不卡| 久久久亚洲国产美女国产盗摄| 日韩精品一区二区三区三区免费| 91超碰这里只有精品国产| 欧美日韩一区二区三区视频| 色综合久久久久网| 日本精品一级二级| 欧美在线制服丝袜| 欧美日韩和欧美的一区二区| 欧洲色大大久久| 欧美无砖专区一中文字| 欧美日韩视频在线一区二区| 欧美亚洲日本一区| 欧美日韩黄色一区二区| 6080亚洲精品一区二区| 欧美日韩精品一二三区| 91精品国产一区二区三区| 日韩一区二区三区电影| 精品国产91洋老外米糕| 中文无字幕一区二区三区 | 国产在线国偷精品产拍免费yy| 男女男精品视频| 黄页网站大全一区二区| 国产精品一级二级三级| av网站免费线看精品| 欧美自拍偷拍午夜视频| 欧美日韩国产高清一区二区| 日韩午夜电影av| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲在线免费播放| 日韩国产精品91| 国产一本一道久久香蕉| 91在线观看成人| 欧美高清视频在线高清观看mv色露露十八 | 91福利国产成人精品照片| 欧美日韩在线综合| 日韩欧美第一区| 综合中文字幕亚洲| 天堂成人国产精品一区| 精品无码三级在线观看视频| 成人h精品动漫一区二区三区| 91激情五月电影| 日韩美女主播在线视频一区二区三区 | 亚洲乱码国产乱码精品精可以看 | 欧美一区二区三区婷婷月色| 久久久久久久久久电影| 一区二区三区在线视频免费| 另类调教123区| 色呦呦国产精品| 日韩精品中文字幕在线一区| 国产精品美女久久久久aⅴ| 亚洲成人黄色影院| 成人精品视频一区二区三区| 欧美区视频在线观看| 国产精品乱码一区二三区小蝌蚪| 婷婷久久综合九色综合伊人色| 国产成a人无v码亚洲福利| 欧美日韩1234| 中文字幕日韩一区| 国产一区二区毛片| 欧美日本乱大交xxxxx| 国产日韩v精品一区二区| 日本欧美加勒比视频| 99久久伊人久久99| 久久综合中文字幕| 五月天亚洲精品| 日韩一区二区麻豆国产| 亚洲美女淫视频| 国产91丝袜在线18| 精品噜噜噜噜久久久久久久久试看 | 久久久久成人黄色影片| 日日夜夜免费精品| 在线观看一区二区精品视频| 国产精品久久久久久一区二区三区| 人人狠狠综合久久亚洲| 欧美亚洲免费在线一区| 中文字幕在线视频一区| 国产一区二区在线观看免费| 日韩一二三四区| 日韩av电影一区| 欧美日韩中字一区| 亚洲国产欧美一区二区三区丁香婷| 国产成a人亚洲精品| 久久九九国产精品| 国产精品123| 久久嫩草精品久久久精品| 精品一区二区在线看| 日韩三级av在线播放| 日韩极品在线观看| 在线播放91灌醉迷j高跟美女| 午夜伦欧美伦电影理论片| 欧美日韩在线免费视频| 亚洲午夜精品久久久久久久久| 日本丰满少妇一区二区三区|