適于學(xué)校使用的電子日歷設(shè)計
前市售的電子日歷品種較多,一般只能顯示時間信息,功能單一。筆者根據(jù)學(xué)校特點(diǎn),設(shè)計了一款適于學(xué)校使用的電子日歷,該電子日歷采用幾種新型芯片,利用單片機(jī)技術(shù),做到了功能多、顯示全、成本低,并有掉電保持功能,非常適于學(xué)校各部門的使用,是傳統(tǒng)鐘表的升級換代產(chǎn)品。
本文引用地址:http://www.ex-cimer.com/article/171758.htm1功能介紹
電子日歷面板如圖1所示。該電子日歷可顯示年、月、日、星期、時、分的時間信息以及溫度值。另外,還能顯示校歷周數(shù),重大節(jié)慶日的倒計時天數(shù)。此功能是區(qū)別于其他電子日歷的特點(diǎn)所在。為設(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)有掉電保護(hù)功能,停電時,無顯示,但能正常走時和計數(shù)。來電時,正常顯示,不需重新設(shè)定初值,使用方便。
2硬件設(shè)計
2.1系統(tǒng)電路
系統(tǒng)電路簡圖如圖2所示。整個系統(tǒng)采用AT89C52作為中央處理芯片,用于數(shù)據(jù)處理,初值設(shè)定,顯示控制等。日歷芯片采用DS12C887,溫度傳感器芯片采用DS18B20。采用可編程接口芯片81C55擴(kuò)展接口,81C55的PA口用于輸出段碼,利用三態(tài)總線驅(qū)動器74LS244增加驅(qū)動能力,PB口低4位接4-16譯碼器CD4045,作為時間溫度顯示的位控信號,通過三極管控制LED顯示器的共陰極端。PB口的高4位同樣外接譯碼器,作為漢字顯示的位控信號,整個系統(tǒng)采用動態(tài)顯示方式。
2.2時鐘芯片
DS12C887是跨越2000年的時鐘芯片,他將晶體振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片的上方,組成一個加厚的集成電路模塊。電路通電時其充電電路便自動對可充電電池充電,充足一次電可供芯片運(yùn)行半年,正常工作時可保證時鐘數(shù)據(jù)10年內(nèi)不會丟失。另外,他的114 B的非易失性靜態(tài)RAM可供用戶使用,可在主機(jī)掉電時保存一些重要的數(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)口地址將實(shí)時時間值讀出后,經(jīng)過處理得到段碼,存入相應(yīng)顯示緩沖單元,供顯示子程序調(diào)用,即實(shí)現(xiàn)了時鐘顯示功能。
2.3溫度轉(zhuǎn)換
DS18B20是單總線溫度傳感器,與單片機(jī)通信只要一根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 ℃,這些特點(diǎn)滿足在測量室溫方面的要求。
2.4漢字顯示原理
節(jié)慶日的每個漢字分別由4個8×8 LED點(diǎn)矩陣顯示器組成[3],以“慶”為例,說明其顯示原理:其點(diǎn)陣如圖3所示,根據(jù)點(diǎn)陣圖,每個漢字由16行16列點(diǎn)陣組成,將每列分成2個8位段碼,因而1個漢字由32個段碼組成,“慶”字的段碼如圖所示。顯示時,每列的2個段碼分2次送出,而對應(yīng)這2次掃描的同一列的位控信號不變,因而完成1個漢字的顯示需要32次掃描過程。編程時,將常用的漢字的段碼以表的形式存于ROM中,設(shè)定時用查表指令取出段碼,然后將段碼再存到DS12C887的RAM中,以實(shí)現(xiàn)斷電保持。
評論