基于ARM9的帶農歷實時時鐘LCD顯示設計
2.2 更改時間和設置報警時間
采用S3C2440A的UART,在PC機上實現對實時時鐘的更改和設置報警時間。其通訊協議為:當從PC機上發送0xaa時,分別將年、月、日、星期、小時、分和秒寫到實時時鐘數據寄存器中。當S3C2440A接收到數據后發送0xaa以示確認,調用前面的寫操作函數,從而實現對實時時鐘的更改;當從PC機上發送0xbb時,分別將預置的報警時間ALMYEAR(年)、ALMMON(月)、ALMDATE(日)、ALMHOUR(小時)、ALMMIN(分)和ALMSEC(秒)寫到報警時間數據寄存器中,當S3C2440A接收到數據后發送0xbb以示確認,調用設置報警時間設置函數,從而實現對報警時間的設置。通過設置報警控制寄存器RTCALM,即可實現報警,程序流程圖如圖4所示。本文引用地址:http://www.104case.com/article/150711.htm
2.3 農歷顯示設計
S3C2440的實時時鐘模塊沒有提供農歷的時間信息,因此采用公歷轉農歷的方式,實現對農歷的顯示。公歷轉換為農歷的算法是:首先建立公歷年對應的農歷數據,并將其存放入數組中,然后通過查表的方式實現公歷與農歷的轉換。
建立公歷年對應的農歷數據,每年用3個字節表示。
公歷年對應的農歷數據的第1 Byte的高4位表示農歷閏年月份,低4位表示農歷1~4月的大小,其具體含義如表1所示。第2 Byte表示農歷5~12月的大小,其具體含義如表2所示。第3 Byte的最高位表示農歷第13個月的大小,第7位和第6位表示春節所在的公歷月份,低5位表示春節所在的公歷日期,其具體含義如表3所示。
led顯示器相關文章:led顯示器原理
評論