《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 設計應用 > 基于ARM9的帶農歷實時時鐘LCD顯示設計
基于ARM9的帶農歷實時時鐘LCD顯示設計
摘要: S3C2440A是Samsung公司為手持設備應用提供的低功耗、高性價比芯片。S3C2440A基于ARM920T內核,并在ARM920T內核基本功能的基礎上集成了豐富的外圍功能模塊,如UART、RTC、LCD控制器等外圍器件,從而降低了嵌入式應用系統的成本。本文采用S3C2440A和WXCAT35液晶顯示屏模塊,搭建以兩者為基礎的嵌入式液晶系統工作平臺。在此平臺基礎上,詳細討論帶農歷的實時時鐘在液晶顯示屏上的顯示以及更改時間和設置報警時間的方法,并給出了具體的實現程序。
Abstract:
Key words :
  S3C2440A是Samsung公司為手持設備應用提供的低功耗、高性價比芯片。S3C2440A基于ARM920T內核,并在ARM920T內核基本功能的基礎上集成了豐富的外圍功能模塊,如UART、RTC、LCD控制器等外圍器件,從而降低了嵌入式應用系統的成本。本文采用S3C2440A和WXCAT35液晶顯示屏模塊,搭建以兩者為基礎的嵌入式液晶系統工作平臺。在此平臺基礎上,詳細討論帶農歷的實時時鐘在液晶顯示屏上的顯示以及更改時間和設置報警時間的方法,并給出了具體的實現程序。


  1 系統硬件設計

  1.1 實時時鐘(RTC)模塊

  S3C2440A集成了具有日歷功能的RTC模塊,它可以在系統關閉的情況下使用備用電池工作。RTC使用STRB/LDRB ARM操作傳輸二進制編碼的十進制數(BCD)的8位數據給CPU。數據包括年、月、日、星期、小時、分鐘、秒的時間信息。此外,RTC模塊還可以實現報警功能。RTC模塊采用32.768 kHz的外部晶體振蕩器,外部晶體振蕩器與S3C2440A的連接如圖1所示。XTIrtc和XTOrtc分別是RTC的32.768 kHz晶體振蕩器輸入和輸出,2個22 pF電容是晶體振蕩器的匹配電容,只有在外部所接電容為匹配電容的情況下,晶體振蕩器頻率才能保證在標稱頻率附近的誤差范圍內。

a.jpg

  1.2 通用異步接收傳輸(UART)模塊

  S3C2440A的UART提供了3個獨立的異步串行I/O端口,每個端口都可以在中斷模式或者DMA模式下操作。UART使用系統時鐘可以支持最高115.2 kb·s-1的速率。在對UART進行操作時,數據接收幀和發送幀的格式都是可編程的,它包含1個開始位,5~8個數據位,1個可選的奇偶位和1或2個停止位,這些都是通過線性控制器(ULCONn)設置。本文采用UART更改時間和設置報警時間,串口通信連接圖如圖2所示。

b.jpg

  1.3 LCD顯示模塊

  S3C2440A的LCD控制器的作用是將LCD圖像數據從系統存儲器中的視頻緩沖區傳送到外部LCD驅動器。LCD控制可以通過編程實現屏幕的不同要求,比如:水平和垂直像素的數量、接口時鐘、刷新率等。S3C2440A與WXCAT35液晶顯示屏模塊的連接電路如圖3所示。

c.jpg

  圖中LCD控制器接口信號的意義:

  VFRAME:LCD控制器與LCD驅動器之間的幀同步信號,它通知LCD屏新一幀的顯示,LCD控制器在一個完整幀的顯示后發出VFRAME信號,開始新一幀顯示。

  VLINE:LCD控制器與LCD驅動器之間的同步脈沖信號,LCD驅動器通過它來將水平移位寄存器的內容顯示到LCD屏上。

  VCLK:LCD控制器與LCD驅動器之間的像素時鐘信號。

  VM:LCD驅動器所使用的交流信號。LCD驅動器使用VM信號改變用于打開或者關閉像素的行和列電壓的極性,從而控制像素點的顯示或熄滅。

  VD0~VD23:LCD像素數據輸出端口。

  2 軟件設計

  2.1 讀寫RTC操作

  S3C2440內部集成了RTC模塊,其內部的寄存器 BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON和BCDYEAR分別存儲了當前的秒,分,小時,星期,日,月和年,表示時間的數值都是BCD碼。這些寄存器的內容可讀可寫。在進行讀寫操作時,必須將RTC控制寄存器RTCCON的第0位置1 。實現讀寫功能的程序如下。  

d.jpg

  2.2 更改時間和設置報警時間

  采用S3C2440A的UART,在PC機上實現對實時時鐘的更改和設置報警時間。其通訊協議為:當從PC機上發送0xaa時,分別將年、月、日、星期、小時、分和秒寫到實時時鐘數據寄存器中。當S3C2440A接收到數據后發送0xaa以示確認,調用前面的寫操作函數,從而實現對實時時鐘的更改;當從PC機上發送0xbb時,分別將預置的報警時間ALMYEAR(年)、ALMMON(月)、ALMDATE(日)、ALMHOUR(小時)、ALMMIN(分)和ALMSEC(秒)寫到報警時間數據寄存器中,當S3C2440A接收到數據后發送0xbb以示確認,調用設置報警時間設置函數,從而實現對報警時間的設置。通過設置報警控制寄存器RTCALM,即可實現報警,程序流程圖如圖4所示。

e.jpg

  2.3 農歷顯示設計

  S3C2440的實時時鐘模塊沒有提供農歷的時間信息,因此采用公歷轉農歷的方式,實現對農歷的顯示。公歷轉換為農歷的算法是:首先建立公歷年對應的農歷數據,并將其存放入數組中,然后通過查表的方式實現公歷與農歷的轉換。

  建立公歷年對應的農歷數據,每年用3個字節表示。

  公歷年對應的農歷數據的第1 Byte的高4位表示農歷閏年月份,低4位表示農歷1~4月的大小,其具體含義如表1所示。第2 Byte表示農歷5~12月的大小,其具體含義如表2所示。第3 Byte的最高位表示農歷第13個月的大小,第7位和第6位表示春節所在的公歷月份,低5位表示春節所在的公歷日期,其具體含義如表3所示。

f.jpgg.jpg

  以2010年為例,農歷無閏月,農歷1月和3月是大月,2月和4月是小月,故而第1 Byte為00001010(即0x0A);農歷的5月、8月、10月和12月是大月,6月、7月、9月和11月是小月,故而第2 Byte為10010101(即0x95);由于2010年的農歷沒有閏月,所以也就沒有第13個月,故而第3Byte的第7位為0,2010年春節所在的公歷2月14日,故而第3 Byte的第6~0位為1001110,即第3 Byte為0x4E。

  公歷轉農歷的算法框圖如圖5所示。

h.jpg

  2.4 實時時鐘的顯示

  通過調用字符顯示函數,將讀取的實時時鐘顯示在LCD屏幕上。本文將要顯示的實時時鐘字符轉換成字模,把所得的字模放在數組中,讀取實時時鐘寄存器,調用字符顯示函數顯示數字和漢字,從而將實時時鐘顯示在LCD屏幕上。最后顯示效果圖如圖6所示。

i.jpg

  3 結束語

  設計了基于Samsung公司ARM9處理器S3C2440和液晶顯示屏WXCAT35的帶農歷實時時鐘顯示電路。為了能夠實現RTC的實時顯示,采用S3C2440A中提供的RTC時間節拍中斷,讓它每秒鐘中斷一次,每次中斷讀取時間,刷新一次實時時鐘。此外,在通過UART對RTC進行修改后,采用外部按鍵中斷實現對實時時鐘的更新,從而完成對時間的修改。設計通過軟件形式使得不帶農歷實時時鐘芯片能夠實現對農歷的顯示,增強了芯片的應用范圍,為在需要農歷時鐘作為參考的工作環境提供了便利。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美三级网站在线观看 | 99视频久久 | 精品国产一级毛片 | 欧美乱大交xxxxx在线观看 | 天天夜夜久久 | 国产欧美成人免费观看视频 | 日本免费视频观看在线播放 | 日韩免费高清一级毛片 | 亚洲不卡在线观看 | 久久在线免费视频 | 91网站在线免费观看 | 国产成人免费在线观看 | 97久久天天综合色天天综合色 | 末满18以下勿进色禁网站 | 日韩三级一区 | 国产一区二区三区亚洲综合 | 欧美三级黄色大片 | 欧美成人乱弄视频 | 91精品久久久久含羞草 | 国产日韩欧美一区二区三区在线 | 国产一区二区三区亚洲综合 | 成人一区二区免费中文字幕 | 日本欧美高清 | 精品久久国产 | a级成人高清毛片 | 日韩一区二区天海翼 | 国产三级做爰高清视频a | 国产一级一级毛片 | 国产欧美自拍 | 欧美黄色特级视频 | 91热久久免费频精品动漫99 | 性欧美精品久久久久久久 | 高清一级毛片免免费看 | 一级毛片看一个 | 久久久国产亚洲精品 | 一区二区免费看 | 成人毛片1024你懂的 | 国产精品色综合久久 | 日本一区二区三区免费视频 | 国产高清免费视频 | 国产精品漂亮美女在线观看 |