點亮乙個LED燈

2022-05-25 07:24:08 字數 2801 閱讀 4356

設計定義:

二選一多路器

兩個輸入io,a、b。可以是高電平,

輸入按鍵按下時,led燈與a埠狀態保持一致,

按鍵釋放時,led燈與b埠狀態保持一致

設計輸入:建立乙個project

編寫功能**

input a;//輸入埠a,b;

input b;

input key_in;//按鍵輸入,實現輸入通道的選擇

output led_out;//led控制埠

assign led_out=(key_in==0)?a:b;//當key_in==0,led_out=a;

endmodule

編寫testbench

`timescale 1ns/1ps

module led_tb;

reg signal_a;

reg signal_b;

reg signal_c;

//激勵訊號定義,對應連線到待測試模組的輸入輸出

wire led;

//待檢測訊號定義,對應連線到待測試模組的輸出埠

led u0(

.a(signal_a),

.b(signal_b),

.key_in(signal_c),

.led_out(led));

//例化待測試模組

initial

begin

signal_a=0;signal_b=0;signal_c=0;

#100//延時100ms

signal_a=0;signal_b=0;signal_c=1;

#100

signal_a=0;signal_b=1;signal_c=0;

#100

signal_a=0;signal_b=1;signal_c=1;

#100

signal_a=1;signal_b=0;signal_c=0;

#100

signal_a=1;signal_b=0;signal_c=1;

#100

signal_a=1;signal_b=1;signal_c=0;

#100

signal_a=1;signal_b=1;signal_c=1;

$stop;

//產生激勵

end

endmodule

設定指令碼

前仿

前仿結果

後仿結果

會發現在後仿的波形中會產生脈衝波形

還存在邏輯的延遲

這些問題在後面的學習中,現在重點學習流程。

假設這些問題都是可以接受的,現在回到quartus ii中對io進行分配,將設計對應到具體的電路板。

這裡查閱de1-soc開發板的硬體引腳文件,可以查到鍵盤和led燈的介面。

相應的管腳分配圖可以在de1-soc_v.1.2.0_systemcd\schematic資料夾下找到。)

從圖中可以看出可以選擇led為v16等四個燈,key為aa14等案件,a,b訊號輸入選擇ac12,ad12等sw撥碼開關

下面選擇引腳分配

設定好後的引腳分配圖,設定好後點選關閉即可。

選擇de-soc後close(第一次用開發板的可能沒有這個選項,這個在最後的附錄中將進行補充)

然後點選autodetect,選擇fpga設定,fpga和hps裝置會出現在jtag chain裡面

選定器件後右鍵,選擇change file

選定軟體程式生成的output file 下的.sof檔案,最後點選start即可成功燒寫到開發板中。

實物測試方法

把sw1撥到靠燈一端,sw5在另一端,按下key0後led燈會亮,不按下會熄滅,效果如下圖所示。

到這裡,整個專案的基本開發流程就基本能夠理解了。

附錄:第一次插上de1-soc系統因為沒有驅動,會檢測不到開發板,開啟系統的裝置管理器會發現有個無法檢測的裝置。

雙擊它後選擇驅動匯入-----》然後自己從quartus-----》安裝路徑\quartus\drivers\\usb-blaster-ii中匯入即可新增裝置驅動。

點亮LED燈(一)

想當初都是用彙編來編寫微控制器的程式,那滋味現在想來都是滿滿的回憶,還是用c語言寫起來爽快啊!用c寫微控制器程式,只需要引入標頭檔案即可,實際上該標頭檔案只是定義了特殊功能暫存器位址。為了今後使用方便,我們封裝乙個函式,用來開關led燈,通過引數來控制操作的p埠,並且引入掩碼來操作單個和多個bit位...

第乙個程式點亮乙個LED燈

include 引用52包檔案 可以理解為命名空間 sbit p1 0 p1 0 定義p1管腳0 void main 主程式 c語言所必需要有的 以下非程式 上面的程式,首先引用reg52.h,這裡有對操作微控制器相關資料的封裝,方便使用者使用 接著,用p1 0這個sbit型別的變數,引用p1口的第...

51微控制器點亮乙個led燈

51微控制器是很多小白入門嵌入式的一款微控制器,雖然51實際工作中用得不多,但是作為入門學習的一款微控制器卻是非常值得推薦的。畢竟一開始學的時候,作為我們這種普普通通的學習能力而言的小白,最好是簡單易學,可以快速的看到學習的成果,那是最可以激勵我們學習下去的動力和興趣。簡單學習51微控制器後,可以參...