人力資源FPGA培訓(xùn)資料_第1頁(yè)
人力資源FPGA培訓(xùn)資料_第2頁(yè)
人力資源FPGA培訓(xùn)資料_第3頁(yè)
人力資源FPGA培訓(xùn)資料_第4頁(yè)
人力資源FPGA培訓(xùn)資料_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、英文字符符液晶模模塊16602的的FPGGA控制制液晶模塊塊16002 所謂謂16002是指指顯示的的內(nèi)容為為16*2,即即可以顯顯示兩行行,每行行16個(gè)字字符。目目前市面面上字符符液晶絕絕大多數(shù)數(shù)是基于于HD4447880液晶晶芯片的的,控制制原理是是完全相相同的,因因此基于于HD4447880寫的的控制程程序可以以很方便便地應(yīng)用用于市面面上大部部分的字字符型液液晶。16022液晶的的正面(綠色背背光,黑黑色字體體)16022液晶背背面(綠色背背光,黑黑色字體體)另一種116022液晶模模塊,顯顯示屏是是藍(lán)色背背光白色色字體字符型LLCD116022通常有有14條引引腳線或或16條引引腳線的

2、的LCDD,多出出來(lái)的22條線是是背光電電源線VVCC(15腳腳)和地線線GNDD(166腳),其控控制原理理與144腳的LCCD完全全一樣,引引腳定義義如下表表所示: HHD4447800內(nèi)置了了DDRRAM、CGRROM和和CGRRAM。 DDDRAAM就是是顯示數(shù)數(shù)據(jù)RAAM,用用來(lái)寄存存待顯示示的字符符代碼。共800個(gè)字節(jié)節(jié),其地地址和屏屏幕的對(duì)對(duì)應(yīng)關(guān)系系如下表表: 也就是是說想要要在LCCD16602屏屏幕的第第一行第第一列顯顯示一個(gè)個(gè)A字,就要向向DDRRAM的的00HH地址寫寫入“AA”字的的代碼就就行了。但具體體的寫入入是要按按LCDD模塊的的指令格格式來(lái)進(jìn)進(jìn)行的,后后面我會(huì)會(huì)

3、說到的的。那么么一行可可有400個(gè)地址址呀?是是的,在在16002中我我們就用用前166個(gè)就行行了。第第二行也也一樣用用前166個(gè)地址址。對(duì)應(yīng)應(yīng)如下: DDRRAM地地址與顯顯示位置置的對(duì)應(yīng)應(yīng)關(guān)系 (事事實(shí)上我我們往DDDRAAM里的的00HH地址處處送一個(gè)個(gè)數(shù)據(jù),譬譬如0 xx31(數(shù)字1的代碼碼)并不能能顯示11出來(lái)。這是一一個(gè)令初初學(xué)者很很容易出出錯(cuò)的地地方,原原因就是是如果你你要想在在DDRRAM的的00HH地址處處顯示數(shù)數(shù)據(jù),則則必須將將00HH加上800H,即即80HH,若要要在DDDRAMM的01HH處顯示示數(shù)據(jù),則則必須將將01HH加上800H即81HH。依次次類推。大家看看一

4、下控控制指令令的的88條:DDDRAMM地址的的設(shè)定,即即可以明明白是怎怎么樣的的一回事事了) 16002液晶晶模塊內(nèi)內(nèi)部的字字符發(fā)生生存儲(chǔ)器器(CGGROMM)已經(jīng)經(jīng)存儲(chǔ)了了1600個(gè)不同同的點(diǎn)陣陣字符圖圖形,如如下表所所示,這這些字符符有:阿阿拉伯?dāng)?shù)數(shù)字、英英文字母母的大小小寫、常常用的符符號(hào)、和和日文假假名等,每每一個(gè)字字符都有有一個(gè)固固定的代代碼,比比如大寫寫的英文文字母“AA”的代代碼是00100000001B(41HH),顯顯示時(shí)模模塊把地地址411H中的的點(diǎn)陣字字符圖形形顯示出出來(lái),我我們就能能看到字字母“AA”上表表中的字字符代碼碼與我們們PC中的的字符代代碼是基基本一致致的。

5、因因此我們們?cè)谙駾DDRAAM寫C511字符代代碼程序序時(shí)甚至至可以直直接用PP1A這樣的的方法。PC在編編譯時(shí)就就把“AA”先轉(zhuǎn)轉(zhuǎn)為411H代碼碼了。 字字符代碼碼0 x0000 x0FF為用戶戶自定義義的字符符圖形RRAM(對(duì)于5XX8點(diǎn)陣陣的字符符,可以以存放88組,5XX10點(diǎn)點(diǎn)陣的字字符,存存放4組),就是是CGRRAM了了。后面面我會(huì)詳詳細(xì)說的的。 00 x2000 x7FF為標(biāo)準(zhǔn)準(zhǔn)的ASSCIII碼,0 xxA00 xFFF為日日文字符符和希臘臘文字符符,其余余字符碼碼(0 xx100 x1FF及0 x8800 x9FF)沒有定定義。 那那么如何何對(duì)DDDRAMM的內(nèi)容容和地址址

6、進(jìn)行具具體操作作呢,下下面先說說說HDD447780的的指令集集及其設(shè)設(shè)置說明明,請(qǐng)瀏瀏覽該指指令集,并并找出對(duì)對(duì)DDRRAM的的內(nèi)容和和地址進(jìn)進(jìn)行操作作的指令令。共111條指指令:11.清屏屏指令功功能: 清除液液晶顯示示器,即即將DDDRAMM的內(nèi)容容全部填填入空白的ASCCII碼碼20HH; 光光標(biāo)歸位位,即將將光標(biāo)撤撤回液晶晶顯示屏屏的左上上方; 將地地址計(jì)數(shù)數(shù)器(AAC)的的值設(shè)為為0。2.光標(biāo)標(biāo)歸位指指令功能能: 把把光標(biāo)撤撤回到顯顯示器的的左上方方; 把地地址計(jì)數(shù)數(shù)器(AAC)的的值設(shè)置置為0; 保持持DDRRAM的的內(nèi)容不不變3.進(jìn)入模模式設(shè)置置指令功功能:設(shè)設(shè)定每次次定入11

7、位數(shù)據(jù)據(jù)后光標(biāo)標(biāo)的移位位方向,并并且設(shè)定定每次寫寫入的一一個(gè)字符符是否移移動(dòng)。參參數(shù)設(shè)定定的情況況如下所所示:位位名設(shè)置II/D0=寫入新新數(shù)據(jù)后后光標(biāo)左左移11=寫入入新數(shù)據(jù)據(jù)后光標(biāo)標(biāo)右移 S0=寫寫入新數(shù)數(shù)據(jù)后顯顯示屏不不移動(dòng)11=寫入入新數(shù)據(jù)據(jù)后顯示示屏整體體右移11個(gè)字4.顯示開開關(guān)控制制指令功功能:控控制顯示示器開/關(guān)、光光標(biāo)顯示示/關(guān)閉以以及光標(biāo)標(biāo)是否閃閃爍。參參數(shù)設(shè)定定的情況況如下:位名名設(shè)設(shè)置 D00=顯示示功能關(guān)關(guān) 11=顯示示功能開開 CC0=無(wú)光標(biāo)標(biāo) 1=有光標(biāo)標(biāo) BB0=光標(biāo)閃閃爍 1=光標(biāo)不不閃爍55.設(shè)定定顯示屏屏或光標(biāo)標(biāo)移動(dòng)方方向指令令功能:使光標(biāo)標(biāo)移位或或使整個(gè)

8、個(gè)顯示屏屏幕移位位。參數(shù)數(shù)設(shè)定的的情況如如下:SS/C RR/L設(shè)定情情況0 0光標(biāo)左左移1格,且且AC值減減10 1光光標(biāo)右移移1格,且且AC值加加11 0顯顯示器上上字符全全部左移移一格,但但光標(biāo)不不動(dòng)1 1顯示器器上字符符全部右右移一格格,但光光標(biāo)不動(dòng)動(dòng)6.功能能設(shè)定指指令功能:設(shè)定數(shù)數(shù)據(jù)總線線位數(shù)、顯示的的行數(shù)及及字型。參數(shù)設(shè)設(shè)定的情情況如下下:位名設(shè)置 DLL00=數(shù)據(jù)據(jù)總線為為4位11=數(shù)據(jù)據(jù)總線為為8位 N00=顯示示1行11=顯示示2行 F0=557點(diǎn)點(diǎn)陣/每字符符1=5110點(diǎn)陣陣/每字符符7.設(shè)定定CGRRAM地地址指令令功能:設(shè)定下下一個(gè)要要存入數(shù)數(shù)據(jù)的CCGRAAM的地

9、地址。88.設(shè)定定DDRRAM地地址指令令功能:設(shè)定下下一個(gè)要要存入數(shù)數(shù)據(jù)的CCGRAAM的地地址。(注意這這里我們們送地址址的時(shí)候候應(yīng)該是是0 x880+AAddrresss,這也也是前面面說到寫寫地址命命令的時(shí)時(shí)候要加加上0 xx80的的原因)9.讀取取忙信號(hào)號(hào)或ACC地址指指令功能: 讀取取忙碌信信號(hào)BFF的內(nèi)容容,BFF=1表表示液晶晶顯示器器忙,暫暫時(shí)無(wú)法法接收單單片機(jī)送送來(lái)的數(shù)數(shù)據(jù)或指指令;當(dāng)BF=0時(shí),液液晶顯示示器可以以接收單單片機(jī)送送來(lái)的數(shù)數(shù)據(jù)或指指令; 讀取取地址計(jì)計(jì)數(shù)器(AC)的內(nèi)容容。100.數(shù)據(jù)據(jù)寫入DDDRAAM或CGRRAM指指令一覽覽功能: 將字字符碼寫寫入DD

10、DRAMM,以使使液晶顯顯示屏顯顯示出相相對(duì)應(yīng)的的字符; 將使使用者自自己設(shè)計(jì)計(jì)的圖形形存入CCGRAAM。11.從CGRRAM或或DDRRAM讀讀出數(shù)據(jù)據(jù)的指令令一覽功能:讀取DDDRAAM或CGRRAM中中的內(nèi)容容。基本本操作時(shí)時(shí)序:讀讀狀態(tài) 輸入入:RSS=L,RW=H,E=HH輸出:DDB0DB77=狀態(tài)態(tài)字寫指指令 輸入:RS=L,RW=L,E=下降降沿脈沖沖,DBB0DB77=指令令碼 輸出:無(wú)讀數(shù)數(shù)據(jù) 輸入:RS=H,RW=H,E=HH輸輸出:DDB0DB77=數(shù)據(jù)據(jù)寫數(shù)據(jù)據(jù) 輸輸入:RRS=HH,RW=L,E=下降降沿脈沖沖,DBB0DB77=數(shù)據(jù)據(jù) 輸輸出:無(wú)無(wú)例1VHHDL

11、控控制16602液液晶顯示示英文字字符,第第一行顯顯示,從從APP,學(xué)習(xí)習(xí)體會(huì)如如何寫入入控制指指令,寫寫入數(shù)據(jù)據(jù)指令,學(xué)學(xué)習(xí)如何何在指定定位置顯顯示字符符。librraryy IEEEE;use IEEEE.SSTD_LOGGIC_11664.AALL;use IEEEE.SSTD_LOGGIC_ARIITH.ALLL;use IEEEE.SSTD_LOGGIC_UNSSIGNNED.ALLL;entiity LCDD16002 iis Porrt ( CLLK : inn sttd_llogiic; Reesett : in stdd_loogicc; LCCD_RRS : ouut ss

12、td_loggic; -寄存器器選擇信信號(hào) LCCD_RRW : ouut sstd_loggic; -液晶讀讀寫信號(hào)號(hào) LCCD_EEN : ouut sstd_loggic; -液晶時(shí)時(shí)鐘信號(hào)號(hào) LCCD_DDataa : outt sttd_llogiic_vvecttor(7 ddownnto 0); -液晶晶數(shù)據(jù)信信號(hào)end LCDD16002;archhiteectuure Behhaviioraal oof LLCD116022 isstypee sttatee iss (sset_dlnnf,sset_currsorr,seet_ddcb,sett_cggramm,wrrite

13、e_cggramm,seet_dddraam,wwritte_LLCD_Datta);signnal Currrennt_SStatte:sstatte;signnal Clkk_Ouut : sttd_llogiic;signnal LCDD_Cllk : sttd_llogiic;begiinproccesss(CLLK)-分頻頻進(jìn)程,CLK輸入,CLK_Out輸出,50MHz輸入,125Hz輸出,8ms vaariaablee n11:inntegger rannge 0 tto 11999999; bbegiin if rissingg_eddge(CLKK) tthenn iff n

14、1119999999 tthenn n11:=nn1+11; eelsee n11:=00; Cllk_OOut=noot CClk_Outt; ennd iif; endd iff;end proocesss;LCD_RW = 0 ; -RRW=0;寫入設(shè)設(shè)置LCD_EN = Clkk_Ouut ; -用1255Hz作作為L(zhǎng)CCD的使使能,也也作為L(zhǎng)LCD的的時(shí)鐘LCD_Clkk = Cllk_OOut; -用1255Hz作作為L(zhǎng)CCD的時(shí)時(shí)鐘proccesss(LCCD_CClk,Resset,Currrennt_SStatte) -狀狀態(tài)機(jī)控控制顯示示variiablle ccnt11:

15、 sstd_loggic_vecctorr(4 dowwntoo 0):=000000; beggin iff Reesett=00thhen Currrennt_SStatte=sett_dllnf; - Reesett就清屏屏,Reesett接出用用一個(gè)按按鈕作為為復(fù)位按按鍵即可可,按下下就為0復(fù)復(fù)位。 cntt1:=1111100; LCDD_RSS=0; ellsiff riisinng_eedgee(LCCD_CClk) thhen Currrennt_SStatte = CCurrrentt_Sttatee ; LCDD_RSS cntt1:=0000000; LCCD_DData

16、a=0000000001; - /*清除顯顯示*/ 清屏屏指令 Currrennt_SStatte LLCD_Datta=00011000000;-/*設(shè)置8位格式式,2行,5*7*/ CCurrrentt_Sttatee LCDD_Daata=00000011000; -/*整體體顯示,關(guān)光標(biāo)標(biāo),不閃爍爍*/ Currrennt_SStatte LCCD_DDataa=0000001110; -/*顯示示移動(dòng)格格式,看看最后兩兩位,110表示示光標(biāo)右右移 Cuurreent_Staate LCDD_RSS=1; -主體顯顯示,寫寫顯示內(nèi)內(nèi)容 LCDD_Daata=00100000001+CN

17、TT1; Currrennt_SStatte IFF CNNT10111111 TTHENN CNNT1:=CNNT1+1; -主體體顯示,寫寫顯示地地址DDDRamm(RS=0) ELLSE CNTT1:=0000000; ENND IIF; IFF CNNT1=0011111 THEEN LLCD_Datta =11000000000+CNTT1; ENND IIF; Cuurreent_Staate LCDD_Daata=00000000000; Currrennt_SStatte nnulll; ennd ccasee; eend if;end proocesss;end Behhav

18、iioraal;例2 VHDDL控制制顯示116022字符液液晶,分分屏分時(shí)時(shí)顯示W(wǎng)WWW.SCAAU.EEDU.CN,CCOLLLEGEE OFF SCCIENNCE,SSoutth CChinna oof AAgriicullturral Uniiverrs等字字符。librraryy IEEEE;use IEEEE.SSTD_LOGGIC_11664.AALL;use IEEEE.SSTD_LOGGIC_ARIITH.ALLL;use IEEEE.SSTD_LOGGIC_UNSSIGNNED.ALLL;entiity LCDD16002 iis Porrt ( CLLK : inn st

19、td_llogiic; -狀狀態(tài)機(jī)時(shí)時(shí)鐘信號(hào)號(hào),同時(shí)時(shí)也是液液晶時(shí)鐘鐘信號(hào),其其周期應(yīng)應(yīng)該滿足足液晶數(shù)數(shù)據(jù)的建建立時(shí)間間 Reesett : in stdd_loogicc; LCCD_RRS : ouut sstd_loggic; -寄存器器選擇信信號(hào) LCCD_RRW : ouut sstd_loggic; -液晶讀讀寫信號(hào)號(hào) LCCD_EEN : ouut sstd_loggic; -液晶時(shí)時(shí)鐘信號(hào)號(hào) LCCD_DDataa : outt sttd_llogiic_vvecttor(7 ddownnto 0); -液晶晶數(shù)據(jù)信信號(hào)end LCDD16002;archhiteectuure

20、 Behhaviioraal oof LLCD116022 isstypee sttatee iss (sset_dlnnf,sset_currsorr,seet_ddcb,sett_cggramm,wrritee_cggramm,seet_dddraam,wwritte_LLCD_Datta);signnal Currrennt_SStatte:sstatte;typee raam1 is arrray(0 tto 331) of stdd_loogicc_veectoor(77 doowntto 00);typee raam2 is arrray(0 tto 331) of stdd_lo

21、ogicc_veectoor(77 doowntto 00);typee raam3 is arrray(0 tto 331) of stdd_loogicc_veectoor(77 doowntto 00);consstannt ccgraam1 : rram11 :=(x557,x557,x557,x22e,x553,x443,x441,x555,x22e,x445,x444,x555,x22e,x443,x44e,x220,x330,x331,x332,x333,x334,x335,x336,x337,x338,x339,x220,x220,x220,x220,x220,x220); -

22、分行行顯示W(wǎng)WWW.SCCAU.EDUU.CNN 和和0112344567789consstannt ccgraam3 : rram33 :=(x53,x6F,x75,x74,x68,x20,x43,x68,x69,x6E,x61,x20,x41,x67,x72,x69,x63,x75,x6C,x774,x775,x772,x661,x66C,x220,x555,x66E,x669,x776,x665,x772,x773); -顯示示Soouthh Chhinaa off Aggriccultturaal UUnivverssconsstannt ccgraam2 : rram22 :=(x4

23、3,x4f,x4c,x4c,x45,x47,x45,x20,x4f,x46,x20,x53,x43,x49,x45,x4e,x43,x45,x220,x220,x220,x220,x220,x220,x220,x220,x220,x220,x220,x220,x220,x220); -顯示示COOLLEEGE OF SCIIENCCEsignnal CLKK1 : sttd_llogiic;signnal Clkk_Ouut : sttd_llogiic;signnal LCDD_Cllk : sttd_llogiic;signnal m :stdd_loogicc_veectoor(11 d

24、oowntto 00);begiinproccesss(CLLK) -分頻進(jìn)進(jìn)程,CCLK輸輸入,CCLK_Outt輸出,550MHHz輸入入,12250HHz輸出出,0.8mss vaariaablee n11:inntegger rannge 0 tto 1199999; bbegiin if rissingg_eddge(CLKK) tthenn iff n111999999 thhen n1:=n11+1; eelsee n11:=00; Cllk_OOut=noot CClk_Outt; ennd iif; endd iff;end proocesss;LCD_RW = 0 ; -R

25、RW=0;寫入設(shè)設(shè)置LCD_EN = Clkk_Ouut ; -用12250HHz作為為L(zhǎng)CDD的使能能,也作作為L(zhǎng)CCD的時(shí)時(shí)鐘LCD_Clkk = Cllk_OOut; -用12250HHz作為為L(zhǎng)CDD的時(shí)鐘鐘proccesss(Cllk_OOut) -再分分頻,112500/10000=1.225Hzz,0.8s的的周期輸輸出,CCLK11輸出周周期1.25HHzvariiablle nn2:iinteegerr raangee 0 to 4999; beggin iff riisinng_eedgee(Cllk_OOut) thhen iif nn24499 theen nn2:=n

26、2+1; eelsee n22:=00; CClk11=nnot Clkk1; eend if; ennd iif;end proocesss;proccesss(Cllk1) -設(shè)置mm的值,mm分別=0,11,2;5個(gè)CCLK11周期內(nèi)內(nèi),m為為000;再再5個(gè)周周期,mm為001;再5個(gè)個(gè)周期,mm為110,m應(yīng)為為時(shí)間控控制字variiablle nn3:iinteegerr raangee 0 to 14; beeginn iff riisinng_eedgee(Cllk1) thhen n3:=n33+1; iif nn3=4 tthenn m=000; eelsiif nn34

27、tthenn m=001; eelsee m=110; eend if; ennd iif;end proocesss;proccesss(LCCD_CClk,Resset,Currrennt_SStatte) -狀狀態(tài)機(jī)控控制顯示示variiablle ccnt11: sstd_loggic_vecctorr(4 dowwntoo 0); beggin iff Reesett=00thhen Currrennt_SStatte=sett_dllnf; - Reesett就清屏屏,Reesett接出用用一個(gè)按按鈕作為為復(fù)位按按鍵即可可,按下下就為0復(fù)復(fù)位。 cntt1:=1111100; LC

28、DD_RSS=0; ellsiff riisinng_eedgee(LCCD_CClk) thhen Currrennt_SStatte = CCurrrentt_Sttatee ; LCDD_RSS cntt1:=0000000; LCDD_Daata=00000000001; - /*清除顯顯示*/ 清屏屏指令 Currrennt_SStatte LLCD_Datta=00011110000; -/*設(shè)置88位格式式,2行行,5*7*/ CCurrrentt_Sttatee LCDD_Daata=00000011000; -/*整體體顯示,關(guān)光標(biāo)標(biāo),不閃閃爍*/ Currrennt_SSt

29、atte LCCD_DDataa=0000001110; Cuurreent_Staate LCDD_RSS=1; if m=00 thhen LCDD_Daata=cggramm1(cconvv_inntegger(cntt1); elssif m=01theen LLCD_Datta=cgrram22(coonv_inttegeer(ccnt11); elsse LLCD_Datta=cgrram33(coonv_inttegeer(ccnt11); endd iff; Currrennt_SStatte iff cnnt11111111 tthenn cnnt1:=cnnt1+1; el

30、lse cntt1:=0000000; ennd iif; iff cnnt1=0011111 theen LLCD_Datta=10000000000+ccnt11;-80HH -顯示數(shù)數(shù)據(jù), ellse LCDD_Daata=11100000000+cntt1-100000;-C0HH ennd iif; Cuurreent_Staate LCDD_Daata=00000000000; Currrennt_SStatte nnulll; ennd ccasee; eend if;end proocesss;end Behhaviioraal;思考題1 閱讀讀下列液液晶16602的的顯示程程

31、序,掌掌握調(diào)用用函數(shù)進(jìn)進(jìn)行字符符ASCCII碼碼轉(zhuǎn)換的的程序,掌掌握使用用WHEEN_EELSEE并行賦賦值語(yǔ)句句的狀態(tài)態(tài)機(jī)輸出出賦值特特點(diǎn),自自行修改改程序,設(shè)設(shè)置合適適的顯示示流程。顯示流程程參考:初始化化=清屏屏=SSETFFUNCCTIOON=屏開關(guān)關(guān)=設(shè)置置光標(biāo)=寫顯顯示內(nèi)容容=寫顯顯示地址址=SSETFFUNCCTIOONlibrraryy IEEEE;use IEEEE.SSTD_LOGGIC_11664.AALL;use IEEEE.SSTD_LOGGIC_ARIITH.ALLL;use IEEEE.SSTD_LOGGIC_UNSSIGNNED.ALLL;entiity lcd

32、d iss Porrt ( cllk : inn sttd_llogiic; -50MMHZ Reesett : in stdd_loogicc; -復(fù)位位輸入 lccd_rrs : ouut sstd_loggic; -液晶晶RS位位 lccd_rrw : ouut sstd_loggic; -液晶晶讀寫RRW位 lccd_ee : buuffeer sstd_loggic; -液晶晶使能 datta : ouut sstd_loggic_vecctorr(7 dowwntoo 0); -數(shù)據(jù)/指令輸輸出 - sttateeoutt: oout stdd_loogicc_veectoor(1

33、10 ddownnto 0); clkk_ouut: outt sttd_llogiic); -CLKK_ouut輸出出end lcdd;archhiteectuure Behhaviioraal oof llcd isconsstannt IIDLEE : sstd_loggic_vecctorr(100 doowntto 00) :=000000000000000; -使用11位熱碼碼編碼的的狀態(tài)機(jī)機(jī),狀態(tài)態(tài)共122種consstannt CCLEAAR : sstd_loggic_vecctorr(100 doowntto 00) :=000000000000001;consstannt

34、 RRETUURNCCURSSOR : sstd_loggic_vecctorr(100 doowntto 00) :=000000000000110;consstannt SSETMMODEE : sstd_loggic_vecctorr(100 doowntto 00) :=000000000001000;consstannt SSWITTCHMMODEE : sstd_loggic_vecctorr(100 doowntto 00) :=000000000010000;consstannt SSHIFFT : sstd_loggic_vecctorr(100 doowntto 00) :

35、=000000001100000;consstannt SSETFFUNCCTIOON : sstd_loggic_vecctorr(100 doowntto 00) :=000000010000000;consstannt SSETCCGRAAM : sstd_loggic_vecctorr(100 doowntto 00) :=000000100000000;consstannt SSETDDDRAAM : sstd_loggic_vecctorr(100 doowntto 00) :=000011000000000;consstannt RREADDFLAAG : sstd_loggic

36、_vecctorr(100 doowntto 00) :=000100000000000;consstannt WWRITTERAAM : sstd_loggic_vecctorr(100 doowntto 00) :=001000000000000;consstannt RREADDRAMM : sstd_loggic_vecctorr(100 doowntto 00) :=110000000000000;consstannt ccur_incc : sstd_loggic :=1; -液晶晶指令中中的控制制字,用用語(yǔ)言符符號(hào)表示示數(shù)字信信號(hào)控制制字,方方便程序序體中調(diào)調(diào)用consstann

37、t ccur_decc : sstd_loggic :=0;consstannt ccur_shiift : sstd_loggic :=1;consstannt ccur_nosshifft : sstd_loggic :=0;consstannt oopenn_diispllay : sstd_loggic :=1;consstannt oopenn_cuur : sstd_loggic :=0;consstannt bblannk_ccur : sstd_loggic :=0;consstannt sshifft_ddispplayy : stdd_loogicc :=1;conssta

38、nnt sshifft_ccur : sstd_loggic :=0;consstannt rrighht_sshifft : sstd_loggic :=1;consstannt lleftt_shhiftt : sstd_loggic :=0;consstannt ddataawiddth88 : sstd_loggic :=1;consstannt ddataawiddth44 : sstd_loggic :=0;consstannt ttwollinee : sstd_loggic :=1;consstannt oonellinee : sstd_loggic :=0;consstan

39、nt ffontt5x110 : sstd_loggic :=1;consstannt ffontt5x77 : sstd_loggic :=0;signnal staate : sstd_loggic_vecctorr(100 doowntto 00);signnal couunteer : inntegger rannge 0 tto 1127;signnal divv_coountter : iinteegerr raangee 0 to 15;signnal flaag : sstd_loggic;consstannt DDIVSSS : inntegger :=115;signnal

40、 chaar_aaddrr : stdd_loogicc_veectoor(55 doowntto 00);signnal datta_iin : stdd_loogicc_veectoor(77 doowntto 00);compponeent chaar_rram porrt( adddresss : inn sttd_llogiic_vvecttor(5 ddownnto 0) ; daata : oout stdd_loogicc_veectoor(77 doowntto 00) );end commponnentt;signnal clkk_innt: stdd_loogicc;si

41、gnnal clkkcntt: sstd_loggic_vecctorr(188 doowntto 00);consstannt ddivccnt: sttd_llogiic_vvecttor(18 dowwntoo 0):=1111100011110000100000000; -49987552*22=99975004分頻頻signnal clkkdivv: sstd_loggic;signnal tc_clkkcntt: sstd_loggic;begiinproccesss(cllk,rreseet) -做做一個(gè)cclkccnt的的累加,在在Resset來(lái)來(lái)的時(shí)候候清零,在在等于ddiv

42、ccnt時(shí)時(shí)也清零零 beggin iff (rreseet=0) thhen clkkcntt=0000000000000000000000000; -Reesett清零 ellsiff (cclkeveent andd cllk=1) thhen iif(cclkccnt=divvcntt)thhen clkkcntt=0000000000000000000000000; -等于于divvcntt也清零零 elsse cclkccnt=cllkcnnt+11; endd iff; ennd iif;end proocesss;tc_cclkccnt=11 wwhenn cllkcnnt=d

43、divccnt elsse -當(dāng)?shù)鹊扔赿iivcnnt的時(shí)時(shí)候給一一個(gè)上升升沿tcc_cllkcnnt 00;proccesss(tcc_cllkcnnt,rreseet) -對(duì)對(duì)clkkdivv進(jìn)行取取反,每每次tcc_cllkcnnt上升升沿來(lái)信信時(shí)進(jìn)行行clkkdivv的取反反,做一一個(gè)99975004的分分頻,550.1125HHz,00.022s beggin iif(rreseet=0)theen cclkddiv=00; elssif (tcc_cllkcnnteevennt aand tc_clkkcntt=11) theen cclkddiv=noot cclkddiv; e

44、end if;end proocesss;proccesss(cllkdiiv,rreseet) -對(duì)對(duì)clkkdivv再分頻頻,cllk_iint輸輸出2分分頻,225Hzz,0.04ssbegiin iff (rreseet=0) thhen clkk_innt=0; eelsiif (clkkdivvevventt annd cclkddiv=1) tthenn cllk_iint= nnot clkk_innt; ennd iif;end proocesss;clk_outt=cclk_intt; -輸出cclk_intt到cllk_oout中中proccesss(cllkdiiv,r

45、reseet) -使用用clkkdivv作為敏敏感信號(hào)號(hào),Reesett復(fù)位begiin iif (resset=0) tthenn lccd_ee=0; elssif (cllkdiiveevennt aand clkkdivv=00) theen llcd_echaar_aaddrr,daata=daata_in); -例例化調(diào)用用chaar_rram,ccharr_adddr輸輸入adddreess,ddataa輸出ddataa_innlcd_rs = 1 whhen staate =WRRITEERAMM orr sttatee = REAADRAAM eelsee -規(guī)定了了什么狀狀

46、態(tài)RSS為11或0,WWRITTERAAM或RREADDRAMM,讀寫寫RAMM,符合合16002的指指令 0;lcd_rw = 0 whhen (sttatee =CCLEAAR oor sstatte = REETURRNCUURSOOR oor sstatte=SSETMMODEE orr sttatee=SWWITCCHMOODE or staate=SHIIFT or staate= SEETFUUNCTTIONN orr sttatee=SEETCGGRAMM orr sttatee =SETTDDRRAM or staate =WRRITEERAMM) eelsee 1; -規(guī)定定RW狀狀態(tài),按按16002硬件件指令設(shè)設(shè)置dataa =00000000011 wwhenn (sstatte =

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論