譚銘明,姚玲英(通訊作者),阮煜琴,梁俊焱,鐘楚洪
(廣東第二師范學(xué)院物理與信息工程系,廣東廣州,510303)
在智能化信息時代的發(fā)展下,人們對于傳統(tǒng)時鐘的要求也逐漸增多。該智能貼心時鐘以STC89C52單片機(jī)為核心,利用DS1302時鐘模塊將時間顯示詳細(xì)至年、月、日、星期、時、分、秒,并可通過按鍵來實(shí)現(xiàn)對時間的校準(zhǔn)和鬧鐘的設(shè)置。同時,利用DHT11溫濕度傳感器對溫濕度進(jìn)行采集,單片機(jī)通過溫濕度變化產(chǎn)生不同的信號,以按鍵實(shí)現(xiàn)當(dāng)前氣候狀態(tài)的溫濕度播報、貼心提示。
系統(tǒng)電路框圖如圖1所示,根據(jù)功能之間的不同,可將該系統(tǒng)分為六個部分,分別為STC89C52單片機(jī)、溫濕度測量電路、時鐘發(fā)生電路、LCD顯示電路、語音播報電路及按鍵電路。
圖1 系統(tǒng)電路框圖
2.1.1 主控制模塊
該設(shè)計(jì)使用STC89C52芯片作為貼心時鐘的處理器,C52系列芯片編程簡單便捷,配合開發(fā)板與Keil可以輕松地對芯片中的代碼進(jìn)行修改和測試。該電路作為貼心時鐘的處理器,承擔(dān)了信息處理和信息存儲的功能。這部分電路包含主芯片STC89C52,11.0592MHz晶振電路以及復(fù)位電路。
2.1.2 溫濕度測量電路
該電路的主要部分為DHT11溫濕度傳感模塊,占用1個I/O口。該模塊可提供實(shí)時的溫濕度數(shù)據(jù),并通過一個數(shù)據(jù)端口輸送給處理器,且該模塊使用比較方便,模塊上引出的3個接線端口直接連接到單片機(jī)上便可使用,由于用于傳輸數(shù)據(jù)的只有一個端口,使用一個I/O口便能收集溫濕度數(shù)據(jù),十分節(jié)省I/O口。該電路承擔(dān)了提供溫濕度數(shù)據(jù)的功能,并且在模塊的VCC與GND之間連接了一個104瓷片電容,用于濾除掉雜波成分,使其輸出數(shù)據(jù)的時候電壓更穩(wěn)定。
2.1.3 時鐘電路
時鐘電路采用DS1302模塊,共占用3個I/O口。該模塊可提供時分秒、年月日等信息,采用串行通信方式,節(jié)省I/O口,且具有工作電壓范圍較寬,芯片功耗低的優(yōu)點(diǎn),其承擔(dān)的主要功能為提供日期與時間信息。DS1302采用雙電源供電,在主電源非正常斷電時,仍可利用備用電源繼續(xù)工作。
2.1.4 LCD時鐘顯示電路
該電路采用液晶顯示屏LDC1604作為貼心時鐘的屏幕,共占用11個I/O口。該顯示屏最多能同時顯示16×4個字符,使用起來簡單便捷,但該模塊引腳較多,除VCC與GND外仍有12個端口。顯示屏采用并行通信方式,直接把八個數(shù)據(jù)傳輸口與單片機(jī)相連。其承擔(dān)的主要功能為顯示出當(dāng)前的溫濕度、日期與時間。雖然占用了8個I/O口作為通信端口,但是同時保證了數(shù)據(jù)的實(shí)時顯示,減少延時。
2.1.5 語音播報電路
圖2 主程序流程圖
語音播報電路我們采用DFPlayer Mini模塊(以下簡稱其為語音模塊),采用串口通信。此模塊具有體積小巧,價格實(shí)惠,可直接接駁揚(yáng)聲器等優(yōu)點(diǎn)。語音模塊上已集成有MP3、WAV、WMA的硬解碼功能,無需進(jìn)行復(fù)雜的編程,通過簡單的串口指令即可控制其播放指定的音頻。該模塊上含有一個TF卡槽,音頻存儲在TF卡里,只要將其插入卡槽,便能使其讀取到TF卡內(nèi)的音頻信息。語音模塊主要承擔(dān)了存儲音頻信息及驅(qū)動揚(yáng)聲器播放音頻的功能,按下外置的按鈕即可播放當(dāng)前溫濕度信息、前后溫濕度對比、以及對應(yīng)的穿衣搭配和增減衣物建議。
2.1.6 鍵盤電路鍵盤電路目前采用了各個功能配備獨(dú)立按鍵的設(shè)計(jì),按鈕類型采用微動按鈕,分別設(shè)有“返回主界面按鈕”、“進(jìn)入副界面按鈕”、“UP按鈕”,“DOWN按鈕”,“確認(rèn)按鈕”,以及“語音播報按鈕”這6個按鈕。這6個按鈕目前直接分配了6個I/O口,按鈕的另一端接地,當(dāng)有按鍵按下時,I/O口的電平變?yōu)榈碗娖?,隨即由芯片檢測到,并執(zhí)行對應(yīng)的功能。
2.2.1 系統(tǒng)主程序設(shè)計(jì)
將主程序分成各個子程序模塊,逐一實(shí)現(xiàn)各個模塊功能,其整體思路如圖2所示。
2.2.2 語音模塊軟件實(shí)現(xiàn)
(1)從EEPROM區(qū)讀取存儲的溫濕度數(shù)據(jù)
內(nèi)部EEPROM讀一字節(jié):先寫地址,再讀數(shù)據(jù)。
讀操作程序:
(2)溫濕度以及穿衣小提示播報
播報溫濕度:將從DHT11芯片獲取的溫濕度進(jìn)行播報,需要注意的是獲取的溫濕度為十六進(jìn)制,而語音播報的對應(yīng)值為十進(jìn)制,此時,通過十進(jìn)制與十六進(jìn)制轉(zhuǎn)換,完成語音播報。
播報穿衣小提示:將常出現(xiàn)的溫濕度劃分為多個范圍,且將臨界值設(shè)為設(shè)定值,將讀取到的溫濕度與設(shè)定值進(jìn)行對比,播報對應(yīng)的語音。
播報程序:
(3)將溫濕度數(shù)據(jù)存入EEPROM區(qū)
內(nèi)部EEPROM寫一字節(jié):先寫地址,再寫數(shù)據(jù)。需要注意的是,在EEPROM寫字節(jié)之前需要先將那一扇區(qū)的數(shù)據(jù)擦除。
由STC89C52內(nèi)部EEPROM詳細(xì)地址表可以編寫。詳細(xì)地址表如表1所示。
表1 STC89C52內(nèi)部EEPROM詳細(xì)地址表
在完成硬件設(shè)計(jì)后,對系統(tǒng)進(jìn)行仿真如圖3所示。系統(tǒng)設(shè)置的初始時間為2020年7月25日星期六18點(diǎn)17分58秒,初始鬧鐘時間為18點(diǎn)18分,可通過按下rep按鈕實(shí)現(xiàn)語音播報功能,系統(tǒng)還設(shè)有五個按鍵,利用加入副屏實(shí)現(xiàn)對當(dāng)前時間的校準(zhǔn)與鬧鐘的設(shè)置。仿真時將DHT11溫濕度調(diào)為27℃、75%,與LCD液晶屏顯示保持一致。由于Proteus 8 Professional仿真軟件元件庫中,沒有語音模塊,在仿真時,采用示波器代替語音模塊,通過觀察波形的輸出實(shí)現(xiàn)語音播報。
圖3 系統(tǒng)仿真圖
根據(jù)仿真電路圖,進(jìn)行對硬件實(shí)物的連接測試系統(tǒng)的可行性與穩(wěn)定性,測試結(jié)果如圖4所示,由圖可見,實(shí)際測試結(jié)果與仿真結(jié)果一致,時間顯示與調(diào)節(jié)、實(shí)時溫濕度顯示、語音播報等基本功能均可穩(wěn)定實(shí)現(xiàn)。
圖4 液晶屏實(shí)物顯示圖
該電子時鐘設(shè)計(jì)通過Keil uVision4進(jìn)行C語言編譯設(shè)計(jì),通過控制主控芯片STC89C52實(shí)現(xiàn)溫濕度監(jiān)控顯示、實(shí)時時間顯示與設(shè)置、語音播報功能等基本功能。經(jīng)過對系統(tǒng)的硬件測試,基本功能均可達(dá)到設(shè)計(jì)的預(yù)期效果。從測試中看出該系統(tǒng)穩(wěn)定性好,操作簡單,具有一定的實(shí)用性,更加貼近于人們?nèi)粘I钪械氖褂昧?xí)慣,使人們的生活更加便利。