【正文】
(d) 七段譯碼BEGIN CASE d IS WHEN X0= seg_r=Xc0。顯示1 WHEN X2= seg_r=Xa4。顯示3 WHEN X4= seg_r=X99。顯示5 WHEN X6= seg_r=X82。顯示7 WHEN X8= seg_r=X80。顯示9 WHEN Xa= seg_r=X88。顯示b WHEN Xc= seg_r=Xc6。顯示d WHEN Xe= seg_r=X86。顯示f WHEN OTHERS= seg_r=XFF。 END PROCESS。(3) 。步驟如下:① 在Quartus II主界面中選擇Tools—Mega Wizard PlugIn Manager,打開如圖所示的兆功能模塊向?qū)АD 添加兆功能模塊向?qū)υ捒颉狿age1② 單擊Next進(jìn)入向?qū)У?頁,按照如下圖所示填寫。 ③ 單擊Next進(jìn)入向?qū)У?頁,按照如下圖所示填寫。④ 剩余步驟不需更改設(shè)置,在這里可以一步一步單擊Next,或者直接單擊Finish結(jié)束。圖 添加兆功能模塊向?qū)υ捒颉狿age2圖 添加兆功能模塊向?qū)υ捒颉狿age3(5) 新建圖形設(shè)計(jì)文件。圖 靜態(tài)LED顯示頂層模塊圖(6) 選擇目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,這里選擇的器件為Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。表 引腳鎖定方法信號(hào)引腳信號(hào)引腳EP2C5EP1C12EP2C5EP1C12seg[0]145161dig[0]135138seg[1]142144dig[1]127137seg[2]143159dig[2]133136seg[3]139141dig[3]117135seg[4]141156dig[4]128134seg[5]137139dig[5]115133seg[6]138143dig[6]118132seg[7]134140dig[7]113131clock23153(7) (Project—Set as Toplevel Entity)。(8) 下載程序到芯片上,觀察數(shù)碼管的顯示狀態(tài)。2. 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)內(nèi)容是建立數(shù)碼管動(dòng)態(tài)掃描顯示模塊。穩(wěn)定顯示后,放慢掃描速度演示動(dòng)態(tài)顯示的原理過程。常見的數(shù)碼管共陰和共陽兩種。公共端常稱為位碼,而將其它8位稱為段碼,分別為:a、b、c、d、e、f、g、h,其中h為小數(shù)點(diǎn),只要公共端為高電平“1”,某個(gè)段輸出為低電平“0”,則相應(yīng)的段就亮。被選通的數(shù)碼管顯示,其余關(guān)閉。根據(jù)這種電路狀態(tài),如果希望8個(gè)數(shù)碼管全都顯示想要的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)DIG0~DIG7分別單獨(dú)選通,同時(shí)在段輸入端加上對應(yīng)的數(shù)據(jù)。4. 實(shí)驗(yàn)步驟(1) 啟動(dòng)Quartus II,建立一個(gè)空白工程。然后進(jìn)行綜合編譯。 (File→ Create/_Update → Create Symbol Files for Current File)。 USE 。USE 。d: IN STD_LOGIC_VECTOR(31 DOWNTO 0)。 數(shù)碼管選擇輸出引腳seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) 數(shù)碼管段輸出引腳)。ARCHITECTURE one OF scan_led ISSIGNAL seg_r: STD_LOGIC_VECTOR(7 DOWNTO 0)。 定義數(shù)碼管選擇輸出寄存器SIGNAL disp_dat: STD_LOGIC_VECTOR(3 DOWNTO 0)。 定義計(jì)數(shù)寄存器BEGINdig=dig_r。PROCESS(clk_1k)BEGIN IF RISING_EDGE(clk_1k) THEN count=count+1。END PROCESS。 第一個(gè)數(shù)碼管 WHEN 001= disp_dat=d(27 DOWNTO 24)。 第三個(gè)數(shù)碼管 WHEN 011= disp_dat=d(19 DOWNTO 16)。 第五個(gè)數(shù)碼管 WHEN 101= disp_dat=d(11 DOWNTO 8)。 第七個(gè)數(shù)碼管 WHEN 111= disp_dat=d(3 DOWNTO 0)。 CASE count IS 選擇數(shù)碼管顯示位 WHEN 000= dig_r=01111111。 選擇第二個(gè)數(shù)碼管顯示 WHEN 010= dig_r=11011111。 選擇第四個(gè)數(shù)碼管顯示 WHEN 100= dig_r=11110111。 選擇第六個(gè)數(shù)碼管顯示 WHEN 110= dig_r=11111101。 選擇第八個(gè)數(shù)碼管顯示 END CASE。END PROCESS。顯示0 WHEN X1= seg_r=Xf9。顯示2 WHEN X3= seg_r=Xb0。顯示4 WHEN X5= seg_r=X92。顯示6 WHEN X7= seg_r=Xf8。顯示8 WHEN X9= seg_r=X90。顯示a WHEN Xb= seg_r=X83。顯示c WHEN Xd= seg_r=Xa1。顯示e WHEN Xf= seg_r=X8e。END PROCESS。(3) 。步驟如下:① 在Quartus II主界面中選擇Tools—Mega Wizard PlugIn Manager,打開如圖所示的兆功能模塊向?qū)?。圖 添加兆功能模塊向?qū)υ捒颉狿age1② 單擊Next進(jìn)入向?qū)У?頁,按照如下圖所示填寫。 圖 添加兆功能模塊向?qū)υ捒颉狿age2③ 單擊Next進(jìn)入向?qū)У?頁,按照如下圖所示填寫。圖 添加兆功能模塊向?qū)υ捒颉狿age3④ 剩余步驟不需更改設(shè)置,在這里可以一步一步單擊Next,或者直接單擊Finish結(jié)束。注意在結(jié)束時(shí)一定要選擇生成“*.bsf”符號(hào)文件。文件的設(shè)計(jì)如下圖所示。引腳鎖定方法如下表所列。對該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。(9) 穩(wěn)定顯示后,放慢掃描速度演示動(dòng)態(tài)顯示的原理過程。2. 實(shí)驗(yàn)內(nèi)容在實(shí)驗(yàn)箱上的蜂鳴器輸出報(bào)警笛聲。4. 實(shí)驗(yàn)步驟(1) 啟動(dòng)Quartus II,建立一個(gè)空白工程。然后進(jìn)行綜合編譯。程序參考:LIBRARY IEEE。USE 。ENTITY beep IS PORT( clk_48M : IN STD_LOGIC。END 。SIGNAL beep_r: STD_LOGIC。 ELSE count=count+1。 END IF。 PROCESS(count(9)) BEGIN beep_r= not (count(13) AND count(24) AND count(27))。 output=beep_r。(3) 選擇目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,這里選擇的器件為Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。表 引腳鎖定方法信號(hào)引腳信號(hào)引腳EP2C5EP1C12EP2C5EP1C12beep103119clk23153(4) 對該工程文件進(jìn)行全程編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為止。下載程序到芯片上,將跳線短接帽接好,此時(shí)可以聽到蜂鳴器發(fā)出“滴滴”的報(bào)警聲。學(xué)習(xí)電路的仿真方法。在實(shí)驗(yàn)箱上的按鍵KEY1~KEY3分別為A、B和Cin,并通過LED1~LED3指示相應(yīng)的狀態(tài)。3. 實(shí)驗(yàn)原理1位全加器的真值表如下所示。(2) ,源代碼如下。若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直到編譯成功為止。 USE 。USE 。key1,key2,key3: OUT STD_LOGIC。END。 BEGIN Key1=a。039。 a。039。 b。039。 cin。 sum=sum_r(0)。END。單擊OK建立一個(gè)空的波形編輯窗口。此時(shí)會(huì)看到窗口內(nèi)出現(xiàn)如下圖所示。在該對話框中單擊Node Finder按鈕,彈出如圖 所示的對話框。圖 添加節(jié)點(diǎn)④ 波形編輯器默認(rèn)的仿真結(jié)束時(shí)間為1us,根據(jù)仿真需要可以設(shè)置仿真文件的結(jié)束時(shí)間。這里采用默認(rèn)值不需更改。編輯時(shí)將使用到波形編輯工具欄中的各種工具。圖 波形編輯器工具條⑥ 在Quartus II主界面下選擇Processing→ Simulator Tool 命令,彈出如下圖對話框。圖 仿真設(shè)置對話框圖 1位全加器仿真波形圖(4)選擇目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,這里選擇的器件為Altera公司的Cyclone II系列的EP2C5Q208C8,或者Cyclone I系列的EP1C12Q240C8。表 引腳鎖定方法信號(hào)引腳信號(hào)引腳EP2C5EP1C12EP2C5EP1C12Led0116128Key05675Led1110127Key15978Led2114126Key25777sum63122cout106121(5)P6是一個(gè)3針的插座,如果把短接帽接到下面,使下面兩個(gè)插針短接,則按鍵有效;如果把短接帽接到上面,使上面兩個(gè)插針短接,則矩陣鍵盤有效。把JP20的LED1~LED8的跳帽插上,使發(fā)光二極管有效。實(shí)驗(yàn) 直流電機(jī)PWM控制1. 實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)使用PWM對直流電機(jī)進(jìn)行調(diào)速控制,掌握PWM控制的工作原理。利用Quartus II完成設(shè)計(jì)仿真,最后在實(shí)驗(yàn)箱上進(jìn)行硬件測試。Key2控制電機(jī)的停止和啟動(dòng),由LED8指示其狀態(tài),key3控制電機(jī)正反轉(zhuǎn),電機(jī)轉(zhuǎn)到時(shí)檢測反饋回來的脈沖通過頻率計(jì)測量最后顯示在數(shù)碼管1~8上。4. 實(shí)驗(yàn)步驟LIBRARY IEEE。 USE 。ENTITY moto_test ISPORT(clock_48M: IN STD_LOGIC。按鍵輸入(key1~key3)pwm_in: IN STD_LOGIC。 PWM控制使能端duty_cycle: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 PWM波輸出led: OUT STD_LOGIC_VECTOR(4 DOWNTO 0))。ARCHITECTURE one OF moto_test ISSIGNAL duty_cycle_io: STD_LOGIC_VECTOR(3 DOWNTO 0)。SIGNAL count: STD_LOGIC_VECTOR(16 DOWNTO 0)。消抖寄存器SIGNAL moto_dir: STD_LOGIC。按鍵消抖輸出SIGNAL clk: STD_LOGIC。BEGINled=NOT (pwm_en_io amp。LED輸出狀態(tài)指示pwm_en = pwm_en_io。PROCESS(clock_48M)BEGIN IF RISING_EDGE(clock_48m) THEN IF count120000 THEN count=count+1。039。 clk=39。 END IF。END PROCESS。139。 dout2=dout1。 END IF。END PROCESS。按鍵消抖輸出. END IF。key_edge=NOT (dout1 OR dout2 OR d