里面帶有仿真
51hei.png (232.21 KB, 下載次數: 62)
下載附件
2020-6-28 17:38 上傳
摘要:本次實驗主要分析了基于STM32F103ZET6微處理器的溫濕度控制系統的系統設計過程。此智能系統的組成主要包括STM32F103控制器、dht11、lcd1602、發光二極管、串口、按鍵等
應用案例、
隨著現代化發展,健康對于我們尤其重要,近年來發生過室內中毒、倉庫著火、工業爆炸等,這需要我們重視合適溫度和濕度是必要
本次實驗采用STM32F103微處理器為核心芯片,利用1602顯示信號來溫濕度,溫濕度時刻更新,滿足我們要求,方便時刻看著溫濕度變化,一旦超過預設值就會報警,這是常應用倉庫,工業需求,室內溫度
模塊原理及方法
DHT11是一款價格便宜,易于使用的溫度濕度測量二合一傳感器。它具有超小體積、極低功耗的特點。它使用單根總線與單片機進行雙向的串行數據傳輸,信號傳輸距離可達20米以上。非常適用于對精度和實時性要求不高的溫濕度測量場合。
DHT11上電后(DHT11上電后要等待 1S 以越過不穩定狀態在此期間不能發送任何指令),測試環境 溫濕度數據,并記錄數據,同時 DHT11的 DATA 數據線由上拉電阻拉高一直保持高電平;此時 DHT11的 DATA 引腳處于輸入狀態,時刻檢測外部信號。
程序(主函數)
int main(void)
{
u8 temperature,humidity;
unsigned char display[10] ;
u8 a=7,b=8;
// HSE_SetSysClock(RCC_PLLMul_7);
Stm32_Clock_Init(9); //系統時鐘設置
EXTIX_Init();//
DHT11_Init();
uart_init(72,9600); //串口初始化為9600
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
printf("串口開啟成功\r\n");
LCD1602_Init();
delay_init();
LED_Init();
TIM3_Int_Init(500,7199);
LCD1602_ShowStr(2,0,"stm32f103R6",11);
delay_s(10);
LCD1602_Clear();
while(1)
{
if(flag)
{
DHT11_Read_Data(&temperature,&humidity) ;
sprintf((char *)display,"temp:%d ",temperature) ;
LCD1602_ShowStr(0,0,display,11) ;
sprintf((char *)display,"humi:%d ",humidity) ;
LCD1602_ShowStr(1,1,display,11) ;
printf("temp:%c \r\n",temperature);
printf("humidity:%c \r\n",humidity);
// LED0 = 0;
// LED1 = 1;
// delay_s(2);
// LED0 = 1;
// LED1 = 0;
// delay_s(2);
}
}
}
本設計以stm32為核心,在過程中不斷探索dht11原理及使用,而且按鍵曾出現問題,也就是溫度采集不成功,程序沖突所導致
本實驗用的是外部中斷按鍵,解決程序沖突問題,按鍵一按下
溫濕度開始采集,溫度和濕度時刻實現1602變化著,同時也要串口方便串口觀察,為以后上位機打下基礎,同時也運用定時器中斷來
提示作用
全部資料51hei下載地址:
新建文件夾.7z
(338.05 KB, 下載次數: 40)
2020-6-28 17:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|