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