簡析基於DS1302和LCD1602的萬年曆系統設計論文

簡析基於DS1302和LCD1602的萬年曆系統設計論文

  0引言

  在日常生活中,無論哪一行業,哪一領域,時間授時都是不可或缺的。從古老的鐘表到現代的電子裝置都提供時間授時的功能。因此,對於微控制器學習者來說,設計並實現一款低成本的,有操作性的,提供年,月,日,小時,分,秒,星期等基本計時功能的萬年曆系統,顯得特別實用,特別有意義。

  1總體設計及原理圖

  萬年曆的基本功能一是要提供年月日等基本時間項的授時;二是可以修改時間項。基於以上兩個功能,我們萬年曆總體設計方案。

  萬年曆有時鐘計時模組,顯示模組,調整時鐘模組和控制器4部分組成。接下來的任務就是對以上模組進行選型。低成本,可操作是選型的標準。對於控制器,選擇最常用的C51系列微控制器STC89C52。

  STC89C52是由宏品科技生產的是一種低功耗8位基於經典C51核心的微處理器,具有8 KhyteFLASH儲存器,512 byte RAM , 4 KByte EEPROM , 32位通用IO介面,可以直接用串列埠下載程式。

  時鐘模組選擇由dallas公司生產的時鐘晶片DS1302,DS1302是一款支援年月日,小時分秒,星期,閏年補償的實時時鐘晶片;其簡單三線結構可以很方便地與微控制器通用IO相連,進行序列匯流排讀寫傳輸。

  顯示模組選擇16x2的字元點陣模組LCD 16020LC D 1602的控制器以Hitachi公司生產的HD44780晶片最為常見。LC D 1602引腳主要包括3類,第1類是電源。第2類是8位資料I/0通道,用於讀寫LC D 1602。第3類是3根控制線,RS,R/W和E,其中,RS和R/W是用於實現LCD不同操作的。

  E是作為讀寫的啟動訊號,有點類似一個時鐘訊號,資料要寫人LC D 1602或從LCD 1602讀出資料均需要首先置E訊號為高至少1 s,然後置低。

  調整時鐘模組設計了4個輕觸開關,用於設定和修改時間項。

  根據總體設計方案和各個模組的特性。設計了萬年曆的原理圖STC89C52的PO口作為透過IO來用,連線上拉電阻。時鐘晶片DS1302由32.768 Khz的品振作為時鐘源,用於序列資料傳輸的SCLK,SDA,RST分別於STC89C52的P0.3,P0.4,P0.5相連。顯示模組LC D 1602的8位資料通道DO,D7與STC89C52的P2相連,其控制引腳RS,RW,E分別於STC89C52的P0.1 , P0.2 , P0.3相連。P1.O}P1.4連線4個上拉電阻和輕觸開關,未按下為高電平,按下為低電平。

  2軟體設計

  透過STCS9cs2讀取DS1302各個時間項的值,然後顯示到LC D1602,4個輕觸開關,S1用於選擇年月日等時間修改項,S2和S3用於在修改時間項,增加和減少某個時間項的數值,S4鍵用於確認時間項的修改。基於以上需要實現的`功能,設計了軟體總體流程圖。

  首先設計了讀取DS1302各個時間項暫存器模組。DS1302有兩類暫存器,一類是時間項讀寫暫存器,另一類是控制暫存器,與萬年曆系統相關有7個時間項讀寫暫存器和一個控制暫存器。

  7個時間項暫存器分別可以讀寫秒,分,小時,日期,月,星期和年。控制暫存器control,其第7位WP用於對時間項暫存器的防寫,該位為0,允許對年月日等時間項暫存器寫,該位為1,禁止對其他暫存器寫。所有的時間項暫存器值均採用BCD碼格式存放。DS1302時間項暫存器是讀還是寫由該暫存器號的最後一位決定,最後一位為0就是寫人,為1就是讀出。秒暫存器最高位CH用於控制DS1302計時的啟停。 CH為1計時會中止,DS1302進人待機模式。CH為0啟動計時。在按鍵設定DS1302時間項值的時候該位需置1。小時暫存器可以設定12或24小時制,第7位為1選擇12小時制,在這種制式下,第5位為1表示PM,為0表示AM。第7為為0選擇24小時制。

  軟體的第3個部分是設計如何實現按鍵設定修改時間項。按鍵S1的功能有兩個:一是按下表示需要設定時間項,中止DS1302計時,關閉DS1302暫存器防寫;二是再次不斷按下選擇設定不同的時間項,從年開始,月,日,一直到星期,再回到年,在哪個時間項停留,在LC D 1602顯示的該專案就閃爍,就可以開始按S2或S3開始增加或減少該時間項的值。S4鍵的功能是確認修改,開啟DS1302防寫,重新啟動DS1302計時。

  除了以上3部分的軟體設計,軟體部分還設計了初始化LCD 1602和DS1302的程式。

  3結束語

  從設定目標任務,完成總體設計方案,基於低成本、通用原則選擇相應的元器件,設計原理圖,到整體軟體設計,各個模組的軟體設計,本文完成了萬年曆系統的設計,並完成了實物設計。從應用的角度看,該系統既可以滿足學習者很好地學習微控制器知識,又可以為學習者設計、完成其他系統提供借鑑。

最近訪問