基于单片机无线防丢报警器设计过程分享
目錄
【功能介紹】
【原理圖】
【PCB】
【實(shí)物圖】
【元器件清單】
【源代碼】
【模塊介紹】
【參考資料】
【參考文獻(xiàn)】
【功能介紹】
本設(shè)計利用51單片機(jī)結(jié)合NRF24L01無線模塊進(jìn)行設(shè)計,防丟器分為兩個部分,分為從機(jī)和主機(jī),即發(fā)射模塊和接收模塊,從機(jī)放在怕被丟失的物件上,而主機(jī)則攜帶在主人身上,可以實(shí)現(xiàn)兩大功能:
- 超出兩個模塊的通信距離會報警,及時通知主機(jī),防止從機(jī)丟失;
- 在兩個模塊的通信范圍內(nèi),從機(jī)不知道在哪,主機(jī)可以發(fā)起尋找。
【原理圖】
發(fā)送模塊原理圖
接收模塊原理圖
? ? ? ? ?原理圖發(fā)送模塊與接受模塊差異點(diǎn)是接收模塊少一個按鍵,其他都一樣,都有單片機(jī)最小系統(tǒng),指示燈電路,蜂鳴器電路,無線模塊,串口電路。如需詳細(xì)資料可私信作者或加微信biyezhan007
【PCB】
發(fā)送模塊
?接收模塊
【實(shí)物圖】
?
【元器件清單】
- 單片機(jī)底座*2
- 單片機(jī)*2
- 晶振*2
- 瓷片電容*4
- 電阻*4
- 電解電容*2
- 四腳按鍵*3
- 電源座*2
- LED燈*4
- DIP8底座*2
- NRF24L01模塊*2
- 蜂鳴器*2
- 三極管*2
【源代碼】
//發(fā)送端main.c#include "nRF24L01.h" //包含頭文件 #include "def.h" //包含頭文件void Delay_1(unsigned int s) //延時函數(shù) {unsigned int i;for(i=0; i<s; i++);for(i=0; i<s; i++); } void delay(unsigned int z) //延時函數(shù) {unsigned int x,y;for(x=z;x>0;x--)for(y=110;y>0;y--); }void main(void) //主函數(shù) {unsigned int flag; //定義變量unsigned char t =0,flag_1;unsigned char TxBuf[20]={0}; // 數(shù)據(jù)暫存數(shù)組unsigned char RxBuf[20]={0}; a: init_io() ; //初始化flag_1=0;flag=0; //變量清零TxBuf[0]='c'; //發(fā)送數(shù)據(jù)cwhile(1) //進(jìn)入循環(huán){//SetRX_Mode();if(KEY1 ==0 ) //按下按鍵{TxBuf[0]=0;TxBuf[1]=1; //發(fā)送01}else //按鍵沒有按下{TxBuf[0]=1;TxBuf[1]=1; //發(fā)送11}nRF24L01_TxPacket(TxBuf); // 發(fā)送緩沖區(qū)數(shù)據(jù)SetRX_Mode(); //發(fā)送完數(shù)據(jù)后設(shè)置成接收模式if(nRF24L01_RxPacket(RxBuf)) //如果接收緩沖區(qū)有數(shù)據(jù){nRF24L01_TxPacket(TxBuf); // 發(fā)送緩沖區(qū)數(shù)據(jù) flag=0;flag_1=0; //變量清零}else //接收緩沖區(qū)無數(shù)據(jù),也就是沒有接收到數(shù)據(jù){flag++; //計時變量加if(flag>=80) //加到80flag_1=1; //變量置1delay(5); //計時分辨率是5ms,計80次就是80*5=400ms}if(flag_1) //如果變量為1,計時400ms,開啟報警for(t=0;t<20;t++) //for循環(huán)控制燈和蜂鳴器報警{LED2=~LED2;LED1=~LED1; //取反,達(dá)到閃爍的效果delay(80); //延時80msif(t==19) //t加到19時{goto a; //回到while前面的a:flag_1=0;flag=0;}}} } //接收端main.c#include "reg52.h" #include "nRF24L01.h" #include "def.h"#include "delay.h" //包含頭文件uchar count_1,count_2,count_3,count,miao,fen,fen_1,fen_2,fen_3,flag_1,flag_2,flag_3; //定義全局變量void Delay_1(unsigned int s) //延時函數(shù) {unsigned int i;for(i=0; i<s; i++);for(i=0; i<s; i++); } void delay(unsigned int z) //延時函數(shù) {unsigned int x,y;for(x=z;x>0;x--)for(y=110;y>0;y--); }void main(void) //主函數(shù) {unsigned int flag,f=1000; //定義變量unsigned char t ,flag_1;unsigned char TxBuf[20]={0}; //緩沖區(qū)數(shù)據(jù)清零 unsigned char RxBuf[20]={0}; init_io() ; //初始化while(1) //進(jìn)入循環(huán){TxBuf[0] = 0;TxBuf[1] = 1; //發(fā)送數(shù)據(jù)01SetRX_Mode(); //設(shè)置接收模式if(nRF24L01_RxPacket(RxBuf)) //如果接收緩沖區(qū)有數(shù)據(jù){ nRF24L01_TxPacket(TxBuf); //發(fā)送緩沖區(qū)數(shù)據(jù)if( RxBuf[0]==0&&RxBuf[1]==1) //如果接收的數(shù)據(jù)是01{ for(t=0;t<10;t++) //控制燈和震動工作閃爍{LED1=~LED1;LED2=~LED2; //取反delay(50); //延時}}RxBuf[0]= 0;RxBuf[1] = 0x00; //接收緩沖區(qū)數(shù)據(jù)清零flag=0;flag_1=0; //變量清零}else //接收緩沖區(qū)無數(shù)據(jù){flag++; //計時開始if(flag==200) //計時到1秒(200*5ms){flag_1=1; //變量置1}delay(5); //5ms延時}if(flag_1) //如果超時沒有接收數(shù)據(jù),就開啟報警for(t=0;t<10;t++) //for循環(huán)啟動報警{LED2=~LED2; //閃爍報警delay(50); //延時if(t==9) //閃爍一個周期{flag_1=0; //變量清零,返回后再次判斷是否有信號,如無信號,繼續(xù)報警flag=0;}}} }【模塊介紹】
? ? ? ? 此次防丟器所用的無線模塊為nRF24L01,nRF24L01是由NORDIC生產(chǎn)的一款工作頻率在2.4~2.5GHzISM之間的新型單片射頻收發(fā)器件,幾乎可以連接到各種單片機(jī)芯片,并完成無線數(shù)據(jù)傳送工作,nRF24L01內(nèi)部包含的模塊分別為頻率合成器、功率放大器、晶體振蕩器與調(diào)制器,并與增強(qiáng)型的ShockBurst技術(shù)結(jié)合,可以通過SPI接口對其輸出功率、頻道選擇與協(xié)議進(jìn)行設(shè)置,因為nRF24L01有極低的工作電流,不僅功耗較低,而且處于其他低功率工作模式時,即掉電模式和待機(jī)模式下電流消耗更低,在節(jié)能設(shè)計方面占有足夠大的優(yōu)勢。
【參考資料】
【參考文獻(xiàn)】
[1]肖金球,馮翼.增強(qiáng)型51單片機(jī)與仿真技術(shù)[M].北京:清華大學(xué)出版社社,?
[2]肖金球.單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2004,17-128.?
[3]周鴻武.基于單片機(jī)的酒精濃度檢測儀設(shè)計[J].制造業(yè)自動化2012,02.?
[4]?康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)[M].高等教育出版社,2006年
[5]?康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)[M].高等教育出版社,2006年
[6]?紀(jì)宗南.單片機(jī)外圍器件使用手冊—輸入通道器件分冊[M].北京航空航天大學(xué)出版社,2005年?
[7]賈伯年.傳感器技術(shù)[M].東南大學(xué)出版社,2000年
[8]何希才.傳感器及其應(yīng)用[M].國防工業(yè)出版社,2001年
[9]鄭學(xué)堅.微型計算機(jī)原理及應(yīng)用[M].清華大學(xué)出版社,2006年
[10]張水利.?單片機(jī)原理及應(yīng)用.?黃河水利出版社,出版年:2008年8月?
[11]譚浩強(qiáng).?C程序設(shè)計.?第三版.?清華大學(xué)出版社,出版年:2005年7月
?? ? ? ?本文介紹了在設(shè)計的過程的關(guān)鍵點(diǎn),供大家參考學(xué)習(xí),如需獲取實(shí)物、或者下載鏈接失效、對其他單片機(jī)硬件設(shè)計感興趣、有不明白的或者錯誤的,可以添加徽信biyezhan007?
鄭重聲明,此文章提供給大家做參考模板,杜絕一切不良學(xué)術(shù)不良行為。
?
?????????最后說一下,如果大家對硬件和編程感興趣,可以點(diǎn)擊牛客網(wǎng)這個連接看看,是個不錯的學(xué)習(xí)網(wǎng)站,是學(xué)長推薦給我的,因為之前找工作的時候沒有太多經(jīng)驗,也不知道怎么準(zhǔn)備,去哪里搜資源,走了很多彎路,所以推薦給大家,當(dāng)初在上面大量刷題還看了好多面試經(jīng)驗等,反正上面有很多課程+刷題+面經(jīng)+求職+討論區(qū)等資源,關(guān)鍵里面的資源全部公開免費(fèi),不用花錢,希望能幫助家!????
未經(jīng)作者允許,不得抄襲轉(zhuǎn)載,轉(zhuǎn)載或有問題請私信或微信作者。
總結(jié)
以上是生活随笔為你收集整理的基于单片机无线防丢报警器设计过程分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发编程笔记之ThreadLoc
- 下一篇: 汇编软件的安装与实验一