3.1 主程序的設(shè)計(jì)
主程序流程圖
主程序如圖,一給單片機(jī)上電,單片機(jī)就初始化。然后掃描各個(gè)按鍵、開關(guān)的狀態(tài),檢測開關(guān)是否打開、屋內(nèi)是否有人,若同時(shí)滿足則給臺(tái)燈電路上電。同時(shí)向數(shù)碼管輸出時(shí)間初值,隨后時(shí)間計(jì)時(shí)子函數(shù)運(yùn)行,時(shí)鐘正常工作。然后檢測時(shí)間調(diào)整按鍵是否按下,判斷修改哪個(gè)數(shù)據(jù),掃描調(diào)整按鍵,增加或減少數(shù)值。單片機(jī)接收并處理來自 DS18B20 傳過來的數(shù)據(jù)在數(shù)碼管上顯示當(dāng)時(shí)的室內(nèi)溫度,最后進(jìn)入循環(huán)。
3.2 按鍵模塊程序設(shè)計(jì)
按鍵用來調(diào)整時(shí)間和日期,各鍵功能在介紹硬件部分已描述。
因?yàn)橛心暝氯,時(shí)分秒幾個(gè)參數(shù)要調(diào),所以設(shè)置這幾個(gè)參數(shù)的計(jì)數(shù)。當(dāng)按模式
鍵時(shí),單片機(jī)進(jìn)行相應(yīng)的操作。
3.3 臺(tái)燈模塊程序設(shè)計(jì)
該模塊只需給 P3.6 到送高電平即可,再通過手動(dòng)旋鈕\環(huán)境光強(qiáng)調(diào)整燈光亮度。
3.4 時(shí)鐘模塊程序設(shè)計(jì)
分別出寫時(shí)間、日期的函數(shù),再寫出時(shí)間、日期的顯示函數(shù)。設(shè)計(jì)時(shí)、分、
秒,年、月、日幾個(gè)變量分別表示時(shí)分秒,年月日。
3.5 報(bào)時(shí)模塊程序設(shè)計(jì)
對(duì)蜂鳴器,在其所接的 I/O 口P3.3寫 1 即可實(shí)現(xiàn)它的蜂鳴,當(dāng)分鐘數(shù)增加到60時(shí)響鈴,寫程序時(shí)給它加了個(gè)1s延時(shí),實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)。
3.6 溫度模塊程序設(shè)計(jì)
設(shè)計(jì)初始化函數(shù),設(shè)計(jì)讀 DS18B20 數(shù)據(jù)和對(duì) DS118B20 寫數(shù)據(jù)的函數(shù),再寫出
從 DS18B20 讀溫度并轉(zhuǎn)換為十進(jìn)制的函數(shù),最后逐位顯示溫度的函數(shù)。
3.7 紅外傳感器模塊程序設(shè)計(jì)
編寫一個(gè)讀端口P3.4的函數(shù),即FC-51模塊OUT端口狀態(tài),檢測有人與否,若有人,傳感器發(fā)給單片機(jī)一個(gè)低電平,單片機(jī)同時(shí)判斷燈開關(guān)是否打開,使得單片機(jī)P3.6口為高電平,控制臺(tái)燈電路上電;若人離開桌前,則P3.4為高電平,臺(tái)燈斷電。這就實(shí)現(xiàn)了檢測屋內(nèi)有人與否并自動(dòng)開啟或關(guān)閉的智能節(jié)能的臺(tái)燈。
4 總結(jié)
該設(shè)計(jì)實(shí)現(xiàn)了日期、時(shí)間及溫度檢測和顯示電路,具備整點(diǎn)報(bào)時(shí)功能,以提醒用戶久坐時(shí)長,避免長期久坐導(dǎo)致的一系列健康問題。同時(shí)自動(dòng)檢測桌前是否有人并自動(dòng)開啟/關(guān)閉功能;臺(tái)燈具有光亮度自動(dòng)\手動(dòng)調(diào)節(jié)功能;但在細(xì)節(jié)
方面還有不足之處。燈光亮度達(dá)不到很亮的程度,只能在一個(gè)很小的范圍變化,
以致于光亮度不夠。關(guān)閉的功能。該傳感器檢測距離通過調(diào)節(jié)FC-1模塊上變阻器可在1m-20m間調(diào)節(jié)。蜂鳴器在仿真過程中不響,多次排查后仍沒有找到原因,在設(shè)計(jì)答辯完成后,我們會(huì)繼續(xù)尋找問題的源頭,爭取解決。在實(shí)際的實(shí)物制作過程中,因材料的限制,觸發(fā)臺(tái)燈所用的三極管使用了雙向可控硅代替,這帶來了一系列問題:1可控硅的參數(shù)不明,導(dǎo)致了變阻器在調(diào)節(jié)過程中無法精確到具體值,只能不斷嘗試2可控硅的負(fù)載能力小,使得燈在長時(shí)間運(yùn)行后出現(xiàn)過載現(xiàn)象,自動(dòng)熄滅。
原本的設(shè)計(jì)是只有臺(tái)燈電路,畢竟節(jié)能臺(tái)燈的節(jié)能應(yīng)考慮設(shè)計(jì)簡化,但為提升本次設(shè)計(jì)作業(yè)的復(fù)雜性,加入了更多其他模塊,雖有些本末倒置的意味,但鍛煉了我們的動(dòng)手能力、單片機(jī)編程能力,更提升了我們對(duì)MC-51系列單片機(jī)、數(shù)碼管及DS18B20 的了解與認(rèn)識(shí),為以后的畢業(yè)設(shè)計(jì)及往后的工作打下經(jīng)驗(yàn)基礎(chǔ)。
以上的程序見附錄
實(shí)物圖
仿真及實(shí)物演示視頻見設(shè)計(jì)文件
系統(tǒng)連接圖
附錄