2.png (12.98 KB, 下載次數: 39)
下載附件
2020-2-23 12:05 上傳
51hei.png (27.37 KB, 下載次數: 40)
下載附件
2020-2-23 14:15 上傳
3.png (354.05 KB, 下載次數: 29)
下載附件
2020-2-23 12:05 上傳
單片機源程序如下:
- #include "nRF24L01.h" //包含頭文件
- #include "def.h" //包含頭文件
- void Delay_1(unsigned int s) //延時函數
- {
- unsigned int i;
- for(i=0; i<s; i++);
- for(i=0; i<s; i++);
- }
- void delay(unsigned int z) //延時函數
- {
- unsigned int x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main(void) //主函數
- {
- unsigned int flag; //定義變量
- unsigned char t =0,flag_1;
- unsigned char TxBuf[20]={0}; // 數據暫存數組
- unsigned char RxBuf[20]={0};
-
- a: init_io() ; //初始化
- flag_1=0;
- flag=0; //變量清零
-
- TxBuf[0]='c'; //發送數據c
-
-
- while(1) //進入循環
- {
- //SetRX_Mode();
- if(KEY1 ==0 ) //按下按鍵
- {
- TxBuf[0]=0;
- TxBuf[1]=1; //發送01
- }
- else //按鍵沒有按下
- {
- TxBuf[0]=1;
- TxBuf[1]=1; //發送11
- }
- nRF24L01_TxPacket(TxBuf); // 發送緩沖區數據
- SetRX_Mode(); //發送完數據后設置成接收模式
- if(nRF24L01_RxPacket(RxBuf)) //如果接收緩沖區有數據
- {
- nRF24L01_TxPacket(TxBuf); // 發送緩沖區數據
- flag=0;
- flag_1=0; //變量清零
- }
- else //接收緩沖區無數據,也就是沒有接收到數據
- {
- flag++; //計時變量加
- if(flag>=80) //加到80
- flag_1=1; //變量置1
- delay(5); //計時分辨率是5ms,計80次就是80*5=400ms
- }
- if(flag_1) //如果變量為1,計時400ms,開啟報警
- for(t=0;t<20;t++) //for循環控制燈和蜂鳴器報警
- {
- LED2=~LED2;
- LED1=~LED1; //取反,達到閃爍的效果
- delay(80); //延時80ms
- if(t==19) //t加到19時
- {
- goto a; //回到while前面的a:
- flag_1=0;
- flag=0;
- }
- }
- }
- }
復制代碼
全部資料51hei下載地址:
單片機防丟程序原理圖.rar
(741.38 KB, 下載次數: 64)
2020-2-23 12:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|