基于STM32的DS18B20溫度遠(yuǎn)程監(jiān)測(cè)LCD1602顯示Proteus仿真設(shè)計(jì)(仿真+程序+設(shè)計(jì)報(bào)告+講解視頻)
仿真圖proteus 8.9
程序編譯器:keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):C0117
1. 主要功能
基于STM32單片機(jī)的溫度測(cè)量系統(tǒng)LCD1602顯示Proteus仿真設(shè)計(jì)
1、STM32單片機(jī)實(shí)時(shí)檢測(cè)DS18B20溫度測(cè)量,溫度測(cè)量范圍-55到128℃,測(cè)量精度±0.1℃;
2、串口實(shí)時(shí)傳輸檢測(cè)溫度給電腦串口調(diào)試助手,以此實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè);
3、LCD1602實(shí)時(shí)顯示監(jiān)測(cè)到的溫度;
STM32單片機(jī) DS18B20 LCD1602
資料下載鏈接(可點(diǎn)擊):
通過(guò)網(wǎng)盤分享的文件:KEY_C0117
鏈接: https://pan.baidu.com/s/1IlOFlIM-m6ZiV_PhHbaMSw?pwd=a6pq
提取碼: a6pq
2.仿真
打開(kāi)仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開(kāi)始仿真。
開(kāi)始仿真后串口調(diào)試助手顯示溫度檢測(cè)值,LCD1602第一行顯示溫度檢測(cè)值38.2℃
3. 程序
程序是用keil5 mdk版本打開(kāi)的,如果打開(kāi)有問(wèn)題,核實(shí)下keil的版本。程序是HAL版本編寫的,有stm32cubemx配置文件。有注釋可以結(jié)合講解視頻理解。
軟件流程框圖:
int main(void)
{
/* USER CODE BEGIN 1 */
char data_str1[20];
// char data_str2[20];
char data_str2[]=" ";
float temp;
char str[20]; //溫度值轉(zhuǎn)換為字符串的存放數(shù)組
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
// printf("DS18B20測(cè)溫實(shí)驗(yàn)nr");
HAL_UART_Transmit(&huart1, (uint8_t *)&"DS18B20rn", 10, 10); //串口1發(fā)送字符串,數(shù)組長(zhǎng)度為10,
LCD_Init(); //LCD1602初始化
// DS18B20_Get_Temp();
// HAL_TIM_Base_Start_IT(&htim2); //初始化定時(shí)器
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(500);
temp=DS18B20_Get_Temp();//獲取溫度值
sprintf(str,"%0.1f",temp);
if(temp==-0.0){
temp=DS18B20_Get_Temp();//獲取溫度值
}
HAL_UART_Transmit(&huart1, (uint8_t *)str, 6, 10); //串口1發(fā)送字符串,數(shù)組長(zhǎng)度為6,超時(shí)10ms
HAL_UART_Transmit(&huart1, (uint8_t *)&"Crn", 3, 10); //串口1發(fā)送字符串,數(shù)組長(zhǎng)度為3,超時(shí)10ms
memset(str,0,strlen(str));
sprintf(data_str1,"temp=%4.1f n",temp); //寫字符到data_str1
data_str1[10]=0xdf;
data_str1[11]='C';
LCD_ShowString(0,0,data_str1); //LCD1602顯示第一行
LCD_ShowString(1,0,data_str2); //LCD1602顯示第二行
memset(str,0,strlen(data_str1));
}
/* USER CODE END 3 */
}
4. 設(shè)計(jì)報(bào)告
9855字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、結(jié)論等。
隨著物聯(lián)網(wǎng)和嵌入式技術(shù)的快速發(fā)展,溫度監(jiān)測(cè)系統(tǒng)在工業(yè)控制、農(nóng)業(yè)環(huán)境監(jiān)測(cè)、智能家居等領(lǐng)域需求日益增長(zhǎng)。傳統(tǒng)溫度監(jiān)測(cè)系統(tǒng)存在精度低、顯示方式單一、數(shù)據(jù)交互性差等問(wèn)題。本設(shè)計(jì)基于STM32單片機(jī),結(jié)合DS18B20高精度溫度傳感器和LCD1602液晶顯示屏, 通過(guò)Proteus仿真實(shí)現(xiàn)一套低成本、高可靠性的溫度報(bào)警系統(tǒng)。
通過(guò)本次設(shè)計(jì),我們希望能夠提高對(duì)單片機(jī)的理解和應(yīng)用能力。通過(guò)實(shí)踐和探索,我們希望能夠掌握相關(guān)的硬件和軟件設(shè)計(jì)方法,為今后的學(xué)習(xí)和工作打下堅(jiān)實(shí)的基礎(chǔ)。同時(shí),我們也希望能夠通過(guò)這次設(shè)計(jì),培養(yǎng)我們的團(tuán)隊(duì)協(xié)作能力和創(chuàng)新精神。
5. 資料清單&下載鏈接
0、常見(jiàn)使用問(wèn)題及解決方法–必讀!?。?!
1、程序代碼
2、Proteus仿真
3、功能要求
4、開(kāi)題報(bào)告
5、設(shè)計(jì)報(bào)告
6、講解視頻
7、框圖
8、串口調(diào)試助手
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開(kāi)查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
通過(guò)網(wǎng)盤分享的文件:KEY_C0117
鏈接: https://pan.baidu.com/s/1IlOFlIM-m6ZiV_PhHbaMSw?pwd=a6pq
提取碼: a6pq