基于FPGA的多功能LCD顯示控制器設(shè)計
LCD12864和LCD1602液晶模塊都有自己一套嚴格用戶指令集,用戶就是通過這些指令來初始化液晶模塊來選擇顯示模式,這就要求多功能的LCD顯示驅(qū)動器同時包含多種顯示模式的用戶配置指令,LCD12864和LCD1602液晶模塊字符、圖形顯示模式的初始化指令如表2所示,對于指令的解釋在此不再詳述。本文引用地址:http://www.ex-cimer.com/article/189600.htm
通過表2的指令對比可以看出兩種顯示模塊的字符顯示初始化指令完全一致,僅僅是顯示行的起始地址有所不同;這就需要在LCD多功能顯示控制器中設(shè)置參數(shù)跳轉(zhuǎn),來根據(jù)模塊配置參數(shù)自動加載相應(yīng)的行起始地址,而對于LCD模塊的圖形顯示模式需要用到擴展指令集,并且需要分成上下兩個半屏設(shè)置起始地址,上半屏垂直坐標Y:8’h80~9’h9F(32行),水平坐標X:8’h80;下半屏垂直坐標和上半屏相同,而水平坐標X:8’h88。
3 多功能顯示控制器的狀態(tài)機設(shè)計
基于FPGA設(shè)計LCD顯示控制器,關(guān)鍵在于采用硬件描述語言設(shè)計有限狀態(tài)機(FSM)來控制LCD模塊的跳轉(zhuǎn),文獻中就是使用FSM實現(xiàn)了對LCD模塊的顯示控制,但是它們都是針對一種類型LCD模塊的某種顯示模式,不具有多模式的顯示控制能力。因此,多功能LCD顯示控制器的有限狀態(tài)機就需要設(shè)置更多的條件轉(zhuǎn)換,來實現(xiàn)多種控制模式,狀態(tài)機的狀態(tài)轉(zhuǎn)換圖如圖2所示。
在圖2所示的狀態(tài)轉(zhuǎn)換圖中,系統(tǒng)上電后,首先完成持續(xù)大約0.1 s(根據(jù)時鐘頻率配置)的自動復位,然后才根據(jù)模塊的端口參數(shù)選擇不同顯示模式所對應(yīng)的初始化命令,在狀態(tài)機中設(shè)置有初始化命令、起始行地址和屏顯示數(shù)據(jù)3條轉(zhuǎn)換路徑來適應(yīng)LCD屏的工作狀態(tài),同時也在關(guān)鍵轉(zhuǎn)換路徑上設(shè)置有可以配置的延時循環(huán),這樣既能方便LCD模塊的工作調(diào)試,又能使LCD模塊一直工作在寫屏模式(RW=0)。對于LCD屏的顯示數(shù)據(jù)存儲可以完全采用FPGA內(nèi)嵌的ROM/RAM單元實現(xiàn),如果使用雙口RAM(存儲器讀寫?yīng)毩?就能實現(xiàn)LCD模塊的動態(tài)實時顯示。
4 多功能顯示控制器的設(shè)計驗證
使用康芯KX7C5T FPGA開發(fā)板(Altera CycleⅡEP2C5T144C8)、KBl2864KZK、RT1602C和4x4鍵盤組成多功能LCD控制器的硬件測試平臺;設(shè)計項目經(jīng)過QuartusⅡ9.1開發(fā)工具的工程編譯和芯片下載配置后得到的實際顯示效果圖如圖3所示,其中圖3(a)是LCD1602模塊的字符顯示效果圖;屏的第1行顯示靜態(tài)字符,第2行實時顯示鍵盤輸入鍵值。圖3(b)是LCD12864模塊的中西文混合字符顯示效果圖,第4行也是實時顯示鍵盤輸入鍵值。圖3(c)是LCD12864模塊的靜態(tài)圖片顯示效果圖(ROM存儲);圖3(d)是LCD12864模塊的實時動態(tài)圖形顯示效果圖(雙口RAM存儲),這是用多功能LCD顯示控制器實現(xiàn)的邏輯分析儀界面。
5 結(jié)論
文中設(shè)計的多功能LCD顯示控制器,在FPGA開發(fā)板上的驗證結(jié)果表明,它完全具有能夠驅(qū)動LCD1602模塊顯示字符、LCD12864模塊顯示字符和實時顯示圖形的功能;并能夠通過端口參數(shù)配置而實現(xiàn)控制器的系統(tǒng)移植。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
fpga相關(guān)文章:fpga是什么
led顯示器相關(guān)文章:led顯示器原理
lcd相關(guān)文章:lcd原理
評論