女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA學(xué)習(xí)系列:18. 數(shù)碼管的設(shè)計

FPGA學(xué)習(xí)交流 ? 2018-06-18 19:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

設(shè)計背景:

數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管在我們的許多設(shè)計中都又用到,數(shù)碼管的顯示原理簡單和顯示效果清晰在我們的工業(yè)中的到了廣泛的應(yīng)用。

數(shù)碼管的應(yīng)用很廣泛,涉及眾多領(lǐng)域,我們就拿數(shù)顯儀表這個領(lǐng)域來講,數(shù)顯儀表是數(shù)字式顯示儀表的簡稱,顯示器常用的有LED、LCD為顯示元件。

設(shè)計原理:

本次的設(shè)計是設(shè)計一個數(shù)碼管的顯示模,其設(shè)計原理圖如下:

image.png

數(shù)碼管顯示分為的動態(tài)和靜態(tài)顯示,為了讓人眼可以看清數(shù)碼管的顯示,我們一般驅(qū)動數(shù)碼管的頻率為1K - 10K 之間。

顧名思義,七段數(shù)碼管就是使用七段點亮的線段來拼成常見的數(shù)字和某些字母,這種顯示方式我們在數(shù)字電路中非常容易見到。再加上右下角顯示的小數(shù)點,實際上一個顯示單元包括了8根信號線。根據(jù)電路設(shè)計的不同,這些信號線可能高有效也可能低有效。我們通過FPGA控制這些線段的亮滅,達到顯示效果。

對于多個數(shù)碼管的顯示模塊,將每一個都連接到FPGA的管腳會耗用大量FPGA的管腳資源。因此我們同樣引入一種類似矩陣鍵盤的掃描方式。任何時刻我們只使用8根信號點亮一個數(shù)碼管,但是8個數(shù)碼管是隨著時鐘步調(diào)交替點亮的,只要時鐘的速度夠快,我們觀察到數(shù)碼管就好像幾個同時點亮一樣。

我們的開發(fā)板使用的動態(tài)顯示來循環(huán)掃描顯示。其原理圖如下所示:

image.png

如圖所示,我們的開發(fā)板使用的是六位共陽極數(shù)碼管,六個PNP型三極管分別作為六組數(shù)碼管電源的輸入開關(guān),也就是我們常說的位選信號,PNP三極管為低電平導(dǎo)通,所以我們的位選信號低有效。在這里,為了節(jié)約FPGA的IO資源,我們把六個位選信號連接到了三八譯碼器74HC138D。

從我們的板子硬件原理圖上我們可以看清,我們的數(shù)碼管是紅陽極,就是是給一個低電平就是點亮數(shù)碼管的一個段,那么8段全部給8b0000000那么數(shù)碼管顯示的就是8這個數(shù)字了,我們用的是循環(huán)顯示,是通過sel引腳來選擇哪一個數(shù)碼管亮,也就是說我們的sel的三位為3b000的時候也就是選擇第一個數(shù)碼亮,3b001第二個數(shù)碼管亮依次類推。

設(shè)計架構(gòu)圖:

image.png

設(shè)計代碼:

頂層模塊

0moduleseg_x(clk,rst_n,sel,seg7);//頂層端口

1 inputclk; //輸入

2 inputrst_n;

3 output[2:0]sel; //輸出

4 output[7:0]seg7;

5

6 wire[23:0]num;

7

8 num_in num_in( //例化輸入模塊

9 .clk(clk),

10 .rst_n(rst_n),

11 .num(num)

12 );

13

14 seg seg( //例化數(shù)碼管模塊

15 .clk(clk),

16 .rst_n(rst_n),

17 .sel(sel),

18 .seg7(seg7),

19 .data_in(num)

20 );

21endmodule

設(shè)計模塊

0moduleseg(clk,rst_n,sel,seg7,data_in);//端口定義

1

2 inputclk;

3 inputrst_n;

4 input[23:0]data_in;//輸入6個燈的數(shù)據(jù)

5

6 outputreg[2:0]sel;

7 outputreg[7:0]seg7;

8

9 parameters0 =3'b000;

10 parameters1 =3'b001;

11 parameters2 =3'b010;

12 parameters3 =3'b011;

13 parameters4 =3'b100;

14 parameters5 =3'b101;

15

16 `defineT1ms 50_000 //定義1k的計數(shù)值

17 //`define T1ms 5

18 reg[15:0]count;

19 wireflag;

20 always@(posedgeclk ornegedgerst_n)

21 if(!rst_n)

22 begin

23 count <=15'b0;

24 end

25 else

26 if(count ==`T1ms-1)//計數(shù)到1MS

27 begin

28 count <=15'b0;

29 end

30 else

31 begin

32 count <=count +1'b1;

33 end

34

35 assignflag =(count ==`T1ms-1)?1'b1:1'b0;//標志位賦值

36

37 reg[2:0]state;

38 reg[3:0]num;

39 always@(posedgeclk ornegedgerst_n)

40 if(!rst_n)

41 begin

42 sel <=3'b0;

43 state <=3'b0;

44 num <=4'b0;

45 end

46 else

47 begin

48 case(state)

49 s0:begin

50 if(flag)

51 state <=s1;//亮第一個燈,給24位數(shù)據(jù)的 4

52 else

53 begin

54 sel <=3'b000;

55 num <=data_in[23:20];

56 end

57 end

58 s1:begin

59 if(flag) ////亮第2個燈,給24位數(shù)據(jù) 4

60 state <=s2;

61 else

62 begin

63 sel <=3'b001;

64 num <=data_in[19:16];

65 end

66 end

67 s2:begin

68 if(flag) //亮第3個燈,給24位數(shù)據(jù)的 4

69 state <=s3;

70 else

71 begin

72 sel <=3'b010;

73 num <=data_in[15:12];

74 end

75 end

76 s3:begin

77 if(flag) //亮第4個燈,給24位數(shù)據(jù)的4

78 state <=s4;

79 else

80 begin

81 sel <=3'b011;

82 num <=data_in[11:8];

83 end

84 end

85 s4:begin

86 if(flag) //亮第5個燈,給24位數(shù)據(jù)的4

87 state <=s5;

88 else

89 begin

90 sel <=3'b100;

91 num <=data_in[7:4];

92 end

93 end

94 s5:begin

95 if(flag) //亮第6個燈,給24位數(shù)據(jù)的4

96 state <=s0;

97 else

98 begin

99 sel <=3'b101;

100 num <=data_in[3:0];

101 end

102 end

103 default:state <=s0;

104 endcase

105 end

106

107 always@(*) //數(shù)碼管的譯碼模塊

108 begin

109 case(num)

110 0:seg7 =8'b1100_0000;

111 1:seg7 =8'b1111_1001;

112 2:seg7 =8'b1010_0100;

113 3:seg7 =8'b1011_0000;

114 4:seg7 =8'b1001_1001;

115 5:seg7 =8'b1001_0010;

116 6:seg7 =8'b1000_0010;

117 7:seg7 =8'b1111_1000;

118 8:seg7 =8'b1000_0000;

119 9:seg7 =8'b1001_0000;

120 10:seg7 =8'b1000_1000;

121 11:seg7 =8'b1000_0011;

122 12:seg7 =8'b1100_0110;

123 13:seg7 =8'b1010_0001;

124 14:seg7 =8'b1000_0110;

125 15:seg7 =8'b1000_1110;

126 default:;

127 endcase

128 end

129endmodule

輸入模塊

0modulenum_in(clk,rst_n,num);//端口定義

1 inputclk;

2 inputrst_n;

3

4

5 output[23:0]num;

6

7 assignnum =24'h123456;//給輸入一個值,便于下次直接調(diào)用

8

9

10

11endmodule

測試模塊

0`timescale1ns/1ps//時間精度

1

2moduleseg_tb;

3 regclk; //端口定義

4 regrst_n;

5

6

7 wire[2:0]sel;

8 wire[7:0]seg7;

9

10 initialbegin

11 clk =1'b1;

12 rst_n =1'b0;

13

14 #100.1rst_n =1'b1;

15

16 #200000

17 $stop;

18

19 end

20 always#10clk =~clk;//模擬時鐘

21

22 seg_x seg_x_dut( //例化頂層模塊

23 .clk(clk),

24 .rst_n(rst_n),

25 .sel(sel),

26 .seg7(seg7)

27 );

28endmodule

仿真:

image.png


在仿真中我們可以看到我們的設(shè)計是正確的,第一個燈亮的是f9,也就是也就是對應(yīng)數(shù)碼管顯示的是1,a4就是2,和我們的輸入是正確的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22049

    瀏覽量

    618388
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1889

    瀏覽量

    92606
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA學(xué)習(xí):led數(shù)碼管控制燈滅設(shè)計實驗

    對于數(shù)碼管來說,讀者若是學(xué)過單片機及其他MCU的話,其實都知道數(shù)碼管的控制有兩個信號是比較重要的,一個是段選信號,一個是位選信號,位選信號是針對有多個數(shù)碼管時,需要控制哪一個數(shù)碼管發(fā)亮
    的頭像 發(fā)表于 09-24 11:52 ?7926次閱讀

    按鍵數(shù)碼管逐漸輸出5fpga數(shù)碼管數(shù)字1~6

    fpga數(shù)碼管數(shù)字從左到右移動,按下按鍵數(shù)碼管逐漸輸出5fpga數(shù)碼管數(shù)字1~6從左到右移動(如123456–>234561->234561
    發(fā)表于 07-29 07:30

    FPGA零基礎(chǔ)學(xué)習(xí)數(shù)碼管驅(qū)動設(shè)計

    的。話不多說,上貨。 數(shù)碼管驅(qū)動設(shè)計 開發(fā)板上擁有一個六位一體的數(shù)碼管,利用數(shù)碼管可以顯示一些數(shù)據(jù)。 · 硬件介紹 數(shù)碼管共有八個段選信號,通過電阻直接與
    發(fā)表于 03-09 16:25

    FPGA入門實現(xiàn)教程之數(shù)碼管動態(tài)顯示

    FPGA入門實現(xiàn)教程之數(shù)碼管動態(tài)顯示
    發(fā)表于 11-13 16:25 ?93次下載

    靜態(tài)數(shù)碼管

    靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管
    發(fā)表于 05-13 15:39 ?6次下載

    18b20數(shù)碼管顯示

    18b20數(shù)碼管顯示單片機控制源代碼分享。
    發(fā)表于 05-20 15:07 ?20次下載

    數(shù)碼管學(xué)習(xí)資料下載

    電子發(fā)燒友網(wǎng)站提供《數(shù)碼管學(xué)習(xí)資料下載.docx》資料免費下載
    發(fā)表于 05-26 08:00 ?16次下載

    FPGA_DIY 數(shù)碼管顯示60秒計時

    十八筆畫的 FPGA_DIY 數(shù)碼管60秒計時。
    的頭像 發(fā)表于 06-20 02:20 ?6481次閱讀

    FPGA DIY 按鍵控制數(shù)碼管顯示

    asean的 FPGA DIY 按鍵控制數(shù)碼管顯示的視頻
    的頭像 發(fā)表于 06-20 00:37 ?8155次閱讀

    FPGA視頻教程之使用BJ-EPM240學(xué)習(xí)板進行數(shù)碼管顯示實驗的資料說明

    本文檔的主要內(nèi)容詳細介紹的是FPGA視頻教程之使用BJ-EPM240學(xué)習(xí)板進行數(shù)碼管顯示實驗的資料說明
    發(fā)表于 02-28 10:35 ?5次下載
    <b class='flag-5'>FPGA</b>視頻教程之使用BJ-EPM240<b class='flag-5'>學(xué)習(xí)</b>板進行<b class='flag-5'>數(shù)碼管</b>顯示實驗的資料說明

    深入學(xué)習(xí)基于FPGA數(shù)碼管動態(tài)掃描驅(qū)動設(shè)計

    數(shù)碼管作為一種能夠直觀顯示一定數(shù)據(jù)信息的輸出設(shè)備,具有驅(qū)動簡單、顯示直觀的特點,尤其適合作為 FPGA 系統(tǒng)的輸出設(shè)備。
    的頭像 發(fā)表于 03-14 09:45 ?4553次閱讀
    深入<b class='flag-5'>學(xué)習(xí)</b>基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>數(shù)碼管</b>動態(tài)掃描驅(qū)動設(shè)計

    單片機學(xué)習(xí)----數(shù)碼管顯示原理及應(yīng)用代碼規(guī)劃

    單片機學(xué)習(xí)----數(shù)碼管顯示原理及應(yīng)用代碼規(guī)劃內(nèi)容:一、數(shù)碼管顯示原理二、如何用萬用表檢測數(shù)碼管的引腳排列三、數(shù)碼管與單片機的電氣連接四、
    發(fā)表于 11-10 18:46 ?22次下載
    單片機<b class='flag-5'>學(xué)習(xí)</b>----<b class='flag-5'>數(shù)碼管</b>顯示原理及應(yīng)用代碼規(guī)劃

    藍橋杯單片機學(xué)習(xí)數(shù)碼管

    這里是我的數(shù)碼管學(xué)習(xí)筆記,歡迎大家一起進步數(shù)碼管的初始化原理參照以下鏈接(本人寫的博客)初始化原理請務(wù)必多看一下,里面還有關(guān)于P0口的一些信息那么看一下原理圖,了解一下數(shù)碼管的工作原
    發(fā)表于 11-23 17:21 ?7次下載
    藍橋杯單片機<b class='flag-5'>學(xué)習(xí)</b>之<b class='flag-5'>數(shù)碼管</b>

    數(shù)碼管驅(qū)動學(xué)習(xí)筆記

    電子發(fā)燒友網(wǎng)站提供《數(shù)碼管驅(qū)動學(xué)習(xí)筆記.pdf》資料免費下載
    發(fā)表于 11-05 17:28 ?0次下載

    基于FPGA實現(xiàn)數(shù)碼管顯示

    本文介紹數(shù)碼管顯示譯碼基本工作原理及Verilog HDL驅(qū)動代碼編寫,進一步熟練掌握FPGA入門基礎(chǔ)知識。
    的頭像 發(fā)表于 10-24 14:44 ?1828次閱讀
    基于<b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>數(shù)碼管</b>顯示