色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

FPGA學習系列:18. 數碼管的設計

FPGA學習交流 ? 2018-06-18 19:24 ? 次閱讀

設計背景:

數碼管是一種半導體發光器件,其基本單元是發光二極管數碼管在我們的許多設計中都又用到,數碼管的顯示原理簡單和顯示效果清晰在我們的工業中的到了廣泛的應用。

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

設計原理:

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

image.png

數碼管顯示分為的動態和靜態顯示,為了讓人眼可以看清數碼管的顯示,我們一般驅動數碼管的頻率為1K - 10K 之間。

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

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

我們的開發板使用的動態顯示來循環掃描顯示。其原理圖如下所示:

image.png

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

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

設計架構圖:

image.png

設計代碼:

頂層模塊

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( //例化數碼管模塊

15 .clk(clk),

16 .rst_n(rst_n),

17 .sel(sel),

18 .seg7(seg7),

19 .data_in(num)

20 );

21endmodule

設計模塊

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

1

2 inputclk;

3 inputrst_n;

4 input[23:0]data_in;//輸入6個燈的數據

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的計數值

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)//計數到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位數據的 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位數據 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位數據的 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位數據的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位數據的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位數據的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@(*) //數碼管的譯碼模塊

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;//給輸入一個值,便于下次直接調用

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


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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21748

    瀏覽量

    603975
  • 數碼管
    +關注

    關注

    32

    文章

    1882

    瀏覽量

    91189
收藏 人收藏

    評論

    相關推薦

    FPGA學習:led數碼管控制燈滅設計實驗

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

    按鍵數碼管逐漸輸出5fpga數碼管數字1~6

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

    FPGA零基礎學習數碼管驅動設計

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

    FPGA入門實現教程之數碼管動態顯示

    FPGA入門實現教程之數碼管動態顯示
    發表于 11-13 16:25 ?93次下載

    靜態數碼管

    靜態數碼管靜態數碼管靜態數碼管靜態數碼管
    發表于 05-13 15:39 ?6次下載

    18b20數碼管顯示

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

    數碼管學習資料下載

    電子發燒友網站提供《數碼管學習資料下載.docx》資料免費下載
    發表于 05-26 08:00 ?16次下載

    FPGA_DIY 數碼管顯示60秒計時

    十八筆畫的 FPGA_DIY 數碼管60秒計時。
    的頭像 發表于 06-20 02:20 ?6166次閱讀

    FPGA DIY 按鍵控制數碼管顯示

    asean的 FPGA DIY 按鍵控制數碼管顯示的視頻
    的頭像 發表于 06-20 00:37 ?7836次閱讀

    單片機數碼管顯示原理

    這是比較常見的數碼管的原理圖,我們板子上一共有6只數碼管。前邊有了LED小燈的學習數碼管學習就會輕松的多了。從圖1能看出來,
    的頭像 發表于 09-18 16:46 ?2w次閱讀
    單片機<b class='flag-5'>數碼管</b>顯示原理

    深入學習基于FPGA數碼管動態掃描驅動設計

    數碼管作為一種能夠直觀顯示一定數據信息的輸出設備,具有驅動簡單、顯示直觀的特點,尤其適合作為 FPGA 系統的輸出設備。
    的頭像 發表于 03-14 09:45 ?4222次閱讀
    深入<b class='flag-5'>學習</b>基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>數碼管</b>動態掃描驅動設計

    單片機學習----數碼管顯示原理及應用代碼規劃

    單片機學習----數碼管顯示原理及應用代碼規劃內容:一、數碼管顯示原理二、如何用萬用表檢測數碼管的引腳排列三、數碼管與單片機的電氣連接四、
    發表于 11-10 18:46 ?22次下載
    單片機<b class='flag-5'>學習</b>----<b class='flag-5'>數碼管</b>顯示原理及應用代碼規劃

    藍橋杯單片機學習數碼管

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

    數碼管驅動學習筆記

    電子發燒友網站提供《數碼管驅動學習筆記.pdf》資料免費下載
    發表于 11-05 17:28 ?0次下載

    基于FPGA實現數碼管顯示

    本文介紹數碼管顯示譯碼基本工作原理及Verilog HDL驅動代碼編寫,進一步熟練掌握FPGA入門基礎知識。
    的頭像 發表于 10-24 14:44 ?1015次閱讀
    基于<b class='flag-5'>FPGA</b>實現<b class='flag-5'>數碼管</b>顯示
    主站蜘蛛池模板: 4399的视频BD高清在线观看免费| 亚洲国产五月综合网| 国产麻豆精品久久一二三| www色视频在线观看| 亚洲一级电影| 亚洲精品在看在线观看| 午夜理论片YY4399影院| 日韩免费视频一区| 日本三级床震| 日本xxx片免费高清在线| 年轻的搜子8中字在线观看| 久久亚洲这里只有精品18| 久久不卡免费视频| 久久精品国产视频澳门| 久久AV国产麻豆HD真实| 久久99AV无色码人妻蜜柚| 黑人巨大交牲老太| 亚洲色图影院| 亚洲 天堂 国产在线播放| 午夜天堂一区人妻| 午夜伦理在线观看| 午夜影院c绿象| 息与子在线交尾中文字幕| 性直播免费| 亚洲AV精品一区二区三区不卡| 午夜在线观看免费完整直播网| 香蕉精品国产高清自在自线| 亚洲 无码 制服 日韩| 亚洲国产女人aaa毛片在线| 亚洲乱码中文字幕久久孕妇黑人| 亚洲欧洲日产国产 最新| 一个人在线观看免费中文www| 真实国产乱子伦精品一区二区三区| 最近中文字幕在线中文高清版| 87.6在线收听| yellow片在线观看免费观看动漫| 粗大分开挺进内射| 国产免费69成人精品视频| 激情午夜307| 麻生希第一部快播| 人妻夜夜爽天天爽三区麻豆AV网站|