❶ 51單片機開發模板製作溫度顯示按鍵控速風扇,程序編好,按鍵功能實現不了,求大神門幫忙看看,感謝,感謝
首先你這程序有問題,這四行不屬於任何的子程序,編譯都出錯。
DisplayData[1] = smgan[temp / 10000];
DisplayData[2] = smgan[temp % 10000 / 1000];
DisplayData[3] = smgan[temp % 1000 / 100] | 0x80;
DisplayData[4] = smgan[temp % 100 / 10];DisplayData[5] = smgan[temp % 10];
把這四行改正後,編譯後模擬運行程序,3個按鍵是起作用的。你感覺不起作用,是因為那3個按鍵,就是改變 flag 分別為0,1,2。可是,主程序中根據 flag 值不同,執行的卻是同一個動作,都是 moto=1; (稍稍有一點區別,只是你感覺不出來)所以,按什麼鍵都是這個動作,按不按都 一樣,當然那就會覺得按鍵不起作用。那3個按鍵控制的動作要有區別呀,或者動作區別要大,才能看出來按鍵起作用啦。最簡單,直接的方法是,按住按鍵不鬆手,看數碼管是不是全滅啦,如果全滅了,說明按鍵就是起作用的。
❷ 基於單片機的溫度控制系統的設計
利用溫度感測器DS18B20檢測環境溫度並直接輸出數字溫度信號給單片機AT89C52進行處理。
在LCD液晶上顯示當前環境溫度值、預設溫度值、使用者設定的溫度差以及目前風扇所處的檔位。其中預設溫度值只能為整數形式,檢測到的當前環境溫度可精確到小數點後一位。
同時採用PWM脈寬調制方式來改變直流風扇電機的轉速。
並通過兩個按鍵改變預設溫度值,一個提高預設溫度,另一個降低預設溫度值。通過另一個按鍵控制溫度差的大小。
設有紅外熱釋感測器檢測環境范圍內是否有人,如果有人確定出風方向,如果無人,降低轉速或一定時間內自動關閉。
回答
正如你所說的,一共用了DS18B20模塊,LCD模塊,紅外感測模塊,按鍵,直流電機模塊,程序方面只有一個PWM。現在一一為你分析:
DS18B20模塊:
下圖是它的原理圖,採用單匯流排來進行開發,不像電賽的哪個溫度感測器需要AD轉換,它是可以直接傳出數字信號的。
❸ 怎樣實現51單片機根據溫度動態控制風扇轉速,請高手幫幫忙!
給您思路:第一,你需要使用溫控元件測溫,比如DS18B20溫度感測器。
第二:你所需要使用的控制晶元可以選擇單片機,比如STC89C55(帶掉電參數保存功能)。
第三:使用數碼管或者LCD1602顯示您所檢測的溫度或者顯示您所需要設置的溫度范圍。
第四:按鍵,根據你所需要的溫度范圍,根據按鍵來設置參數范圍。
第五:使用定時器1或者2輸出PWM波,控制可控硅(BTA06等),根據您的電流大小吧。
第七:在單片機里處理您的各類控制。大概就是如此吧。