北郵數(shù)字電路雙色點陣實驗報告_第1頁
北郵數(shù)字電路雙色點陣實驗報告_第2頁
北郵數(shù)字電路雙色點陣實驗報告_第3頁
北郵數(shù)字電路雙色點陣實驗報告_第4頁
北郵數(shù)字電路雙色點陣實驗報告_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電路與邏輯設(shè)計實驗報告學(xué)院: 電子工程學(xué)院 班級: 2011211203 學(xué)號: 2011210971 班內(nèi)序號: 22 姓名: 郭一鳴 指導(dǎo)老師: 陳凌霄 目錄 TOC o 1-3 h z u HYPERLINK l _Toc372039343 一、課題名稱 PAGEREF _Toc372039343 h 4 HYPERLINK l _Toc372039344 二、摘要 PAGEREF _Toc372039344 h 4 HYPERLINK l _Toc372039345 三、設(shè)計任務(wù)要求 PAGEREF _Toc372039345 h 4 HYPERLINK l _Toc3720393

2、46 四、設(shè)計思路,總體結(jié)構(gòu)框圖 PAGEREF _Toc372039346 h 4 HYPERLINK l _Toc372039347 1、基本框架 PAGEREF _Toc372039347 h 4 HYPERLINK l _Toc372039348 2、在點陣上顯示一個字或圖案 PAGEREF _Toc372039348 h 5 HYPERLINK l _Toc372039349 3、控制亮度 PAGEREF _Toc372039349 h 5 HYPERLINK l _Toc372039350 3.1脈沖寬度調(diào)制(PWM) PAGEREF _Toc372039350 h 5 HYPER

3、LINK l _Toc372039351 3.2 亮度 PAGEREF _Toc372039351 h 5 HYPERLINK l _Toc372039352 4、控制顏色 PAGEREF _Toc372039352 h 6 HYPERLINK l _Toc372039353 5、實現(xiàn)三種模式的滾動 PAGEREF _Toc372039353 h 7 HYPERLINK l _Toc372039354 5.1狀態(tài) PAGEREF _Toc372039354 h 7 HYPERLINK l _Toc372039355 5.2如何存儲需要譯碼的字符 PAGEREF _Toc372039355 h

4、7 HYPERLINK l _Toc372039356 5.3如何進行譯碼 PAGEREF _Toc372039356 h 7 HYPERLINK l _Toc372039357 6、總體框圖 PAGEREF _Toc372039357 h 8 HYPERLINK l _Toc372039358 五、控制器部分的狀態(tài)轉(zhuǎn)移圖和流程圖 PAGEREF _Toc372039358 h 8 HYPERLINK l _Toc372039359 1、狀態(tài)轉(zhuǎn)移圖 PAGEREF _Toc372039359 h 9 HYPERLINK l _Toc372039360 2、流程圖 PAGEREF _Toc372

5、039360 h 9 HYPERLINK l _Toc372039361 六、總體電路和分塊電路的設(shè)計 PAGEREF _Toc372039361 h 11 HYPERLINK l _Toc372039362 1、總體電路 PAGEREF _Toc372039362 h 11 HYPERLINK l _Toc372039363 2、分塊電路 PAGEREF _Toc372039363 h 11 HYPERLINK l _Toc372039364 (1)pwm調(diào)制器 PAGEREF _Toc372039364 h 11 HYPERLINK l _Toc372039365 (2)數(shù)據(jù)選擇器(mux

6、) PAGEREF _Toc372039365 h 13 HYPERLINK l _Toc372039366 (3)譯碼器(translate) PAGEREF _Toc372039366 h 14 HYPERLINK l _Toc372039367 (4)其他模塊 PAGEREF _Toc372039367 h 20 HYPERLINK l _Toc372039368 七、所實現(xiàn)的功能說明 PAGEREF _Toc372039368 h 21 HYPERLINK l _Toc372039369 1、已完成的基本功能 PAGEREF _Toc372039369 h 21 HYPERLINK l

7、 _Toc372039370 2、已完成的擴展功能 PAGEREF _Toc372039370 h 21 HYPERLINK l _Toc372039371 3、器件資源占用情況 PAGEREF _Toc372039371 h 21 HYPERLINK l _Toc372039372 4、關(guān)鍵波形仿真圖 PAGEREF _Toc372039372 h 21 HYPERLINK l _Toc372039373 (1)pwm調(diào)制器 PAGEREF _Toc372039373 h 21 HYPERLINK l _Toc372039374 (2)數(shù)據(jù)選擇器 PAGEREF _Toc372039374

8、h 22 HYPERLINK l _Toc372039375 (3)譯碼器 PAGEREF _Toc372039375 h 22 HYPERLINK l _Toc372039376 八、故障及問題分析 PAGEREF _Toc372039376 h 28 HYPERLINK l _Toc372039377 九、總結(jié) PAGEREF _Toc372039377 h 29 HYPERLINK l _Toc372039378 十、所用元器件及測試儀表清單 PAGEREF _Toc372039378 h 29 HYPERLINK l _Toc372039379 十一、完整源程序 PAGEREF _To

9、c372039379 h 29 HYPERLINK l _Toc372039380 1、總體原理圖設(shè)計 PAGEREF _Toc372039380 h 29 HYPERLINK l _Toc372039381 2、防抖模塊 PAGEREF _Toc372039381 h 29 HYPERLINK l _Toc372039382 3、一級分頻器(pwm調(diào)制器) PAGEREF _Toc372039382 h 30 HYPERLINK l _Toc372039383 4、二級分頻器 PAGEREF _Toc372039383 h 32 HYPERLINK l _Toc372039384 5、三級分

10、頻器 PAGEREF _Toc372039384 h 32 HYPERLINK l _Toc372039385 6、模2計數(shù)器 PAGEREF _Toc372039385 h 33 HYPERLINK l _Toc372039386 7、模4計數(shù)器 PAGEREF _Toc372039386 h 34 HYPERLINK l _Toc372039387 8、模8計數(shù)器 PAGEREF _Toc372039387 h 34 HYPERLINK l _Toc372039388 9、滾動狀態(tài)計數(shù)器(模4模32計數(shù)器組合) PAGEREF _Toc372039388 h 35 HYPERLINK l

11、_Toc372039389 10、數(shù)據(jù)選擇器 PAGEREF _Toc372039389 h 36 HYPERLINK l _Toc372039390 11、譯碼器 PAGEREF _Toc372039390 h 36 HYPERLINK l _Toc372039391 十二、參考文獻 PAGEREF _Toc372039391 h 43歡迎學(xué)弟學(xué)妹下載!一、課題名稱雙色點陣顯示控制器二、摘要本實驗使用在QuartusII9.1的軟件基礎(chǔ)上,使用VHDL設(shè)計輸入和原理圖設(shè)計輸入混合編程,設(shè)計了一個88雙色點陣顯示器,實現(xiàn)了控制固定圖形的亮度和顏色以及多個字母不同模式的滾動且同時手動、自動變色的

12、功能。關(guān)鍵詞:數(shù)字電路,雙色點陣,VHDL,滾動三、設(shè)計任務(wù)要求 設(shè)計實現(xiàn)一個 88 雙色點陣顯示控制器?;疽螅?、固定紅色顯示一個漢字或圖形,顯示亮度4 級可調(diào),用一個btn 按鈕實現(xiàn)亮度調(diào)節(jié),亮度變化視覺效果要盡量明顯。2、用從紅到綠 8 級漸變色顯示一個固定漢字或圖形。3、分別用單字循環(huán)顯示、左右滾動顯示、上下滾動顯示三種顯示方式單色顯示四個漢字或圖形,顯示過程中,顯示方式用一個btn 按鍵進行切換。4、顯示的圖形或漢字要盡量飽滿美觀。提高要求:1、滾動顯示過程中實現(xiàn)四種顯示顏色的自動變換,顏色變化視覺效果要盡量明顯。2、自擬其它功能。四、設(shè)計思路,總體結(jié)構(gòu)框圖1、基本框架時鐘輸入,

13、分頻至掃描頻率,掃描頻率控制掃描計數(shù)器,譯碼器將計數(shù)器狀態(tài)譯成對應(yīng)輸出輸出clkCnt8譯碼器分頻器2、在點陣上顯示一個字或圖案在任何一個時刻,點陣中同時只可能有一行亮,為了讓人眼看到穩(wěn)定的八行八列圖形,必須利用人眼的視覺暫留,讓八行循環(huán)點亮并且達到一定頻率。因為人眼對于閃爍頻率在50HZ以上的光源會看到是一直亮的,故對于八行的點陣,點亮頻率至少需要508HZ才能保證人眼看到穩(wěn)定的圖案。因此,可以知道基本框架中,分頻器要把實驗板上的50MHZ的時鐘分到400HZ以上,這里可選擇1000HZ,控制模8計數(shù)器,譯碼器將模8計數(shù)器的計數(shù)值譯成row、colr管腳上的高低電平信號。3、控制亮度3.1脈

14、沖寬度調(diào)制(PWM)控制亮度需要有占空比不同的波,以這些信號去控制點亮的時間。 生成這種信號,我們必須考慮以下幾個問題:頻率是多少。在不進行亮度控制時,模8計數(shù)器的每一個值的持續(xù)時間對應(yīng)某一行亮的時間,而我們現(xiàn)在要控制這個時間,那些占空比不同的波的周期就必須和模8計數(shù)器的周期一致,否則必然造成混亂。而模8計數(shù)器對應(yīng)著掃描頻率,也就是第一級分頻器分出的頻率,那些占空比不同的波也可以作為第一級分頻器輸出的時鐘信號,故根據(jù)這里的分析我們可以將第一級分頻器和脈沖寬度調(diào)制器合并成一個模塊。占空比多大。我們第一個功能需要4級亮度,第二個功能需要8級漸變色,故可選擇生成占空比14%、28%、42%、56%、

15、70%、84%六種占空比的時鐘信號,占空比為0%和100%可以直接在程序中對電平賦0或1不需要生成。3.2 亮度用占空比不同的時鐘信號改變點亮?xí)r間以控制亮度。在譯碼部分增加一個判斷條件,如果控制此時亮度的占空比的時鐘信號電平為1,則正常譯碼;如果此時電平為0,那么對管腳colr或colg賦八位低電平向量“00000000”。Pwm當(dāng)外部輸入量不同時,是占空比不同的時鐘信號。Shuzu2是88數(shù)組。4、控制顏色用不同占空比的時鐘信號分別控制每一行colr、colg點亮的時間,使colr從第一行到第八行點亮?xí)r間依次減少(1000%),使colg從第一行到第八行點亮?xí)r間依次增加(0100%)。由此即

16、可出現(xiàn)由紅到綠的八級漸變色。Pwm16,是占空比1484%的時鐘信號。5、實現(xiàn)三種模式的滾動5.1狀態(tài)首先需要明確的是,每滾動一次,也即點陣圖案每變化一次,就對應(yīng)一個狀態(tài)。我們要想知道某一時刻要顯示出什么樣的圖案,就必須知道當(dāng)前是第幾個狀態(tài)。所以我們需要一個狀態(tài)計數(shù)器,以它的計數(shù)值去控制當(dāng)前顯示哪種圖案。對于單字循環(huán),每次顯示一個字,MING四個字母對應(yīng)4個狀態(tài),需要模4計數(shù)器。對于左右滾動和上下滾動,每次移動一行或者一列,對應(yīng)32個狀態(tài),需要模32計數(shù)器。因為滾動的頻率三者都相同,可以考慮將模4計數(shù)器和模32計數(shù)器合在一起以減少模塊數(shù)目。5.2如何存儲需要譯碼的字符點陣上的每一個圖案對應(yīng)8個

17、行向量,單字循環(huán)4個狀態(tài)對應(yīng)32個行向量,左右滾動和上下滾動對應(yīng)256個行向量。如果在程序中直接用每一個狀態(tài)對應(yīng)一個when、case語句去譯碼,工程量會非常大,而且不易修改,不易擴展??紤]把這4個字母存儲在一個二維數(shù)組中,為了方便左右滾動和上下滾動的譯碼,將這四個字母存在839(最后7列是第一個字母M的前7列)和398數(shù)組中(最后7行是第一個字母M的前7行)。5.3如何進行譯碼當(dāng)我們譯碼時,可以根據(jù)當(dāng)前狀態(tài)計數(shù)器的計數(shù)值動態(tài)引用數(shù)組中的行向量。這樣譯碼部分只需要8行代碼即可,而靜態(tài)引用的話,左右和上下滾動每種就需要寫256行。以下是程序左右滾動部分的截圖,以此為例簡要介紹動態(tài)引用數(shù)組中的行向

18、量。839數(shù)組,存儲,縱坐標(biāo)從下至上07,橫坐標(biāo)從左至右380,即坐標(biāo)橫縱均最大的點在左上角。其中Move是狀態(tài)計數(shù)器的值,031。對于cnt8=0,move=0點陣第一行顯示的是數(shù)組的第一行的18(標(biāo)號3831),而當(dāng)cnt8=0不變,move=1時,點陣第一行29列(標(biāo)號3730)。根據(jù)move值增大依次譯碼數(shù)組中后面的列。6、總體框圖五、控制器部分的狀態(tài)轉(zhuǎn)移圖和流程圖本程序中,譯碼部分是主要的控制器,根據(jù)輸入量的不同作出不同種類的譯碼。1、狀態(tài)轉(zhuǎn)移圖Function twoFunction oneSwt=”01”Swt=”00”Swt=”01”Swt=”11”Swt=”10”Swt=”0

19、0”Swt=”10”Swt=”10”Swt=”01”Swt=”11”Swt=”10”Swt=”00”Function threeFunction fourSwt為兩位撥碼開關(guān),根據(jù)swt值的不同可以從任意一個狀態(tài)直接跳到其他任意狀態(tài)Function one:顯示固定圖形或字,可四級亮度調(diào)節(jié)Function two:顯示固定圖形或字,由紅至綠八級漸變色Function three:三種滾動模式Function four:三種滾動模式且滾動中自動變色2、流程圖開始Swt的值變化Swt=”00”?Y功能一NSwt=”01”?Y功能二Swt的值變化NSwt=”10”?Y功能三Swt的值變化Swt的值變

20、化N功能四六、總體電路和分塊電路的設(shè)計1、總體電路2、分塊電路上述總體電路中共使用10種模塊,其中最關(guān)鍵的三種分別是:(1)pwm調(diào)制器library ieee;use ieee.std_logic_1164.all;use ;entity pwm is port( clk:IN STD_LOGIC; -實驗板上50MHZ時鐘輸入 pwm1:out std_logic; -以下是六種頻率為1000HZ,占空比從14%84%的波 pwm2:out std_logic; pwm3:out std_logic; pwm4:out std_logic; pwm5:out std_logic; pwm6

21、:out std_logic );end pwm;architecture project of pwm isbegin process(clk)-pwm,divider variable count:integer range 0 to 49999; begin if clk event and clk=1 then -計數(shù)器,其模值決定分頻比 if count=49999 then count:=0; else count:=count+1; end if; end if; if clk event and clk=1 then -pwm1 if count7000 thenpwm1=1;

22、else pwm1=0; end if; end if; if clk event and clk=1 then -pwm2if count14000 thenpwm2=1;else pwm2=0; end if; end if;if clk event and clk=1 then -pwm3if count21000 thenpwm3=1;else pwm3=0; end if; end if;if clk event and clk=1 then -pwm4-50%if count28000 thenpwm4=1;else pwm4=0; end if; end if; if clk e

23、vent and clk=1 then -pwm5if count35000 thenpwm5=1;else pwm5=0; end if; end if; if clk event and clk=1 then -pwm6if count42000 thenpwm6=1;else pwm6clkoutif cnt2=0 then clkout=clk1;else clkout clkout=0;end case;end process;end a;(3)譯碼器(translate)library ieee;use ieee.std_logic_1164.all;use ;entity tra

24、nslate is port( pwm1:IN STD_LOGIC; pwm2:IN STD_LOGIC; pwm3:IN STD_LOGIC; pwm4:IN STD_LOGIC; pwm5:IN STD_LOGIC; pwm6:IN STD_LOGIC; cnt8:IN integer range 0 to 7; cnt4:IN integer range 0 to 3; swt:IN std_logic_vector(1 downto 0); move:IN integer range 0 to 31;-狀態(tài)計數(shù)器值,模32 move1:IN integer range 0 to 3;-

25、狀態(tài)計數(shù)器值,模4 change:IN integer range 0 to 3;-變色狀態(tài)計數(shù)器,模4 row:out std_logic_vector(7 downto 0); colr:out std_logic_vector(7 downto 0); colg:out std_logic_vector(7 downto 0) );end translate;architecture project of translate issignal tchange1:std_logic;signal tchange2:std_logic;signal pwm:std_logic;type r

26、is array(7 downto 0) of std_logic_vector(38 downto 0);-定義839二維數(shù)組signal shuzu:r; -8*39 定義數(shù)組信號type r1 is array(38 downto 0) of std_logic_vector(7 downto 0);-定義398二維數(shù)組signal shuzu1:r1; -39*8 定義數(shù)組信號type r2 is array(7 downto 0) of std_logic_vector(7 downto 0);-定義88數(shù)組signal shuzu2:r2; -8*8 定義數(shù)組信號begin shu

27、zu=( -8*39賦值);shuzu1=( -39*8賦值10000001,11000011,10100101,10011001,10000001,10000001,10000001,10000001,00111100,00011000,00011000,00011000,00011000,00011000,00011000,00111100,10000001,11000001,10100001,10010001,10001001,10000101,10000011,10000001,01111110,10000001,10000000,10000000,10001111,10001001,

28、10000001,01111110,10000001,11000011,10100101,10011001,10000001,10000001,10000001);shuzu2rowrowrowrowrowrowrowrowrowtchange1=1;tchange2tchange1=pwm5;tchange2tchange1=pwm2;tchange2tchange1=0;tchange2 tchange1=1;tchange2 pwm pwm pwm pwm pwm=1; end case; end process; process(cnt8,cnt4,swt,pwm,pwm1,pwm2,

29、pwm3,pwm4,pwm5,pwm6,move,move1,tchange1,tchange2,shuzu,shuzu1,shuzu2)-function 1 begin if swt=00 then -function one 四級亮度 colg colr colr colr colr colr colr colr colr colr = 00000000; end case; else colrcolr=shuzu2(7); colg if pwm6=1 then colr=shuzu2(6);else colr=00000000;end if; if pwm1=1 then colg=

30、shuzu2(6);else colg if pwm5=1 then colr=shuzu2(5);else colr=00000000;end if; if pwm2=1 then colg=shuzu2(5);else colg if pwm4=1 then colr=shuzu2(4);else colr=00000000;end if; if pwm3=1 then colg=shuzu2(4);else colg if pwm3=1 then colr=shuzu2(3);else colr=00000000;end if; if pwm4=1 then colg=shuzu2(3)

31、;else colg if pwm2=1 then colr=shuzu2(2);else colr=00000000;end if; if pwm5=1 then colg=shuzu2(2);else colg if pwm1=1 then colr=shuzu2(1);else colr=00000000;end if; if pwm6=1 then colg=shuzu2(1);else colgcolr=00000000; colgcolr=00000000;colg -three-one 單字循環(huán) colg=00000000;colr colr colr colr colr col

32、r colr colr colr colr colg colg colg colg colg colg colg colg colr -three-two 左右滾動 colg=00000000;colr colr colr colr colr colr colr colr colr colr colg colg colg colg colg colg colg colg colg -three-three 上下滾動 colg=00000000;colr colr colr colr colr colr colr colr colr colr colg colg colg colg colg c

33、olg colg colg colg colr = 00000000;colg = 00000000; end case;end if; end process ;(4)其他模塊其他模塊均由簡單的防抖,計數(shù)器,分頻器等組成,從實驗教材上均可得到。詳見源代碼部分。七、所實現(xiàn)的功能說明1、已完成的基本功能(1)顯示一個笑臉,四級亮度可通過一個btn切換(2)顯示一個笑臉, 從紅到綠八級漸變色顯示(3)對于四個字母“MING”的單字循環(huán)、左右滾動、上下滾動顯示,顯示模式可通過一個btn切換2、已完成的擴展功能(1)在實現(xiàn)基本功能3時,可通過一個btn切換四種顏色(2)在實現(xiàn)基本功能3時,可自動變換四

34、種顏色,且可通過一個btn調(diào)節(jié)兩種變色頻率(2HZ,0.5HZ)3、器件資源占用情況器件資源使用情況如下:Total logic elements:504/1270(40%)Total pins:29/116(25%)4、關(guān)鍵波形仿真圖(1)pwm調(diào)制器產(chǎn)生六種占空比的時鐘信號。仿真波形分析:pwm16是占空比1484%的時鐘信號。(2)數(shù)據(jù)選擇器根據(jù)輸入和計數(shù)器當(dāng)前值輸出不同的時鐘信號控制變色頻率。仿真波形分析:當(dāng)swt=”00”或”01”時數(shù)據(jù)選擇器無輸出,對應(yīng)功能一和功能二時控制變色的計數(shù)器值不改變。當(dāng)swt=”10”時,clkout=btn,即按鍵作為輸出時鐘,功能三中每按鍵一次,顏色

35、變化一次。當(dāng)swt=”11”時,當(dāng)cnt2=0時,clkout=clk1;當(dāng)cnt2=1時,clkout=clk2。即功能四中兩級變色頻率可調(diào)。(3)譯碼器功能一、顯示一個笑臉?biāo)募壛炼瓤烧{(diào)仿真波形分析:根據(jù)cnt4記錄的按鍵次數(shù)不同,colr譯碼出來占空比不同,從而改變亮度。功能二、顯示一個笑臉由紅到綠八級漸變色仿真波形分析:Colr占空比從第一行到第八行依次減小,colg占空比從第一行到第八行依次增大。功能三、滾動1、單字循環(huán)仿真波形分析:仿真設(shè)置的狀態(tài)改變的頻率是掃描頻率的16分之1,所以同一個字母顯示兩次后顯示下一個字母。由可以看出顯示了MING。2、左右滾動仿真波形分析:Inst|co

36、unt是狀態(tài)計數(shù)值,每一個值對應(yīng)一個狀態(tài),從這些圖可以看出實現(xiàn)了MING的左右滾動。3、上下滾動仿真波形分析:Inst|count是狀態(tài)計數(shù)值,每一個值對應(yīng)一個狀態(tài),從這些圖可以看出實現(xiàn)的MING的上下滾動。功能四、滾動自動變色1、單字循環(huán)自動變色:仿真波形分析:Inst3|count是當(dāng)前顏色狀態(tài)的計數(shù)值,可以看出根據(jù)它的值改變,colr、colg的占空比循環(huán)變化,且對應(yīng)MING單字循環(huán)。2、左右滾動自動變色(前5個狀態(tài)):仿真波形分析:Inst3|count是當(dāng)前顏色狀態(tài)的計數(shù)值,可以看出根據(jù)它的值改變,colr、colg的占空比循環(huán)變化,且對應(yīng)MING左右滾動。3、上下滾動自動變色(前5

37、個狀態(tài))仿真波形分析:Inst3|count是當(dāng)前顏色狀態(tài)的計數(shù)值,可以看出根據(jù)它的值改變,colr、colg的占空比循環(huán)變化,且對應(yīng)MING上下滾動。八、故障及問題分析故障:在自己電腦上和主樓601使用QuartusII9.1編譯通過的程序在主樓615使用QuartusII7.2編譯全部報錯,錯誤是不允許在引用數(shù)組中的一部分使用變量。并且后來發(fā)現(xiàn)使用QuartusII9.0編譯同樣全部報錯。問題分析:QuartusII9.1版本支持的功能更多,而QuartusII9.0及以下版本不支持動態(tài)引用數(shù)組這個功能九、總結(jié)經(jīng)過三周的努力,順利完成了點陣實驗的基本功能和擴展功能,并自主添加了額外的兩種功

38、能。通過本次實驗,對于數(shù)字電路的設(shè)計我有了更深的理解,提高了實際設(shè)計能力和動手能力,收益頗豐。十、所用元器件及測試儀表清單1、數(shù)字電路與邏輯設(shè)計實驗板一個2、主樓601電腦一臺3、下載線一條十一、完整源程序1、總體原理圖設(shè)計2、防抖模塊library ieee;use ieee.std_logic_1164.all;use ;entity fangdou isport(clk:in std_logic; -輸入時鐘,時鐘頻率決定防抖效果,本程序接入的是1000HZ的時鐘reset:in std_logic;resetn:out std_logic); -防抖后的BTN輸出end fangdou

39、;architecture a of fangdou issignal resetmp1,resetmp2:std_logic;beginprocess(clk)beginif(clkevent and clk=0) thenresetmp2=resetmp1;resetmp1=reset;end if;end process;resetn=clk and resetmp1 and (not resetmp2);end a;3、一級分頻器(pwm調(diào)制器)library ieee;use ieee.std_logic_1164.all;use ;entity pwm is port( clk:I

40、N STD_LOGIC; -實驗板上50MHZ時鐘輸入 pwm1:out std_logic; -以下是六種頻率為1000HZ,占空比從14%84%的波 pwm2:out std_logic; pwm3:out std_logic; pwm4:out std_logic; pwm5:out std_logic; pwm6:out std_logic );end pwm;architecture project of pwm isbegin process(clk)-pwm,divider variable count:integer range 0 to 49999; begin if clk

41、 event and clk=1 then -計數(shù)器,其模值決定分頻比 if count=49999 then count:=0; else count:=count+1; end if; end if; if clk event and clk=1 then -pwm1 if count7000 thenpwm1=1;else pwm1=0; end if; end if; if clk event and clk=1 then -pwm2if count14000 thenpwm2=1;else pwm2=0; end if; end if;if clk event and clk=1 t

42、hen -pwm3if count21000 thenpwm3=1;else pwm3=0; end if; end if;if clk event and clk=1 then -pwm4-50%if count28000 thenpwm4=1;else pwm4=0; end if; end if; if clk event and clk=1 then -pwm5if count35000 thenpwm5=1;else pwm5=0; end if; end if; if clk event and clk=1 then -pwm6if count42000 thenpwm6=1;el

43、se pwm6=0; end if; end if; end process; end project; 4、二級分頻器library ieee; -基本分頻器use ieee.std_logic_1164.all;use ;entity divider isport(clk:in std_logic;clkout: out std_logic);end divider;architecture a of divider issignal temp:std_logic; begin process(clk) variable count:integer range 0 to 249; begi

44、n if clk event and clk=1 then if count=249 then count:=0; temp=not temp; else count:=count+1; end if; end if; end process;clkout=temp;end a;5、三級分頻器library ieee; -基本分頻器use ieee.std_logic_1164.all;use ;entity divider2 isport(clk:in std_logic;clkout: out std_logic);end divider2;architecture a of divide

45、r2 issignal temp:std_logic; begin process(clk) variable count:integer range 0 to 1; begin if clk event and clk=1 then if count=1 then count:=0; temp=not temp; else count:=count+1; end if; end if; end process;clkout=temp;end a;6、模2計數(shù)器library ieee; -模2計數(shù)器use ieee.std_logic_1164.all;use ;entity jishuqi

46、2 is port( clk:IN STD_LOGIC; cnt2:OUT integer range 0 to 1);end jishuqi2;architecture project of jishuqi2 isbeginprocess(clk) variable count:integer range 0 to 1;begin IF(clkEVENT AND clk=1)THEN IF count=1 THEN count:=0; ELSE count:=count+1; END IF; END IF; cnt2=count; END PROCESS ; end project;7、模4

47、計數(shù)器library ieee; -模4計數(shù)器use ieee.std_logic_1164.all;use ;entity jishuqi4 is port( clk:IN STD_LOGIC; cnt4:OUT integer range 0 to 3);end jishuqi4;architecture project of jishuqi4 isbeginprocess(clk) variable count:integer range 0 to 3;begin IF(clkEVENT AND clk=1)THEN IF count=3 THEN count:=0; ELSE coun

48、t:=count+1; END IF; END IF; cnt4=count; END PROCESS ; end project;8、模8計數(shù)器library ieee; -模8計數(shù)器use ieee.std_logic_1164.all;use ;entity jishuqi8 is port( clk:IN STD_LOGIC; cnt8:OUT integer range 0 to 7);end jishuqi8;architecture project of jishuqi8 isbeginprocess(clk) variable count:integer range 0 to

49、7;begin IF(clkEVENT AND clk=1)THEN IF count=7 THEN count:=0; ELSE count:=count+1; END IF; END IF; cnt8=count; END PROCESS ; end project;9、滾動狀態(tài)計數(shù)器(模4模32計數(shù)器組合)library ieee;-模4模32計數(shù)器,計數(shù)值決定滾動狀態(tài)use ieee.std_logic_1164.all;use ;entity yidong is port( clk:IN STD_LOGIC; move:OUT integer range 0 to 31; move1

50、:OUT integer range 0 to 3);end yidong;architecture project of yidong isbeginprocess(clk) variable count:integer range 0 to 31; variable count1:integer range 0 to 3;begin IF(clkEVENT AND clk=1)THEN IF count=31 THEN count:=0; ELSE count:=count+1; END IF; IF count1=3 THEN count1:=0; ELSE count1:=count1

51、+1; END IF; END IF; move=count; move1clkoutif cnt2=0 then clkout=clk1;else clkout clkout=0;end case;end process;end a;11、譯碼器library ieee;use ieee.std_logic_1164.all;use ;entity translate is port( pwm1:IN STD_LOGIC; pwm2:IN STD_LOGIC; pwm3:IN STD_LOGIC; pwm4:IN STD_LOGIC; pwm5:IN STD_LOGIC; pwm6:IN S

52、TD_LOGIC; cnt8:IN integer range 0 to 7; cnt4:IN integer range 0 to 3; swt:IN std_logic_vector(1 downto 0); move:IN integer range 0 to 31;-狀態(tài)計數(shù)器值,模32 move1:IN integer range 0 to 3;-狀態(tài)計數(shù)器值,模4 change:IN integer range 0 to 3;-變色狀態(tài)計數(shù)器,模4 row:out std_logic_vector(7 downto 0); colr:out std_logic_vector(7 d

53、ownto 0); colg:out std_logic_vector(7 downto 0) );end translate;architecture project of translate issignal tchange1:std_logic;signal tchange2:std_logic;signal pwm:std_logic;type r is array(7 downto 0) of std_logic_vector(38 downto 0);-定義839二維數(shù)組signal shuzu:r; -8*39 定義數(shù)組信號type r1 is array(38 downto 0

54、) of std_logic_vector(7 downto 0);-定義398二維數(shù)組signal shuzu1:r1; -39*8 定義數(shù)組信號type r2 is array(7 downto 0) of std_logic_vector(7 downto 0);-定義88數(shù)組signal shuzu2:r2; -8*8 定義數(shù)組信號begin shuzu=( -8*39賦值);shuzu1=( -39*8賦值10000001,11000011,10100101,10011001,10000001,10000001,10000001,10000001,00111100,00011000,00011000,00011000,00011000,00011000,00011000,00111100,10000001,11000001

溫馨提示

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

評論

0/150

提交評論