基于CPLD的LCD1602顯示系統設計與實(shí)現

由clk_div時(shí)鐘信號獲取lcd_en及l(fā)cd_flag兩個(gè)時(shí)鐘信號,具體如下:

至此,只需捕獲clk_flag的上升沿,并在該跳變沿處送入指令或數據即可。而狀態(tài)之間的轉移關(guān)系則需按初始化的正確步驟進(jìn)行,完成初始化后,指定DDRAM的地址,并向lcd_dat送數據即可實(shí)現數據的寫(xiě)入操作。
4 仿真結果及實(shí)現效果
軟件仿真借助了第三方的仿真軟件Modelsim,在QuartusII當中利用Test Bench Template Writer建立仿真模板文件,并在模板當中給出激勵條件,編譯后即可生成用于仿真測試的vt文件了。初始化部分的仿真結果如圖3所示。

上圖信號從上到下依次為:clk,rst_n,lcd_dat,lcd_en,lcd_rs,lcd_rw。由圖3可知,由于系統時(shí)鐘頻率較高,clk已顯示為一條粗線(xiàn),rst_n僅延時(shí)10個(gè)仿真單位,即被拉高為高電平,lcd_dat中出線(xiàn)一段藍色線(xiàn)條,占lcd_en的3個(gè)周期,即實(shí)現了15ms的延時(shí),緊接著(zhù)的四個(gè)周期連續寫(xiě)入8’h38,然后8’h01等,直到8’h0c完成對LCD1602的初始化。圖4為初始化后向LCD1602寫(xiě)入的數據,由于顯示內容的編碼與ASCII碼基本一致,可將其設置為ASCII進(jìn)行觀(guān)察。
將Verilog HDL編寫(xiě)的程序進(jìn)行編譯,并將生的目標代碼下載至EPM240T100C5,最終顯示的效果如圖5所示。

5 結束語(yǔ)
通過(guò)對LCD1602時(shí)序進(jìn)行詳細分析,本文實(shí)現了用CPLD驅動(dòng)LCD1602顯示模塊工作的目的。通過(guò)仿真及硬件驗證,均說(shuō)明了設計的合理性與正確性。另外,采用模塊化設計,也為后續系統的大規?;涂蓴U展性提供了很大方便。相比單片機實(shí)現過(guò)程,利用CPLD實(shí)現顯得更加簡(jiǎn)單、方便。另外,CPLD管腳的可配置特點(diǎn)也為CPLD的使用帶來(lái)了極大的靈活性。隨著(zhù)CPLD及FPGA技術(shù)的發(fā)展,數字系統設計也必將發(fā)展到一個(gè)新的階段。
評論