前市售的電子日歷品種較多,一般只能顯示時間信息,功能單一。筆者根據學校特點,設計了一款適于學校使用的電子日歷,該電子日歷采差模電感用幾種新型芯片,利用單片機技術,做到了功能多、顯示全、成本低,并有掉電保持功能,非常適于學校各部門的使用,是傳統鐘表的升級換代產品。
1功能介紹
電子日歷面板如圖1所示。該電子日歷可顯示年、月、日、星期、時、分的時間信息以及溫度值。另外,還能顯示校歷周數,重大節慶日的倒計時天數。此功能是區別于其他電子日歷的特點所在。為設定初值,電子日歷設有三個按鍵,采用循環設定方式。過程如下:按設定鍵,首先進入校歷周數初值設定,按增/減鍵,可選擇校歷周數的2位十進制初值;再按設定鍵,進入節慶日倒計時時間初值設定,可選擇3位十進制初值;第三、四次按設定鍵,結合增/減鍵,分別用于設定節慶日2個漢字的顯示設定,如“校慶”、“評估”等;再按設定鍵,則調整表的時間顯示。全部設定過程完畢,進入正常走時狀態。由于本系統有掉電保護功能,停電時,無顯示,但能正常走時和計數。來電時,正常顯示,不需重新設定初值,使用方便。
2硬件設計
2.1系統電路
系統電路簡圖如圖2所示。整個系統采用AT89C52作為中央處理芯片,用于數據處理,初值設定,顯示控制等。日歷芯片采用DS12C887,溫度傳感器芯片采用DS18B20。采用可編程接口芯片81C55擴展接口,81C55的PA口用于輸出段碼,利用三態總線驅動器74LS244增加驅動能力,PB口低4位接4-16譯碼器CD4045,作為時間溫度顯示的位控信號,通過三極管控制LED顯示器的共陰極端。PB口的高4位同樣外接譯碼器,作為漢字顯示的位控信號,整個系統采用動態顯示方式。
2.2時鐘芯片
DS12C887是跨越2000年的時鐘芯片,他將晶體振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片的上方,組成一個加厚的集成電路模塊。電路通電時其充電電路便自動對可充電電池充電,充足一次電可供芯片運行半年,正常工作時可保證時鐘數據10年內不會丟失。另外,他的114 B的非易失性靜態RAM可供用戶使用,可在主機掉電時保存一些重要的數據[1]。
在本系統中,將校歷周數、節慶日漢字代碼、天數等信息保存在其中,使本系統有掉電保持功能。使用此芯片首先要對其進行初始化,為芯片內部寄存器設立標志位并賦初值,同時加載時鐘計數初值。初始化完成后,即可以從該芯片中讀取時間。該芯片的口地址為0BF00H~0BF09H,分別是DS12C887的年、月、日、星期以及時間等的時標寄存器。通過相應口地址將實時時間值讀出后,經過處理得到段碼,存入相應顯示緩沖單元,供顯示子程序調用,即實現了時鐘顯示功能。
2.3溫度轉換
DS18B20是單總線溫度傳感器,與單片機通信只要一根I/O線,因而使什么是電感器用方便[2]。
本系統利用P10口作為I/O口線直接讀取溫度值。這種方式比其他溫度傳感器省去了信號調理、標度轉換、A/D轉換等前向通道電路,使電路簡化,編程容易;另外他采用低電壓供電,測溫范圍為-55~+125 ℃,在—10~+85 ℃范圍內誤差為0.5 ℃電感器生產,這些特點滿足在測量室溫方面的要求。
2.4漢字顯示原理
節慶日的每個漢字分別由4個8×8 LED點矩陣顯示器組成[3],以“慶”為例,說明其顯示原理:其點陣如圖3所示,根據點陣圖,每個漢字由16行16列點陣組成,將每列分成2個8位段碼,因而1個漢字由32個段碼組成,“慶”字的段碼如圖所示。顯示時,每列的2個段碼分2次送出,而對應這2次掃描的同一列的位控信號不變,因而完成1個漢字的顯示需要32次掃描過程。編程時,將常用的塑封電感器漢字的段碼以表的形式存于ROM中,設定時用查表指令取出段碼,然后將段碼再存到DS12C887的RAM中,以實現斷電保持。
3軟件設計
程序設計可采用匯編語言或C語言編程,主程序流程如圖4所示。在主程序中,主要實現初始化,按鍵處理,時間、溫度信息的采集和顯示段碼的形成以及漢字段碼的存取。當日時標變化時,應將節慶日倒計時天數減1;星期時標為星期一時,應將校歷周數加1。當有鍵按下時,進入按鍵處理程序,分別設定校歷周數、節慶日的漢字、倒計時時間等。采用動態顯示方式,即在T0定時中斷程序中,每次從顯示緩沖區中取出一個段碼由81C55的PA口 大功率電感廠家 |大電流電感工廠