實(shí)驗10:七段數碼管
1. 實(shí)驗目的
本文引用地址:http://dyxdggzs.com/article/202310/451311.htm(1)熟悉和掌握FPGA開(kāi)發(fā)流程和Lattice Diamond軟件使用方法;
(2)通過(guò)實(shí)驗理解和掌握數碼管驅動(dòng);
(3)學(xué)習用Verilog HDL描述數碼管驅動(dòng)電路。
2. 實(shí)驗任務(wù)
在數碼管上顯示數字。
3. 實(shí)驗原理
數碼管是工程設計中使用很廣的一種顯示輸出器件。一個(gè)7段數碼管(如果包括右下的小點(diǎn)可以認為是8段)分別由a、b、c、d、e、f、g位段和表示小數點(diǎn)的dp位段組成。實(shí)際是由8個(gè)LED燈組成的,控制每個(gè)LED的點(diǎn)亮或熄滅實(shí)現數字顯示。通常數碼管分為共陽(yáng)極數碼管和共陰極數碼管,結構如下圖所示:
共陰8段數碼管的信號端低電平有效,而共陽(yáng)端接高電平有效。當共陽(yáng)端接高電平時(shí)只要在各個(gè)位段上加上相應的低電平信號就可以使相應的位段發(fā)光。比如:要使a段發(fā)光,則在a段信號端加上低電平即可。共陰極的數碼管則相反。 可以看到數碼管的控制和LED的控制有相似之處,在小腳丫STEP-MXO2 V2開(kāi)發(fā)板上有兩位共陰極數碼管:
數碼管所有的信號都連接到FPGA的管腳,作為輸出信號控制。FPGA只要輸出這些信號就能夠控制數碼管的那一段LED亮或者滅。這樣我們可以通過(guò)開(kāi)關(guān)來(lái)控制FPGA的輸出,和3. 3-8譯碼器實(shí)驗一樣,通過(guò)組合邏輯的輸出來(lái)控制數碼管顯示數字,下面是數碼管顯示的表格
這其實(shí)是一個(gè)4-16譯碼器,如果我們想數碼管能顯示16進(jìn)制可以全譯碼,如果只想顯示數字,可以只利用其中10個(gè)譯碼
4. 用CircuitJS查看
5. Verilog HDL建模描述
數碼管驅動(dòng)清單segment.v
module segment
(
input wire [3:0] seg_data_1, //四位輸入數據信號
input wire [3:0] seg_data_2, //四位輸入數據信號
output wire [8:0] segment_led_1, //數碼管1,MSB~LSB = SEG,DP,G,F,E,D,C,B,A
output wire [8:0] segment_led_2 //數碼管2,MSB~LSB = SEG,DP,G,F,E,D,C,B,A
);
reg[8:0] seg [15:0]; //存儲7段數碼管譯碼數據
initial
begin
seg[0] = 9'h3f; // 0
seg[1] = 9'h06; // 1
seg[2] = 9'h5b; // 2
seg[3] = 9'h4f; // 3
seg[4] = 9'h66; // 4
seg[5] = 9'h6d; // 5
seg[6] = 9'h7d; // 6
seg[7] = 9'h07; // 7
seg[8] = 9'h7f; // 8
seg[9] = 9'h6f; // 9
seg[10]= 9'h77; // A
seg[11]= 9'h7C; // b
seg[12]= 9'h39; // C
seg[13]= 9'h5e; // d
seg[14]= 9'h79; // E
seg[15]= 9'h71; // F
end
assign segment_led_1 = seg[seg_data_1];
assign segment_led_2 = seg[seg_data_2];
endmodule
6. 實(shí)驗步驟
1 登錄小腳丫FPGA Web IDE系統,建立工程
2 新建Verilog HDL設計文件,并鍵入設計代碼
3 設定該代碼位頂層文件
4 點(diǎn)擊“邏輯綜合”按鈕,完成綜合,代碼無(wú)錯誤會(huì )顯示完成
5 點(diǎn)擊管腳分配,根據代碼中端口的定義綁定相應的管腳
6 點(diǎn)擊“FPGA映射”生成可以配置FPGA的JED代碼
7 點(diǎn)擊文件下載,并鼠標指向“下載JED文件”,鼠標右鍵保存到STEPFPGA盤(pán)中完成FPGA的編程
7. 顯示效果
評論