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