【導(dǎo)讀】電子萬年歷越來越普遍,功能也越來越多。人們根據(jù)日常的需求,設(shè)計出一種能夠?qū)崿F(xiàn)測溫、語音報警、秒表、鬧鐘等一系列功能的電子萬年歷。本文詳細介紹了單片機的可測溫式電子萬年歷的設(shè)計與實現(xiàn)。
本文設(shè)計了一種基于單片機STC89C52 的可測溫式電子萬年歷,能實時地將當(dāng)前時間和周圍的環(huán)境溫度顯示出來,并具有鬧鐘、秒表、語音報時的功能。萬年歷主要使用溫度傳感器DS18B20 采集溫度信息,與單片機實現(xiàn)雙向通信;時鐘芯片DS1302 實現(xiàn)時鐘,準(zhǔn)確計時;并通過語音芯片完成整點報時和溫度報警功能。該萬年歷電路結(jié)構(gòu)簡單,具有時間精確、抗干擾能力強、功耗低、可靠性高等優(yōu)點。
該可測溫式電子萬年歷主要由STC89C52、時鐘芯片、溫度采集、顯示電路、語音報警等組成。按鍵可以實現(xiàn)顯示內(nèi)容的切換、時間的調(diào)整以及語音報警的設(shè)置。
1 硬件電路的設(shè)計
該可測溫式電子萬年歷工作時,首先初始化時鐘芯片,單片機從時鐘芯片讀取時間和日期等信息,同時又從溫度傳感器采集當(dāng)前環(huán)境溫度,經(jīng)過驅(qū)動電路送給液晶顯示屏,顯示相關(guān)的信息。其中,按鍵可以對時間、日期、星期和溫度進行調(diào)整,并控制鬧鐘和秒表的功能。萬年歷又加入了語音芯片,可以實現(xiàn)整點報時和溫度報警的功能。
(1)時鐘芯片DS1302
DS1302 在時間顯示方面應(yīng)用非常普遍,可以對年、月、日、周、時、分、秒進行計時,并且具有閏年補償功能,工作電壓為2.5V ~ 5.5V。采用三線接口與單片機進行同步通,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM 數(shù)據(jù)。DS1302內(nèi)部有一個用于臨時性放數(shù)據(jù)的RAM 寄存器,具有主電源和后備電源兩個引腳,并且具有對后備電源進行電流充電的能力。DS1302 與單片機之間采用串行數(shù)據(jù)傳輸,控制液晶屏顯示時間信息。
圖1 DS1302 引腳圖
DS1302 的引腳圖如圖1 所示, 其中Vcc2 為主電源,Vcc1 為后備電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。X1、X2 是振蕩源,外接32.768kHz晶振。RST 是復(fù)位/ 片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。當(dāng)RST 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302 進行操作。如果在傳送過程中RST 置為低電平,則會終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc > 2.0V 之前,RST 必須保持低電平。只有在SCLK 為低電平時,才能將RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端( 雙向) ;SCLK 為時鐘輸入端。
(2)溫度傳感器DS18B20
溫度傳感器DS18B20 直接與單片機連接,避免A/D 模數(shù)轉(zhuǎn)換模塊,降低硬件成本,簡化系統(tǒng)電路。DS18B20 的電壓范圍為:3.0 ~ 5.5V,在寄生電源方式下可由數(shù)據(jù)線供電,采用獨特的單線接口方式。DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。測量溫度的范圍為- 55℃~+ 125℃之間,測溫精度可以達到0.5℃。測量結(jié)果直接輸出數(shù)字溫度信號,串行傳送給單片機的CPU,同時可傳送CRC 校驗碼,具有極強的抗干擾糾錯能力。
DS18B20 與單片機的連接方式有兩種:寄生電源連接方式和外部電源連接方式。該可測溫式電子萬年歷采用外部電源連接方式。連接方法即DS18B20 的1 腳接地,2 腳(DQ 引腳) 與單片機的一根I/O口線連接(P3.2 腳),3 腳接電源+5V。在STC89C52 的I/O 口線與+5V 之間連接一4.7K 的上拉電阻,以保證數(shù)據(jù)采集的正常進行。
(3)LCD1602 溫度顯示的設(shè)計
該室溫報警裝置液晶顯示屏采用LCD1602,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。
在單片機系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有顯示質(zhì)量高、數(shù)字式接口體積小、重量輕、功耗低的優(yōu)點。LCD1602 液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160 個不同的點陣字符圖形,每一個字符都有一個固定的代碼,與單片機連接后通過C 語言編程就可以工作。在正常工作狀態(tài)下,電子萬年歷的設(shè)計連接圖如圖2 所示。
圖2 LCD1620 與單片機的連線圖
[page] 2 軟件系統(tǒng)設(shè)計方案
該萬年歷的程序流程圖如圖3 所示,具體流程如下:首先,接通電源,上電工作,DS1302、DS18B20、LCD1602 進行初始化,通過單片機控制液晶屏顯示“時分秒”、“溫度”、“年月日”、“星期”,并伴隨整點報時的功能;然后,進入功能設(shè)置,第一次按下按鍵K4 可以調(diào)整“時分秒”和“年月日”,此時K1、K2 和K3 分別對應(yīng)時間和日期“加”、“減”和“移位選擇”的功能,日期發(fā)生變化相應(yīng)的“星期”也會跟著變化;第二次按下按鍵K4 可以設(shè)置鬧鐘的功能,此時K1、K2 和K3 分別對應(yīng)時間和日期“關(guān)閉”、“開啟”和“移位選擇”的功能;第三次按下按鍵K4 可以設(shè)置秒表的功能,此時K1、K2 和K3 分別對應(yīng)時間和日期“復(fù)位”、“暫停”和“計時”的功能;第四次按下按鍵K4 可以退出設(shè)置功能,因為該萬年歷加入了語音芯片,此時按下K2 鍵具有語音報時的功能。
由于DS18B20 具有溫度采集檢測的功能,所以液晶屏顯示的溫度會隨著周圍環(huán)境溫度的變化而變化。該萬年歷設(shè)置有復(fù)位電路,連接一個按鍵K 可以自動實現(xiàn)復(fù)位功能。
圖3 可測溫式電子萬年歷程序流程圖
3 調(diào)試和分析
待該可測溫式電子萬年歷焊接和軟件編程完成后,進入調(diào)試環(huán)節(jié),將keil4 中C 語言程序生成的hex 文件燒入到STC89C52 芯片中,連接電源后將萬年歷放入模擬環(huán)境中進行系統(tǒng)調(diào)試,調(diào)試結(jié)果如圖4 所示。液晶顯示屏顯示“時間”、“溫度”、“日期”和“星期”信息,同時可以整點報時,如圖4 中A 圖所示。
圖4 可測溫式電子萬年歷調(diào)試結(jié)果圖
第一次按下K4 進入時間和日期的設(shè)置,調(diào)試結(jié)果如圖4 中B 圖所示;第二次按下K4 進入鬧鐘的設(shè)置,“Y”為開啟鬧鐘,“N”為關(guān)閉鬧鐘,調(diào)試結(jié)構(gòu)如圖4 中C圖所示;第三次按下K4 進入秒表的設(shè)置,調(diào)試結(jié)構(gòu)如圖4 中D 圖所示;第四次按下K4 退出功能設(shè)置,此時按下K2 具有語音報時功能。
結(jié)語
電子萬年歷在生活中日益普遍,該設(shè)計主要利用時鐘芯片DSl302、溫度傳感器DS18B20 和液晶屏LCD1602 構(gòu)建了一個可測溫式萬年歷裝置,電路結(jié)構(gòu)簡單,具有語音報時功能,適用于家庭生活,使用價值高,具有較好的應(yīng)用前景。
相關(guān)閱讀:
設(shè)計解析:基于單片機的智能電表的設(shè)計
單片機學(xué)習(xí)無從下手?小編來支招!
經(jīng)驗分享:解決單片機EMC問題的方法