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