基于無線溫度控制系統硬件介紹:
0.png (419.41 KB, 下載次數: 110)
下載附件
2017-12-7 23:50 上傳
該設計采用51單片機STC89C52控制DS18B20實現的無線溫度控制系統。通過簡單的無線通信協議,實現可靠性與功耗平衡。該系統能實現對溫度的測量,同時還可以進行溫度的設定,是可以實現遠程控制的無線溫度控制系統。無線傳輸采用nRF24L01模塊傳輸。 該硬件電路設計主要分為三部分:主機和從機以及語音模塊。 具體如下: 從機:由溫度傳感器DS18B20,STC89C52單片機和nRF24L01無線射頻模塊,以及LCD1602液晶顯示模塊和驅動模塊、繼電器等組成。 主機:由STC89C52單片機,nRF24L01無線射頻模塊,LCD12864液晶模塊、電源穩壓等組成。 語音模塊:主要基于ISD1720設計,外接揚聲器。
無線溫度控制原理圖與pcb(包含主機從機和ISD1720語音模塊):
0.png (55.94 KB, 下載次數: 116)
下載附件
2017-12-7 23:34 上傳
0.png (48.98 KB, 下載次數: 129)
下載附件
2017-12-7 23:33 上傳
0.png (33.91 KB, 下載次數: 106)
下載附件
2017-12-7 23:34 上傳
無線領域的總結,1、注意微機之間的通信,2、選擇接受通道,3、設置工作通道頻率
4、接收通道選擇和發送通道相同有效數據寬度5、發射速率、功耗功能設置
6、CRC使能,16位CRC校驗,上電,模式選擇
單片機源程序如下(部分內容預覽):
- //軟件調試第三個問題,ISD1720有二種工作模式,SPI模式,也就是用單片機直接控制,
- //獨立按鍵模式,直接用其外圍按鍵控制,剛做好硬件發現獨立按鍵模式工作不正常,
- //所以選擇SPI模式。對ISD1720定點錄好音后發現并不能實現連續放音,剛開始考慮到
- //可能是指令發送后1720沒有足夠的時間完成就收到了第二條指令才導致放音不連續,
- //于是考慮用延時,延時后發現可以把定點錄的音都播放出來,但是各段語音之間有停頓
- //不能實現無縫播放,語音聽起來很生硬,于是繼續查看芯片數據手冊,對這一點并沒有介紹,
- //于是上網查SPI1720調試心得,發現ISD1720內部有先進先出數據緩沖器,FIFO是英文First
- //In First Out 的縮寫,是一種先進先出的數據緩存器,這是一種傳統的按序執行方法,
- //先進入的指令先完成并引退,跟著才執行第二條指令,并且ISD1720狀態寄存器第四位INT作用
- //是當一個操作完成后被置1,可被CLR_INT清除。當發送一次定點播放命令后,不斷地讀狀態寄
- //存器,判斷INT位是否為1,若不是繼續讀狀態寄存器,再判讀,當INT為1時,用CLR_INT清楚,
- //緊接著發送第二條定點播放指令,至此實現了定點語音的無縫播放
- if(temperature ==tempwant )
- {
- TxBuf[1] =0x07;//當溫度相同時,自動發送停止降溫或加熱指令
- tf = 1 ;
- }
- if(tf ==1 )
- {
- TX_Mode(TxBuf);
- delay_ms(20);
- TX_Mode(TxBuf);
- delay_ms(20);
- TX_Mode(TxBuf);//采用連發,為的是擔心從機工作在發送模式,而接不到指令
- delay_ms(20);
- Check_ACK(1); // 等待發送完畢,清除TX FIFO
- tf = 0 ; //自動跳出發射狀態
- delay_ms(100);
- RX_Mode(); // 設置為接收模式
- }
- }
- //軟件調試第二個問題,當調試NRF24L01通信時發現程序多次進入進入死循環,經查資料發現,
- //NRF24L01不能同時工作在發送接收二種狀態,因為它是半雙工通信。雖然可以收也可以發,
- //但是收的時候不能發,發的時候不能收,這種通信方式可以實現雙向的通信,但不能在
- //兩個方向上同時進行,必須輪流交替地進行。也就是說,通信信道的每一段都可以是發送端,
- //也可以是接收端。但同一時刻里,信息只能有一個傳輸方向。
- /**************************************************
- 函數:main()
- 描述:
- 主函數
- /**************************************************/
- void main(void)
- {
- init();//初始化液晶
- pitcure(table_t);//開機圖片
- delay(1000);
- SID_Init();//ISD1720初始化
- delay(500);
- ISD_set_play(0X7E,0X00,0X9E,0X00);//播放開機音樂
- ISD_set_play(0X6D,0X00,0X6D,0X00);
- //軟件調試第四個問題:開機音樂不能實現正常播放,當下載程序的時候,
- //開機音樂正常播放,斷電后再接通,開機音樂不播放,其中有一個細節性的問題,
- //就是下載程序時ISD1720有足夠的時間初始化,由于再錄音的時候使用了定點刪除,
- //導致錄音沒有遵從1720內部環形存儲體系,導致1720自檢需要很長的時間,
- //改進辦法:當接通電源后,在1720開機音樂定點播放命令前面放入開機圖片,
- //以此代替延時,使1720初始化完全后再給其發送開機音樂定點播放命令。
- write_com(0x01);//清屏
- init_io(); // NRF24L01初始化IO
- TX_Mode(); // 設置為發射模式
- RX_Mode();
- while(1)
- {
- display();
- display_state();
- key(); // 按鍵掃描
- if(tf ==0 )
- {
- sta = SPI_Read(STATUS); // 讀狀態寄存器
- //if(RX_DR) 判斷是否接受到數據
- SPI_Read_Buf(RD_RX_PLOAD, RxBuf, TX_PLOAD_WIDTH);
- // 從RX FIFO讀出數據
- SPI_RW_Reg(WRITE_REG + STATUS, sta); //接收到數據后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標志
- }
- }
- }
復制代碼
函數:FS()
軟件調試第二個問題,當調試NRF24L01時發現程序多次進入進入死循環,它是半雙工通信。雖然可以收也可以發,但是收的時候不能發,發的時候不能收,這種通信方式可以實現雙向的通信,但不能在兩個方向上同時進行,必須輪流交替地進行。也就是說,通信信道的每一段都可以是發送端,也可以是接收端。但同一時刻里,信息只能有一個傳輸方向。在此設置
主機軟件
② 源程序
無線溫度控制主機程序,包括三大模塊,12864,NRF24L01,ISD1720,此程序在調試時出現三大難題,一:NRF24L01是單收單發行器件,不能同時工作在既發射有接收狀態,為此必須做以下調整,主機:一直工作在接受狀態,當有按鍵被按下時進入發射狀態,同時停止接受,當發射結束后,自動跳出,進入接受狀態;
從機:用標志位循環工作在發射接受狀態,當發射結束后,自動定義標志位使其進入接受狀態,然后再跳出接收狀態,進入發射狀態,如此循環。二:在isd1720定點播放時要想實現無縫連接需要讀狀態寄存器,判斷ISD1720返回的信號是否上一個指令已經完成,每次定點錄音后1720會自動在語音結尾加EOM標志,所以錄音時不應全部錄完然后再查找所需要的語音,應單個錄音,三:應調試發現ISD1720反應比較慢所以要想實現開機音樂必須在主程序中加3秒延時,使語音芯片有足夠的時間初始化,等待SPI指令的到來。
經驗及教訓:1、學習一個新型原器件時應該反復琢磨芯片使用說明書,查看別人的學習新的體會,2、其中重要的是狀態寄存器和微機之間的通信,3、單片機高電平時輸出電流小于10個ma,低電平時大概為30~40MA,NRF24L01正常工作單片機輸出電流應小于10個MA,否則容易燒毀模塊,一般采用2K電阻限流。待續
軟件介紹: 無線溫度控制主機程序,包括三大模塊,12864,NRF24L01,ISD1720。此程序在調試時出現三大難題。 1、NRF24L01是單收單發行器件,不能同時工作在既發射有接收狀態。為此必須做以下調整主機,一直工作在接受狀態。當有按鍵被按下時進入發射狀態,同時停止接受,當發射結束后,自動跳出,進入接受狀態。從機用標志位循環工作在發射接受狀態,當發射結束后,自動定義標志位使其進入接受狀態,然后再跳出接收狀態,進入發射狀態,如此循環。 2、在isd1720定點播放時要想實現無縫連接需要讀狀態寄存器,判斷ISD1720返回的信號是否上一個指令已經完成,每次定點錄音后1720會自動在語音結尾加EOM標志,所以錄音時不應全部錄完然后再查找所需要的語音,應單個錄音。 3、應調試發現ISD1720反應比較慢所以要想實現開機音樂必須在主程序中加3秒延時,使語音芯片有足夠的時間初始化,等待SPI指令的到來。
0.png (8.36 KB, 下載次數: 102)
下載附件
2017-12-7 23:30 上傳
附件內容包括: 無線溫度控制系統完整硬件設計原理圖和PCB源文件(包括主機和從機以及語音模塊); C語言源代碼(有詳細的中文注釋); 材料清單;
所有資料51hei提供下載:
基于51單片機無線溫度控制系統完整項目設計開源.zip
(1.37 MB, 下載次數: 124)
2017-12-7 23:08 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|