本設(shè)計(jì):
基于51單片機(jī)無(wú)線恒溫箱恒溫控制系統(tǒng)(全套資料+原理圖+源代碼+PCB+參考論文)
原理圖:Altium Designer
程序編譯器:keil 4
編程語(yǔ)言:C語(yǔ)言
編號(hào)C0020
下載鏈接:
【騰訊文檔】C0020 網(wǎng)盤(pán)鏈接
https://docs.qq.com/doc/DS2lJaXBiREhycWJr
設(shè)計(jì)介紹:
1.本設(shè)計(jì)基于STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機(jī)主控制器;
2.采用DS18B20溫度傳感器測(cè)溫;
3.可按鍵設(shè)置刷新溫度的時(shí)間間隔和溫度的上下限;
4.通過(guò)NRF24L01無(wú)線模塊傳輸數(shù)據(jù);
5.當(dāng)溫度超過(guò)設(shè)定的上或下限時(shí),相應(yīng)的指示燈亮,同時(shí)相應(yīng)的繼電器吸合;
6.繼電器可以驅(qū)動(dòng)負(fù)載(風(fēng)扇、制冷片、加熱管等);
7.本設(shè)計(jì)包括主機(jī)(顯示和控制)和從機(jī)(溫度檢測(cè))兩塊板子。
原理圖(提供源文件):
PCB(沒(méi)有源文件?。?br />
部分源程序展示(提供完整程序):
//主函數(shù)
void main()
{
TXLED_R=0; //點(diǎn)亮LED
RXLED_Y=0;
init_io(); //無(wú)線模塊初始化IO
RX_Mode(); //設(shè)置為接收模式
TXLED_R=1;
RXLED_Y=1; //熄滅led
//進(jìn)入循環(huán)(括號(hào)內(nèi)一直是1,所以一直執(zhí)行while里的內(nèi)容)
while(1)
{
sta = SPI_Read(STATUS); //讀狀態(tài)寄存器
if(RX_DR) //判斷是否接受到數(shù)據(jù)
{
SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH); //從RX FIFO讀出數(shù)據(jù)
flag = 1; //接收數(shù)據(jù)完成標(biāo)志位置一
RXLED_Y=0; //打開(kāi)接收指示燈
}
SPI_RW_Reg(WRITE_REG + STATUS, sta); //清除RX_DS中斷標(biāo)志,等待下次接收數(shù)據(jù)
if(flag) //判斷flag是否為1,接收完成
{
flag = 0; //清除標(biāo)志位
//命令為主機(jī)詢(xún)問(wèn)
if(RX_BUF[0]==CMD[0]&&RX_BUF[1]==CMD[1]&&RX_BUF[2]==CMD[2]&&RX_BUF[3]==CMD[3]) //判斷是否是主機(jī)指令
{
//打開(kāi)接收成功指示
//無(wú)線答應(yīng)信號(hào)溫度
tmpchange(); //啟動(dòng)溫度轉(zhuǎn)換
T_=tmp(); //讀取溫度
TX_BUF[0]=0xAA;
TX_BUF[1]=T_&0x00ff; //T溫度
TX_BUF[2]=(T_>>8)&0x00ff;
TX_BUF[3]=0xdd;
delay_ms(100);
RXLED_Y=1; //關(guān)閉接受射指示燈
TXLED_R=0; //打開(kāi)發(fā)射指示燈
TX_Mode(TX_BUF); // 把nRF24L01設(shè)置為發(fā)送模式并發(fā)送數(shù)據(jù)
Check_ACK(1); // 等待發(fā)送完畢,清除TX FIFO
delay_ms(100); //延時(shí)
TXLED_R=1; //發(fā)送成功指示,關(guān)閉發(fā)射指示燈
RX_Mode(); // 設(shè)置為接收模式
}
}
}
}
資料清單如下:
溫馨提示:
1、拿到壓縮包文件之后先解壓,再運(yùn)行!!壓縮名稱(chēng)帶有特殊符號(hào)的,要把特殊符號(hào)刪除再解壓,例如?;
2、單片機(jī)芯片是通用的,無(wú)論51還是52、無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片;
3、仿真原理圖和硬件原理圖會(huì)有著些許區(qū)別,如果要做硬件請(qǐng)參照硬件原理圖,硬件原理圖中的. Sch .pcb等格式要用altium designer 打開(kāi);
4、如果沒(méi)有裝KEIL軟件:.c .h結(jié)尾的文件即為程序,可以選擇記事本、Notepad++、Source Insight 4.0、或其他C語(yǔ)言軟件打開(kāi),打開(kāi)的就是程序了。其他后綴的文件是寫(xiě)程序編譯時(shí)自動(dòng)生成的,沒(méi)什么用的,不用管;
5、仿真時(shí)請(qǐng)打開(kāi)“.pdsprj”工程文件或“.DSN”工程文件,“.pdsprj”是proteus8版本畫(huà)的,“.DSN”是proteus7版本畫(huà)的,版本是向上兼容的,理論上proteus8可以打開(kāi)“.DSN”工程文件,proteus7打不開(kāi)“.pdsprj”工程文件;
6、后綴.hex結(jié)尾的文件為燒錄文件,仿真時(shí)一定要記得燒錄程序(.hex)。
注:
請(qǐng)大家將keil安裝在默認(rèn)路徑,C:Keil,不要安裝在其他盤(pán)上,以免重新配置工具文件路徑。
遇到問(wèn)題先上網(wǎng)查找答案,大部分問(wèn)題都能在網(wǎng)上找到解決辦法。