譚銘明,姚玲英(通訊作者),阮煜琴,梁俊焱,鐘楚洪
(廣東第二師范學院物理與信息工程系,廣東廣州,510303)
在智能化信息時代的發展下,人們對于傳統時鐘的要求也逐漸增多。該智能貼心時鐘以STC89C52單片機為核心,利用DS1302時鐘模塊將時間顯示詳細至年、月、日、星期、時、分、秒,并可通過按鍵來實現對時間的校準和鬧鐘的設置。同時,利用DHT11溫濕度傳感器對溫濕度進行采集,單片機通過溫濕度變化產生不同的信號,以按鍵實現當前氣候狀態的溫濕度播報、貼心提示。
系統電路框圖如圖1所示,根據功能之間的不同,可將該系統分為六個部分,分別為STC89C52單片機、溫濕度測量電路、時鐘發生電路、LCD顯示電路、語音播報電路及按鍵電路。

圖1 系統電路框圖
2.1.1 主控制模塊
該設計使用STC89C52芯片作為貼心時鐘的處理器,C52系列芯片編程簡單便捷,配合開發板與Keil可以輕松地對芯片中的代碼進行修改和測試。該電路作為貼心時鐘的處理器,承擔了信息處理和信息存儲的功能。這部分電路包含主芯片STC89C52,11.0592MHz晶振電路以及復位電路。
2.1.2 溫濕度測量電路
該電路的主要部分為DHT11溫濕度傳感模塊,占用1個I/O口。該模塊可提供實時的溫濕度數據,并通過一個數據端口輸送給處理器,且該模塊使用比較方便,模塊上引出的3個接線端口直接連接到單片機上便可使用,由于用于傳輸數據的只有一個端口,使用一個I/O口便能收集溫濕度數據,十分節省I/O口。該電路承擔了提供溫濕度數據的功能,并且在模塊的VCC與GND之間連接了一個104瓷片電容,用于濾除掉雜波成分,使其輸出數據的時候電壓更穩定。
2.1.3 時鐘電路
時鐘電路采用DS1302模塊,共占用3個I/O口。該模塊可提供時分秒、年月日等信息,采用串行通信方式,節省I/O口,且具有工作電壓范圍較寬,芯片功耗低的優點,其承擔的主要功能為提供日期與時間信息。DS1302采用雙電源供電,在主電源非正常斷電時,仍可利用備用電源繼續工作。
2.1.4 LCD時鐘顯示電路
該電路采用液晶顯示屏LDC1604作為貼心時鐘的屏幕,共占用11個I/O口。該顯示屏最多能同時顯示16×4個字符,使用起來簡單便捷,但該模塊引腳較多,除VCC與GND外仍有12個端口。顯示屏采用并行通信方式,直接把八個數據傳輸口與單片機相連。其承擔的主要功能為顯示出當前的溫濕度、日期與時間。雖然占用了8個I/O口作為通信端口,但是同時保證了數據的實時顯示,減少延時。
2.1.5 語音播報電路

圖2 主程序流程圖
語音播報電路我們采用DFPlayer Mini模塊(以下簡稱其為語音模塊),采用串口通信。此模塊具有體積小巧,價格實惠,可直接接駁揚聲器等優點。語音模塊上已集成有MP3、WAV、WMA的硬解碼功能,無需進行復雜的編程,通過簡單的串口指令即可控制其播放指定的音頻。該模塊上含有一個TF卡槽,音頻存儲在TF卡里,只要將其插入卡槽,便能使其讀取到TF卡內的音頻信息。語音模塊主要承擔了存儲音頻信息及驅動揚聲器播放音頻的功能,按下外置的按鈕即可播放當前溫濕度信息、前后溫濕度對比、以及對應的穿衣搭配和增減衣物建議。
2.1.6 鍵盤電路鍵盤電路目前采用了各個功能配備獨立按鍵的設計,按鈕類型采用微動按鈕,分別設有“返回主界面按鈕”、“進入副界面按鈕”、“UP按鈕”,“DOWN按鈕”,“確認按鈕”,以及“語音播報按鈕”這6個按鈕。這6個按鈕目前直接分配了6個I/O口,按鈕的另一端接地,當有按鍵按下時,I/O口的電平變為低電平,隨即由芯片檢測到,并執行對應的功能。
2.2.1 系統主程序設計
將主程序分成各個子程序模塊,逐一實現各個模塊功能,其整體思路如圖2所示。
2.2.2 語音模塊軟件實現
(1)從EEPROM區讀取存儲的溫濕度數據
內部EEPROM讀一字節:先寫地址,再讀數據。
讀操作程序:

(2)溫濕度以及穿衣小提示播報
播報溫濕度:將從DHT11芯片獲取的溫濕度進行播報,需要注意的是獲取的溫濕度為十六進制,而語音播報的對應值為十進制,此時,通過十進制與十六進制轉換,完成語音播報。
播報穿衣小提示:將常出現的溫濕度劃分為多個范圍,且將臨界值設為設定值,將讀取到的溫濕度與設定值進行對比,播報對應的語音。
播報程序:


(3)將溫濕度數據存入EEPROM區
內部EEPROM寫一字節:先寫地址,再寫數據。需要注意的是,在EEPROM寫字節之前需要先將那一扇區的數據擦除。


由STC89C52內部EEPROM詳細地址表可以編寫。詳細地址表如表1所示。

表1 STC89C52內部EEPROM詳細地址表
在完成硬件設計后,對系統進行仿真如圖3所示。系統設置的初始時間為2020年7月25日星期六18點17分58秒,初始鬧鐘時間為18點18分,可通過按下rep按鈕實現語音播報功能,系統還設有五個按鍵,利用加入副屏實現對當前時間的校準與鬧鐘的設置。仿真時將DHT11溫濕度調為27℃、75%,與LCD液晶屏顯示保持一致。由于Proteus 8 Professional仿真軟件元件庫中,沒有語音模塊,在仿真時,采用示波器代替語音模塊,通過觀察波形的輸出實現語音播報。

圖3 系統仿真圖
根據仿真電路圖,進行對硬件實物的連接測試系統的可行性與穩定性,測試結果如圖4所示,由圖可見,實際測試結果與仿真結果一致,時間顯示與調節、實時溫濕度顯示、語音播報等基本功能均可穩定實現。

圖4 液晶屏實物顯示圖
該電子時鐘設計通過Keil uVision4進行C語言編譯設計,通過控制主控芯片STC89C52實現溫濕度監控顯示、實時時間顯示與設置、語音播報功能等基本功能。經過對系統的硬件測試,基本功能均可達到設計的預期效果。從測試中看出該系統穩定性好,操作簡單,具有一定的實用性,更加貼近于人們日常生活中的使用習慣,使人們的生活更加便利。