<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用FPGA實(shí)現外設通信接口之: 典型實(shí)例-字符LCD接口的設計與實(shí)現

利用FPGA實(shí)現外設通信接口之: 典型實(shí)例-字符LCD接口的設計與實(shí)現

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201706/348802.htm

10.8典型實(shí)例18:的設計與實(shí)現

10.8.1實(shí)例的內容及目標

1.實(shí)例的主要內容

本節旨在設計實(shí)現與字符LCD的接口,幫助讀者進(jìn)一步了解字符液晶的工作原理和設計方法。

2.實(shí)例目標

通過(guò)本實(shí)例,讀者應達到以下目標。

·學(xué)習字符型液晶顯示器的控制原理。

·掌握利用設計驅動(dòng)的基本思想和方法。

·熟練掌握狀態(tài)機的使用。

10.8.2實(shí)例內容

紅色颶風(fēng)開(kāi)發(fā)板配套的字符液晶模塊為2行,每行16個(gè)字符。本實(shí)要求顯示功能如下:第一行顯示“WelcomeRedLogicWorld!”,第二行顯示“RedLogicWorld!”,由于一行只能顯示16個(gè)字符,因此要整屏左移顯示。

10.8.3代碼設計實(shí)現

本設計的程序主要包含兩個(gè)模塊,一個(gè)模塊為char_ram,另一個(gè)模塊為L(cháng)CD的驅動(dòng)模塊lcd。

的主要功能是根據輸入的地址,輸出相應字符在CGRM(字符存儲發(fā)生器)中的地址。因為在控制LCD顯示時(shí),只需用戶(hù)提供相應字符的地址,就可以顯示出該字符。

在char_ram中,先設置好所有字符對應的地址,然后給需要用到的字符定義新的地址用于選擇輸出。

Lcd模塊用于驅動(dòng)lCD正常工作。LCD是一個(gè)慢顯示器件,因此時(shí)鐘一定要滿(mǎn)足要求,在這里通過(guò)50MHz分頻得到輸入的時(shí)鐘周期約為100µs(約10Hz),以滿(mǎn)足慢顯要求。LCD的驅動(dòng)模塊利用一個(gè)狀態(tài)機來(lái)實(shí)現。具體程序參考實(shí)例源代碼。

10.8.4仿真驗證

通過(guò)AddSource的方法直接將測試代碼加入到工程當中。選中要加入的測試代碼文件:led_behavor_test.v,彈出如圖10.37所示的對話(huà)框,選擇“VerilogTextFixtureFile”。

用戶(hù)也可以直接新建一個(gè)仿真文件,選擇“NewSource”,選擇“VerilogTestFixture”,輸入測試文件名稱(chēng),如圖10.38所示,單擊“Next”按鈕。

選擇lcd模塊(對哪個(gè)模塊進(jìn)行測試,就選擇哪個(gè)文件),如圖10.39所示。

圖10.37選擇源文件類(lèi)型

圖10.38新建仿真源文件

圖10.39選擇被測試模塊

新建測試文件后,ISE會(huì )自動(dòng)生成一部分代碼,其余內容可直接從源工程中提供的測試文件中復制。

添加后選中測試文件可以看到如圖10.40所示的信息。

圖10.40仿真文件信息

在Processforsource下有4個(gè)M的圖標,分別對應4個(gè)級別的仿真。從上至下,第一個(gè)為行為仿真,第二個(gè)為翻譯后仿真,第三個(gè)為映射后仿真,第四個(gè)為布局布線(xiàn)后仿真。在這里先做行為仿真,只需雙擊第一個(gè)圖標,就可啟動(dòng)仿真,結果如圖10.41所示。

圖10.41行為仿真

默認情況下,會(huì )彈出4個(gè)窗口,在這里主要觀(guān)察Wave窗口,如圖10.42所示。

圖10.42行為仿真波形窗口

上面列出的很多信號是人為添加的,具體如何添加以及具體Wave窗口下的許多用法在這里不做詳細敘述。需要特殊說(shuō)明的是,如果用戶(hù)自己裝的是ModelSimXE版本,是無(wú)法完成這個(gè)仿真的,因為這個(gè)工程代碼是用VHDL寫(xiě)的,測試代碼是用Verilog寫(xiě)的,ModelSimXE版本是不支持混仿真的,建議安裝ModelSimSE版本,SE下是支持混合仿真的。

ModelSim仿真結果如圖10.43和圖10.44所示。

圖10.43LCD寫(xiě)數據仿真結果

圖10.44LCD寫(xiě)指令仿真結果

這兩個(gè)波形分別為寫(xiě)數據和寫(xiě)指令的仿真結果。寫(xiě)數據即向DDRAM寫(xiě)入要顯示的字符對應的地址,其中clk為系統的輸入時(shí)鐘50MHz,clk_int為分頻后得到的約10Hz輸入時(shí)鐘,lcd_e為使能信號,寫(xiě)數據時(shí)RS=1,R/W=0,寫(xiě)指令時(shí)RS=0,R/W=0。

10.8.5小結

本節對利用FPGA來(lái)驅動(dòng)字符型液晶模塊的方法做了介紹,并通過(guò)編譯下載在紅色颶風(fēng)的開(kāi)發(fā)板上實(shí)現了預定功能。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>