基于STM32的簡易溫控系統(tǒng)LCD1602顯示仿真設(shè)計(Proteus仿真+程序設(shè)計+設(shè)計報告+講解視頻)仿真圖Proteus 8.9
程序編譯器:keil 5
編程語言:C語言
設(shè)計編號:C0108
1.主要功能
基于STM32單片機(jī)的溫控系統(tǒng)LCD1602顯示Proteus仿真設(shè)計
1、STM32單片機(jī)實(shí)時檢測DS18B20溫度測量及顯示,默認(rèn)低溫閾值25℃,高溫閾值30℃,超出高低對應(yīng)指示燈亮。
2、溫度測量范圍-55到128℃,測量精度±0.1℃;
3、虛擬串口(仿真可用于模擬WiFi/藍(lán)牙)實(shí)時傳輸檢測溫度;
4、可以對高低溫報警值進(jìn)行設(shè)定,通過按鍵設(shè)置;
5、使用LCD1602顯示檢測溫度和溫度上下限,高于上限顯示Hot,
6、超過高溫閾值,電機(jī)啟動用于模擬降溫,低于低閾值,電熱絲啟動模擬升溫。
STM32單片機(jī) DS18B20 LCD1602 按鍵 直流電機(jī) 電熱絲
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0108
鏈接: https://pan.baidu.com/s/1WsfXyLhfEFAFWPhVKtamwQ
提取碼: 8cui
2.仿真設(shè)計
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。
STM32單片機(jī)實(shí)時檢測DS18B20溫度測量及顯示溫度測量范圍-55℃到128℃,測量精度±0.1℃,虛擬串口實(shí)時顯示溫度,LCD1602第一行顯示溫度,第二行顯示上下限閾值。當(dāng)溫度超過上限時,溫度高指示燈點(diǎn)亮,LCD1602第一行顯示Hot,降溫模塊啟動,直流電機(jī)工作模擬風(fēng)扇降溫。
下圖溫度介于上下限之間,電熱絲和降溫模塊不工作,LCD正常顯示。
下圖溫度低于下限值,LCD1602第一行顯示Low,溫度低指示燈亮,電熱絲工作模擬升溫。
3.程序設(shè)計
程序是用keil5 mdk版本打開的,如果打開有問題,核實(shí)下keil的版本。程序是HAL版本編寫的,有stm32cubemx配置文件。有注釋可以結(jié)合講解視頻理解。
HAL_Delay(200);
temp0=DS18B20_Get_Temp();//獲取溫度值
if(temp0<128.0&&temp0!=-0.0&&temp0!=85.0){//去掉經(jīng)常出現(xiàn)的錯誤數(shù)據(jù)
temp=temp0;
}
sprintf(str,"%0.1f",temp);
// sprintf(str,"%d",temp);
HAL_UART_Transmit(&huart1, (uint8_t *)str, 6, 10); //串口1發(fā)送字符串,數(shù)組長度為6,超時10ms
HAL_UART_Transmit(&huart1, (uint8_t *)&"Crn", 3, 10); //串口1發(fā)送字符串,數(shù)組長度為3,超時10ms
memset(str,0,strlen(str));
// sprintf(data_str1,"temp=%0.1f",temp);
if(setnum==0){//正常模式
sprintf(data_str1,"temp=%0.1fC n",temp); //寫字符到data_str1
sprintf(data_str2,"L:%d C H:%d C n",temp_L,temp_H);//寫字符到data_str2
if(temp>(float)temp_H){
sprintf(data_str1,"temp=%0.1fC Hot n",temp); //高溫警告
user_pwm=90; //開風(fēng)扇
LED1=LED_ON; //開LED1 關(guān)LED2
LED2=LED_OFF;
RELAY=0; //關(guān)繼電器(關(guān)加熱
}else if((temp>(float)temp_L)&&(temp<(float)temp_H)){
sprintf(data_str1,"temp=%0.1fC n",temp); //正常溫度
user_pwm=0; //關(guān)風(fēng)扇
LED1=LED2=LED_OFF; //關(guān)LED1 LED2
RELAY=0; //關(guān)繼電器(關(guān)加熱
}else if(temp<(float)temp_L){
user_pwm=0; //關(guān)風(fēng)扇
sprintf(data_str1,"temp=%0.1fC Low n",temp); //低溫警告
LED1=LED_OFF;
LED2=LED_ON; //開LED2 關(guān)LED1
RELAY=1; //開繼電器(開加熱功能
}
}else if(setnum==1){ //設(shè)置高溫閾值 //設(shè)置高溫閾值
LED1=LED2=LED_OFF;
sprintf(data_str1,"temp=%0.1fC n",temp);
sprintf(data_str2,"L:%d C H:%d^Cn",temp_L,temp_H);
}else if(setnum==2){ //設(shè)置低溫閾值
sprintf(data_str1,"temp=%0.1fC n",temp);
sprintf(data_str2,"L:%d^C H:%d C n",temp_L,temp_H);
}
LCD_ShowString(0,0,data_str1); //LCD1602顯示第一行
LCD_ShowString(1,0,data_str2); //LCD1602顯示第二行
memset(str,0,strlen(data_str1));
}
程序流程圖
4.設(shè)計報告
11438字設(shè)計報告,內(nèi)容包括設(shè)計目標(biāo)、硬件設(shè)計、軟件設(shè)計、結(jié)論等。
隨著工業(yè)自動化和智能家居領(lǐng)域的快速發(fā)展,溫度控制作為其中一項(xiàng)關(guān)鍵技術(shù),廣泛應(yīng)用于各類工業(yè)設(shè)備、家用電器以及環(huán)境監(jiān)測系統(tǒng)中。精準(zhǔn)的溫度控制不僅能夠提高生產(chǎn)效率,還能保障設(shè)備的安全運(yùn)行和用戶的舒適體驗(yàn)。本設(shè)計旨在通過STM32單片機(jī)結(jié)合DS18B20溫度傳感器、LCD1602液晶顯示屏以及外圍執(zhí)行機(jī)構(gòu)(如直流電機(jī)、電熱絲),構(gòu)建一個具有高精度、實(shí)時顯示和靈活調(diào)節(jié)功能的溫控系統(tǒng),并通過Proteus軟件進(jìn)行仿真驗(yàn)證,為后續(xù)實(shí)際硬件實(shí)現(xiàn)提供理論依據(jù)和設(shè)計參考。
5.下載鏈接
0、常見使用問題及解決方法–必讀!?。?!
1、程序代碼
2、Proteus仿真
3、功能要求
4、開題報告
5、設(shè)計報告
6、框圖
7、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊
答辯技巧
設(shè)計報告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計.url
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0108
鏈接: https://pan.baidu.com/s/1WsfXyLhfEFAFWPhVKtamwQ
提取碼: 8cui