任全會,黃根嶺
(鄭州鐵路職業(yè)技術(shù)學院,河南 鄭州 450052)
系統(tǒng)設(shè)計總體框圖如圖1所示,在系統(tǒng)上電后,F(xiàn)PGA將首先對系統(tǒng)進行初始化操作,在初始化操作中最重要的是寄存器的復位,顯示開關(guān)的控制,功能設(shè)置以及對顯示屏幕進行清屏。之后通過顯示控制模塊對LCD進行顯示的控制。顯示控制模塊主要負責在LCD顯示多行字符時進行換行操作,在用戶指定數(shù)據(jù)在屏幕的指定顯示位置時設(shè)置該位置所對應的RAM的值,以及在圖像顯示時進行的ROM地址重映射算法,和對LCD顯示區(qū)對應RAM進行的寫入操作。其中的數(shù)據(jù)分別來自中英文字符模塊、動態(tài)數(shù)據(jù)模塊以及圖像數(shù)據(jù)模塊。對此模塊的設(shè)計,主體結(jié)構(gòu)以狀態(tài)機來實現(xiàn)[1]。
選用的晶振頻率為50MHz,但是系統(tǒng)需要小于13.9kHz的時鐘頻率,需要設(shè)計一個分頻器對其進行分頻??刂芁CD模塊和FPGA的模塊需要使用同一個時鐘信號。模塊如圖2所示。
圖1 系統(tǒng)設(shè)計總體框圖
圖2 時鐘模塊
設(shè)計采用訪問RAM的方式對英文字符進行調(diào)用。顯示控制模塊在每一個時鐘信號來的時候輸出一個地址,這個地址在每一個時鐘信號過后都自動加1,而這個地址則作為RAM的輸入地址。相應的RAM返回給顯示控制模塊所對應的數(shù)據(jù)。模塊設(shè)計流程圖如圖3所示。
圖3 寫入數(shù)據(jù)模塊設(shè)計示意圖(字符)
而RAM在設(shè)計的時候采用函數(shù)的方式,函數(shù)將負責自動辨識用戶輸入的英文符號,并將其轉(zhuǎn)換為對應數(shù)據(jù)。若想改變顯示的內(nèi)容只需要改變進程中每一行末尾char_to_integer函數(shù)括號中的內(nèi)容即可。
首先設(shè)定DDRAM值,利用計數(shù)器COUNTER,每寫一個 RAM狀態(tài),COUNTER自動加1。經(jīng)過轉(zhuǎn)換后的COUNTER就是寫入數(shù)據(jù)模塊的RAM的輸入地址。COUNTER的連續(xù)加1,RAM中的數(shù)據(jù)會輸出到屏幕相應的位置。需要顯示的一組數(shù)據(jù)就能顯示在LCD顯示屏上。相應的程序流程圖4所示。
圖4 顯示控制模塊設(shè)計流程圖(字符)
動態(tài)數(shù)據(jù)的顯示則是根據(jù)輸入的變化,將其反應到寫入數(shù)據(jù)模塊的RAM中,使其反饋對應的數(shù)據(jù)。同時每進行一個寫RAM狀態(tài)后,便跳入設(shè)置DDRAM狀態(tài),將DDRAM值始終設(shè)為同一個,即屏幕上的同一位置,之后再次進入寫RAM狀態(tài),如此循環(huán),就可以看到數(shù)據(jù)的不斷變化。由于顯示的基本原理相同,但是顯示的內(nèi)容卻有千萬種,因此在程序的編寫上也會有無數(shù)種方式[2]?;谶@種原因,這里只用一個簡單的0到15的計數(shù)器來做說明。
圖5 動態(tài)數(shù)據(jù)部分設(shè)計流程圖
在顯示控制模塊中,每過1個時鐘信號,模塊就會讀取一次外部的數(shù)據(jù),并把數(shù)據(jù)輸入模塊處理。主要工作室把外部數(shù)據(jù)分解為每一位上的十進制數(shù)據(jù)。同時輸出信號到輸入顯示RAM,并調(diào)用返回的數(shù)據(jù)在屏幕上顯示。同時,每次顯示的時候,屏幕上顯示的位置會自動重置,確保每次顯示都能覆蓋上次的顯示,也就實現(xiàn)了動態(tài)數(shù)據(jù)的更新顯示。
字符顯示整體模塊的功能包括任意中文字符及英文字符在12864-12屏幕上的任意位置的顯示,同時還要顯示動態(tài)數(shù)據(jù)的變動。這里的動態(tài)數(shù)據(jù)為一個0到15的計數(shù)器。字符顯示整體模塊的BLOCKDIAGRAM如圖6所示。
初始化部分的QUARTUSII部分仿真結(jié)果如圖7所示:
圖6 圖像顯示整體示意圖
圖7 初始化部分仿真示結(jié)果
3.1.1 中文字符的顯示
在屏幕的第一行顯示“鄭鐵學院”4個漢字。
3.1.2 英文字符的測試
在屏幕的第二、第三行顯示“Helloworld!”和“Current:”,這幾個英文字符和標點。
3.1.3 動態(tài)顯示的測試
在屏幕的第三行的“Current:”之后根據(jù)0到15的計數(shù)器的輸入變化,顯示0到15的兩位十進制數(shù)字。在LCD顯示如圖8所示:
圖8 顯示結(jié)果3.2 結(jié)論
在字符顯示部分,字符的顯示速度較快。在12.5 kHz的時鐘驅(qū)動下,平均顯示一次內(nèi)容的時間為毫秒級別。由于在設(shè)計時充分考慮了程序的易用性,更改文本在屏幕的顯示位置只需在程序?qū)腟ETDDRAM的部分中修改需要的數(shù)據(jù)即可。而對于文本的變更,特別是英文字符,只需在輸入數(shù)據(jù)RAM的模塊中按順序鍵入需要顯示的文本即可。對于中文則需要對照中文字符表來操作[3]。
在圖片顯示時,需要的操作時間比較長,平均顯示一副圖片大約需要大于半秒,不到1秒的時間。因此如果要做動畫顯示,則響應時間過長,大于0.08秒。但是在單幅圖片的顯示上,12864-12顯示的圖片較為清晰,對比度較高。
[1]黃亮,楊景常.基于SOPC的TFT觸摸屏顯示系統(tǒng)設(shè)計[J].液晶與顯示,2009,26(3):718 -722.
[2]趙擎天,尉廣軍,姚義.基于SOPC的多路并行同步數(shù)字信號采集系統(tǒng)設(shè)計[J].軍械工程學院學報,2010,32(7):96-99.
[3]陳珍,高波,范葉敦.基于SOPC的復合信號幅頻測試儀[J].電子技術(shù)應用,2010,36(11):20 -22.