前市售的電子日歷品種較多,一般只能顯示時間信息,功能單一。筆者根據(jù)學(xué)校特點,設(shè)計了一款適于學(xué)校使用的電子日歷,該電子日歷采用幾種新型芯片,利用單片機技術(shù),做到了功能多、顯示全、成本低,并有掉電保持功能,非常適于學(xué)校各部門的使用,是傳統(tǒng)鐘表的升級換代產(chǎn)品。
1功能介紹
電子日歷面板如圖1所示。該電子日歷可顯示年、月、日、星期、時、分的時間信息以及溫度值。另外,還能顯示校歷周數(shù),重大節(jié)慶日的倒計時天數(shù)。此功能是區(qū)別于其他電子日歷的特點所在。為設(shè)定初值,電子日歷設(shè)有三個按鍵,采用循環(huán)設(shè)定方式。過程如下:按設(shè)定鍵,首先進(jìn)入校歷周數(shù)初值設(shè)定,按增/減鍵,可選擇校歷周數(shù)的2位十進(jìn)制初值;再按設(shè)定鍵,進(jìn)入節(jié)慶日倒計時時間初值設(shè)定,可選擇3位十進(jìn)制初值;第三、四次按設(shè)定鍵,結(jié)合增/減鍵,分別用于設(shè)定節(jié)慶日2個漢字的顯示設(shè)定,如“校慶”、“評估”等;再按設(shè)定鍵,則調(diào)整表的時間顯示。全部設(shè)定過程完畢,進(jìn)入正常走時狀態(tài)。由于本系統(tǒng)有掉電保護功能,停電時,無顯示,但能正常走時和計數(shù)。來電時,正常顯示,不需重新設(shè)定初值,使用方便。
2硬件設(shè)計
2.1系統(tǒng)電路
系統(tǒng)電路簡圖如圖2所示。整個系統(tǒng)采用AT89C52作為中央處理芯片,用于數(shù)據(jù)處理,初值設(shè)定,顯示控制等。日歷芯片采用DS12C887,溫度傳感器芯片采用DS18B20。采用可編程接口芯片81C55擴展接口,81C55的PA口用于輸出段碼,利用三態(tài)總線驅(qū)動器74LS244增加驅(qū)動能力,PB口低4位接4-16譯碼器CD4045,作為時間溫度顯示的位控信號,通過三極管控制LED顯示器的共陰極端。PB口的高4位同樣外接譯碼器,作為漢字顯示的位控信號,整個系統(tǒng)采用動態(tài)顯示方式。
2.2時鐘芯片
DS12C887是跨越2000年的時鐘芯片,他將晶體振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片的上方,組成一個加厚的集成電路模塊。電路通電時其充電電路便自動對可充電電池充電,充足一次電可供芯片運行半年,正常工作時可保證時鐘數(shù)據(jù)10年內(nèi)不會丟失。另外,他的114 B的非易失性靜態(tài)RAM可供用戶使用,可在主機掉電時保存一些重要的數(shù)據(jù)[1]。
在本系統(tǒng)中,將校歷周數(shù)、節(jié)慶日漢字代碼、天數(shù)等信息保存在其中,使本系統(tǒng)有掉電保持功能。使用此芯片首先要對其進(jìn)行初始化,為芯片內(nèi)部寄存器設(shè)立標(biāo)志位并賦初值,同時加載時鐘計數(shù)初值。初始化完成后,即可以從該芯片中讀取時間。該芯片的口地址為0BF00H~0BF09H,分別是DS12C887的年、月、日、星期以及時間等的時標(biāo)寄存器。通過相應(yīng)口地址將實時時間值讀出后,經(jīng)過處理得到段碼,存入相應(yīng)顯示緩沖單元,供顯示子程序調(diào)用,即實現(xiàn)了時鐘顯示功能。
2.3溫度轉(zhuǎn)換
DS18B20是單總線溫度傳感器,與單片機通信只要一根I/O線,因而使用方便[2]。
本系統(tǒng)利用P10口作為I/O口線直接讀取溫度值。這種方式比其他溫度傳感器省去了信號調(diào)理、標(biāo)度轉(zhuǎn)換、A/D轉(zhuǎn)換等前向通道電路,使電路簡化,編程容易;另外他采用低電壓供電,測溫范圍為-55~+125 ℃,在—10~+85 ℃范圍內(nèi)誤差為0.5 ℃,這些特點滿足在測量室溫方面的要求。
2.4漢字顯示原理
節(jié)慶日的每個漢字分別由4個8×8 LED點矩陣顯示器組成[3],以“慶”為例,說明其顯示原理:其點陣如圖3所示,根據(jù)點陣圖,每個漢字由16行16列點陣組成,將每列分成2個8位段碼,因而1個漢字由32個段碼組成,“慶”字的段碼如圖所示。顯示時,每列的2個段碼分2次送出,而對應(yīng)這2次掃描的同一列的位控信號不變,因而完成1個漢字的顯示需要32次掃描過程。編程時,將常用的漢字的段碼以表的形式存于ROM中,設(shè)定時用查表指令取出段碼,然后將段碼再存到DS12C887的RAM中,以實現(xiàn)斷電保持。
[!--empirenews.page--]
3軟件設(shè)計
程序設(shè)計可采用匯編語言或C語言編程,主程序流程如圖4所示。在主程序中,主要實現(xiàn)初始化,按鍵處理,時間、溫度信息的采集和顯示段碼的形成以及漢字段碼的存取。當(dāng)日時標(biāo)變化時,應(yīng)將節(jié)慶日倒計時天數(shù)減1;星期時標(biāo)為星期一時,應(yīng)將校歷周數(shù)加1。當(dāng)有鍵按下時,進(jìn)入按鍵處理程序,分別設(shè)定校歷周數(shù)、節(jié)慶日的漢字、倒計時時間等。采用動態(tài)顯示方式,即在T0定時中斷程序中,每次從顯示緩沖區(qū)中取出一個段碼由81C55的PA口送出,相應(yīng)位控碼由81C55的PB送出,輪流顯示。按鍵處理、T0定時中斷子程序流程圖從略。
4結(jié)語
本電子日歷技術(shù)新,成本低,適于產(chǎn)品化以及批量生產(chǎn)。另外,本系統(tǒng)也可以由學(xué)生開發(fā)設(shè)計,以提高學(xué)生的動手能力、理論聯(lián)系實際以及分析和解決實際問題的能力。在本系統(tǒng)基礎(chǔ)上,可以由學(xué)生進(jìn)一步開發(fā)新的功能,例如時鐘芯片DS12C887的鬧鐘功能,漢字顯示內(nèi)容的增加及定時顯示等。因而本系統(tǒng)也是相關(guān)課程或畢業(yè)設(shè)計的一個很好的設(shè)計題目。
參考文獻(xiàn)
[1]楊振江,杜鐵軍,李群.流行單片機實用子程序及應(yīng)用實例[M].西安:西安電子科技大學(xué)出版社,2002
[2]王建校,楊建國,寧改娣,等.C51系列單片機及C51程序設(shè)計[M].成都:巴蜀書社,2002