仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (118.12 KB, 下載次數: 32)
下載附件
2022-11-22 18:01 上傳
本次設計是運用STC89C52單片機技術與溫度傳感器DS18B20測量外界溫度的設計原理設計的一款溫控風扇系統。系統主要通過溫度傳感器控制不同的PWM占空比輸出來控制風扇的檔位。此系統通過液晶顯示器1602來顯示溫度,配備4個溫度設定按鍵,由DS18B20讀取外界溫度,可通過按鍵調節預設的溫度,再配合程序來調節風速。經過調試,風扇可以按照溫度智能變速,無人自動關閉,實現了智能溫控的目標。
(1) 傳統電風扇不能隨著環境溫度的變化自動調節風速,這對那些晝夜溫差大的地區是致命的缺點,尤其是人們在熟睡時,不但浪費資源,還很容易使人感冒生病; (2) 傳統電風扇機械的定時方式常常會伴隨著機械運動的聲音,特別是夜間影響人們的睡眠,而且定時范圍有限,不能滿足人們的需求。鑒于這些缺點,我們設計了一款智能溫控風扇來解決。 (3) 傳統電風扇大部分只有手動調速,功能單一。長時間在高負荷工作容易損壞電器,并且造成電量的損失。 因此,鑒于這些缺點,我們設計了一款智能溫控風扇來解決這些問題,它特別適宜于家庭老人與孩子用,其風力更加柔和,很符合人們的身體特性。 2.1 系統整體設計 系統流程圖如圖2-1所示,其系統的整體思路是:利用溫度傳感器DS18B20來測量環境溫度,并直接輸出數字溫度給STC89C52單片機進行處理,并將實時溫度、設置溫度顯示在液晶顯示屏1602上,通過溫度傳感器控制不同的PWM占空比輸出來控制風扇的檔位。設置溫度輔以4個可調按鍵,一個提高最高溫度,一個降低最高溫度,一個提高最低溫度,一個降低最低溫度。設置溫度只能是整數型式,檢測到的環境溫度可以精確到小數點后一位。單片機根據,溫度采集模塊采集到的溫度并做出相應處理,當溫度高于10°C時,風扇電路導通,風扇轉動并隨溫度改變轉速。當溫度低于10°C時,風扇電路不通電,風扇不轉。實現風扇自動停止并隨溫度變化自動調速,同時顯示當前溫度。 系統實現的功能是:上電復位時檢測溫度傳感器DS18B20是否存在或它工作是否正常,當不存在或工作不正常時從蜂鳴器發出報警聲,提示用戶檢查DS18B20,安裝或者更換。這部分功能由DS18B20復位與檢測子程序RESET完成。當檢測到傳感器工作正常后,發出溫度轉換命令及讀取溫度值命令,將從DS18B20讀取的二進制溫度值轉換,在LED1602上顯示出來。顯示功能由溫度顯示子程序實現。 圖2-1 系統流程圖 2.2 單片機方案設計 方案一:采用兩片STC89C516RD單片機、液晶1602和DS18B20,進行設計,讓單片機1進行溫度讀取操作,另外的單片機2通過定時器,產生占空比不同的PWM。兩單片機通過串口進行通信,這樣單片機1可以通過讀取外界的溫度,然后對單片機2進行控制。這樣就可以在不同的溫度區間內,單片機2控制直流5V小風扇不同的轉速,從而實現溫度自動控制風扇。 方案二:采用STC89C52單片機、液晶1602和DS18B20。這也是一款51單片機,但是它的性能比STC89C516RD單片機更強大,而且有獨立的雙路PWM輸出。這樣,采用一片STC89C52單片機就能實現溫度讀取和直流5V小風扇的轉速控制。 方案三:采用STM8S105系列單片機、液晶1602和DS18B20,同樣可以實現溫度讀取和直流5V小風扇的轉速控制。 方案比較: 方案一,需要耗費更多的硬件資源。因此我們直接排除方案一。 方案三,如果采用44腳貼片封裝的STM8S105系列單片機,可以在很小的鎳鋁銅板上把硬件做出來,這樣可以節省一些硬件資源。但是,因為溫度傳感器DS18B20的讀取是通過I/O端口讀取的,STM8S105的I/O操作需要設置,尤其是處于輸入或者輸出方式。操作非常麻煩。 方案二,需要的硬件資源相對較少,而且I/O兼容8051單片機,可以實現I/O口雙向操作,且編程也相對簡單。 綜上所述,我么們選擇方案二。 2.3 顯示器件方案設計 方案一:LED共陰極數碼顯示管。 方案二:LCD液晶顯示屏1602。 對于方案一,成本相對低廉,功耗也低,在黑暗空間也可以看的清楚,可視距離較遠,同時顯示溫度的程序也相對而言簡單,所以這種顯示方式也得到了廣泛應用。但是它采用的顯示方式是動態掃描,各個LED逐個點亮,會產生閃爍,在這個溫度實時變化的環境中閃爍可能太快,數據可能不能很好的展示出來,故此方案不采用。 對于方案二,液晶顯示屏顯示字符清晰,自帶背光,還能顯示符號,并且不會不斷閃爍,顯示性能一流,并且考慮到此設計不只是要顯示溫度,還要顯示電機和紅外的狀態,所以從設計完善的角度來考慮,選擇此方案更有優勢。 2.4 調速方案設計 方案一:采用數模轉化芯片DAC0832來控制,有單片機根據當前環境溫度輸出數值到DAC0832中,再由DAC0832產生相應的模擬信號控制晶閘管的導通腳,從而采用無級調速電路實現電扇電機轉速的調節。 方案二:采用單片機軟件模擬PWM調速的方法。PWM是一種按照一定的規律改變脈沖序列的脈沖寬度,以調節輸出量和波形的一種調節方式,在PWM驅動控制的調節系統中,最常用的是矩形波PWM信號,在控制時調節PWM波的占空比。占空比是指高電平在一個周期時間內的百分比。在控制電機的轉速時,占空比越大,轉速就越快,若全為高電平時占空比為100%,此時轉速達到最大。用單片機的I/O口輸出PWM信號時,有如下三種方法: (1)利用軟件延時。當高電平延時時間到時,對I/O口電平取反,使其變成低電平,再延時一定時間,反之在低電平延時到時,對I/O口電平取反,如此循環即可得到PWM信號。 (2)利用定時器。控制方法與(1)相同,只是在該方法中利用單片機的定時器來進行高低電平的轉變,而不是利用軟件的延時。本設計就是采用了這種方法。 (3)利用單片機自帶的PWM控制器。STC系列單片機自帶PWM控制器,但本系統使用的AT89系列單片機沒有此功能,所以不能使用。 對于方案一,該方案能實現對直流電機的無級調速,速度變化靈敏,但是D/A轉換芯片價格較高,性價比不高,不采用。對于方案二,相對于其他方案來說,采用軟件模擬PWM實現調速的過程,具有個高的性價比與靈活性,充分的發揮了單片機自身的性能,對本系統的實現又提供了一條有效的途徑。所以綜合考慮還是選擇方案二的第二種。 圖3-1 溫度傳感器DS18B20 DS18B20的引腳圖如圖3-2所示。 引腳1:接地; 引腳2:數字輸入輸出,接單片機3.3端口; 引腳3:可選的5V電源。 圖3-2 溫度傳感器DS18B20引腳圖 第四章系統硬件設計 4.1 系統原理圖 如圖4-1所示,它為我們的系統原理圖,下面是我們的設計原理: (1) 電源開關,控制系統處于工作還是停止狀態。 (2) 當系統上電之后,通過DS18B20感應外界溫度,通過單片機讀取外界溫度,然后通過液晶顯示屏1602來顯示出來。通過判斷溫度的范圍,控制風扇的停止與轉不同的速度,即:當按下開關鍵時,系統初始化默認的設定最低溫度為10°,最高溫度為30°。如果外界溫度高于設定溫度,則電風扇進行運轉,如果外界溫度低于設定溫度,則風扇不轉動,反之,處于兩者之間,風扇半速轉動,同時顯示外界的溫度和液晶顯示屏1602給出檔位顯示。 (3) 溫度控制的范圍可以通過按鍵進行設置。配備4個溫度設定按鍵,由DS18B20讀取外界溫度,通過設定的溫度配合程序來調節風速。 圖4-1 系統原理圖 4.2 單片機最小系統 在單片機最小系統中,有兩個非常重要的電路,一個是開關復位電路,用來對單片機本身和其外部擴展I/O接口電路進行復位,還有一個是晶振電路,用于產生諧振,使單片機得以工作。如圖4-2所示,為單片機引腳圖,單片機的XTAL1和XTAL2用來外界石英晶體和微調電容,連接單片機內OSC的定時反饋電路。本設計中開關復位與晶振電路如圖4-3所示,當按下按鍵開關是,系統復位一次。其中電容C1、C2為20pF,C3為1uF,電阻R1為100,晶振為12MHz。 4.3 溫度采集電路 DS18B20數字溫度傳感器通過其內部計數時鐘周期來的作用,實現了特有的溫度測量功能。低溫系數振蕩器輸出的時鐘信號通過由高溫度系數振蕩器產生的門周期而被計數,計數器預先置有與-55℃相對應的一個基權值。如果計數器計數到0時,高溫度系數振蕩周期還未結束,則表示測量的溫度值高于-55℃,被預置在-55℃的溫度寄存器中的就增加1℃,然后這個過程不斷重復,直到高溫度系數振蕩周期結束為止。此時溫度寄存器中的值即為被測溫度值,這個值以16位二進制形式存放在存儲器中,通過主機發送存儲器讀命令可讀出此溫度值,讀取時低位在前,高位在后,依次進行。由于溫度振蕩器的拋物線特性的影響,其內用斜率累加器進行補償。DS18B20由于直接可以輸出數字信號, 圖4-2 STC89C52RC單片機引腳圖 圖4-3 開關復位與晶振電路 所以可以直接輸出給單片機,但是需要在輸出口上接一個上拉電阻來確保工作,連接圖如圖4-4所示。 圖4-4 溫度采集電路 4.4 LCD1602顯示電路 圖4-5 LCD1602顯示電路 如圖4-5所示為LCD1602顯示電路,在顯示屏上,顯示設定的最高溫度30°,最低溫度10°,目前外界溫度33°,占空比為100,此時風扇全速轉動。 4.5 按鍵控制電路 圖4-6 按鍵控制電路 如圖4-6所示,有四個按鍵,可調設定的最高溫度和最低溫度,從而對風扇進行調控,從上到下依次是最高溫度加、最高溫度減、最低溫度加、最低溫度減。 4.6 風扇調速電路 圖4-7 風扇調速電路 如圖4-7所示,我悶設計采用的是由5V直流供電的小型風扇,在設計當中,我們只預置了三檔速度檔位,一檔的PWM占空比為0%,此時風扇不轉動;二檔的的PWM占空比為0%-100%之間,此時風扇半速轉動;三檔的PWM占空比為100%,此時風扇全速轉動。這樣可以看到速度又非常明顯的變化,可根據液晶顯示屏上的占空比來判斷風扇處于什么檔位。 在這次設計實踐中,我們還用了繼電器,其中,當溫度較低時,此時數據輸入端口P0^1燈滅,輸出電壓為5V,繼電器處于斷開狀態,風扇不轉;當溫度處于預設最高溫度與最低溫度之間,此時單片機使繼電器處于斷開與吸合的重復循環狀態,則風扇半速轉動;當溫度高于預設最高溫度,則數據輸入端口P0^1燈亮,輸出電壓為0V,繼電器處于吸合狀態,風扇全速轉動。 第五章系統軟件設計 5.1 主函數流程圖 如圖5-1所示,為主程序流程圖: 圖5-1 主函數流程圖 5.2 溫度控制風扇程序流程圖 如圖5-2所示,為溫度控制風扇程序流程圖: 圖5-2 溫度控制風扇程序流程圖 第六章系統調試 單片機復位后,進行初始化工作,然后進入按鍵功能模塊,最后完成工作。初始化中,將DS18B20,內部RAM,包括按鍵,默認為控制狀態,溫度設定為15°C。加減按鍵同時按下進入溫度設定狀態,然后按加或減按鍵進行溫度設定,然后再次同時按加減鍵退出。硬件調試:硬件電路的調試相對來說比較簡單。調試的功能包括按鍵電路,DS18B20和電機電路。 按鍵電路的調試:按鍵電路實現的功能是在按鍵按下后能執行設定溫度的改變,這項采用實物調試,按鍵按下之后,溫度隨之改變。 溫度傳感器電路的調試:溫度傳感器DS18B20的調試在實物上進行,當用手指去加熱溫度傳感器DS18B20的時候,LCD示數開始隨溫度的上升而改變,變化明顯而且刷新頻率適中,可以清晰的看到所顯示的溫度。 電路的調試:電機電路進行調試,不斷的將設定溫度降低,觀察電機轉速的變化。電機隨設定溫度與實際溫度差值的改變而改變,轉速變化較為平滑,達到了預期的效果。 實物硬件圖如圖7-1所示: 圖7-1 實物硬件圖
1669084186437(1).jpg (17.95 KB, 下載次數: 26)
下載附件
壓縮包內容
2022-11-22 10:29 上傳
參考:http://www.zg4o1577.cn/bbs/dpj-124878-1.html
附件包涵設計說明書,proteus仿真,edraw流程圖,keil源文件,C語言程序等。均為自己原創,請大家多多指教!
下載:
資料.7z
(3.91 MB, 下載次數: 83)
2022-11-22 18:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|