小腳丫板載的數(shù)碼管是7段數(shù)碼管(如果包括右下的小點(diǎn)可以認(rèn)為是8段),它分別由a、b、c、d、e、f、g位段和表示小數(shù)點(diǎn)的dp位段組成,見圖1。
圖1 7段數(shù)碼管數(shù)碼管的各個(gè)段位是由LED燈組成的,控制每個(gè)LED的點(diǎn)亮或熄滅實(shí)現(xiàn)數(shù)字顯示。通常數(shù)碼管分為共陽極數(shù)碼管和共陰極數(shù)碼管,結(jié)構(gòu)如圖所示。共陰8段數(shù)碼管的信號端低電平有效,而共陽端接高電平有效。比如,使共陽端數(shù)碼管的a段發(fā)光,則在a段信號端加上低電平即可。共陰極的數(shù)碼管則相反。 ? ?
小腳丫的板載數(shù)碼管為7段共陰極數(shù)碼管,可以顯示數(shù)字0-9以及字母A-F共計(jì)16種選擇。因此,如果我們需要數(shù)碼管能顯示所有的16種選擇,需要至少4位輸入碼(24=16)。表1列出了各個(gè)數(shù)碼管字符所對應(yīng)的LED燈段位。
表1各數(shù)碼管字符所對應(yīng)的LED燈段位
圖2標(biāo)注了小腳丫板載的兩個(gè)數(shù)碼管的各LED段位以及小腳丫上所對應(yīng)的引腳。其中SEG_DIP為公共端,因此在共陰極數(shù)碼管的設(shè)計(jì)中需要接低電平??梢钥闯?,每一個(gè)數(shù)碼管都含有9個(gè)引腳,因此每一個(gè)字符的顯示都需要由一個(gè)9位的輸出信號來實(shí)現(xiàn)。
接下來我們通過Verilog實(shí)現(xiàn)對數(shù)碼管的控制。其中,我們將模塊的輸出定義為兩個(gè)7段數(shù)碼管,每個(gè)數(shù)碼管有9個(gè)引腳,分別由9位信號控制。輸入端由4路信號控制,可以分別對應(yīng)0-F等十六個(gè)字符選擇。
module segment
(
input wire[3:0] seg_data_1, //四位輸入數(shù)據(jù)信號,可通過4個(gè)撥碼開關(guān)控制
input wire[3:0] seg_data_2, //四位輸入數(shù)據(jù)信號,可通過4個(gè)按鍵開關(guān)控制
output wire[8:0] segment_led_1, //數(shù)碼管1,MSB~LSB =SEG,DP,G,F,E,D,C,B,A
output wire[8:0] segment_led_2 //數(shù)碼管2,MSB~LSB =SEG,DP,G,F,E,D,C,B,A
);
reg[8:0] seg [15:0]; //存儲7段數(shù)碼管譯碼數(shù)據(jù)
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]; // 將對應(yīng)字符導(dǎo)入數(shù)碼管1并顯示
assign segment_led_2 = seg[seg_data_2]; // 將對應(yīng)字符導(dǎo)入數(shù)碼管2并顯示
endmodule
上述代碼是定義7段共陰極數(shù)碼管的通用模塊,可以保存起來作為一個(gè)獨(dú)立模塊。這樣,在以后遇到需要用數(shù)碼管顯示的實(shí)驗(yàn)時(shí)我們可以直接調(diào)用(之后我們還會講解如何調(diào)用子模塊),而不用再重新寫一遍代碼。
接下來是提問環(huán)節(jié):
當(dāng)我們指定用撥碼開關(guān)SW1-SW4來控制左邊數(shù)碼管,按鍵開關(guān)K1-K4來控制右側(cè)數(shù)碼管,此時(shí)如果開關(guān)的狀態(tài)分別如下圖所示,數(shù)碼管應(yīng)該顯示什么字符?
而為了幫助更多老師快速上手FPGA的使用和教學(xué),在即將到來的寒假,我們針對高校從事教學(xué)/實(shí)驗(yàn)室一線工作的教師,推出一個(gè)為期5天(2021年1月25日-1月29日)的FPGA設(shè)計(jì)及應(yīng)用快速培訓(xùn),通過實(shí)用性非常強(qiáng)的典型案例動手實(shí)踐,幫助大家快速、有效地上手FPGA,并能夠在未來的教學(xué)、實(shí)踐、電賽中大顯身手,硬禾實(shí)戰(zhàn)營也將成為參加培訓(xùn)的老師們長期的教學(xué)后援。
責(zé)任編輯:xj
原文標(biāo)題:基于FPGA的數(shù)字電路實(shí)驗(yàn)3:點(diǎn)亮數(shù)碼管
文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1626文章
21677瀏覽量
601992 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1876瀏覽量
90967 -
數(shù)字電路
+關(guān)注
關(guān)注
193文章
1601瀏覽量
80509
原文標(biāo)題:基于FPGA的數(shù)字電路實(shí)驗(yàn)3:點(diǎn)亮數(shù)碼管
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論