找回密码
 注册
关于网站域名变更的通知
查看: 294|回复: 1
打印 上一主题 下一主题

不用分频器的方式点亮六个数码管

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-5 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
不用分频器的方式点亮六个数码管

% T# D$ j& q/ ~, r* C! f. l; p2 {
+ T, U+ \6 ?0 S3 {为了达到六个数码管同时被点亮的效果,则要使数码管位选信号变化频率在1000hz左右,也即sel的变化频率在1000hz左右2 x$ S7 h  r5 e3 F) ~  H* o! L6 u0 v
7 i$ H) w$ d& Z  K% S
为了使频率达到1000hz,好多同学选择了用分频器的方式,当然这种方法得到的是准确的1000hz。我用了另外一种方式,也可以点亮六个数码管,虽然频率不是准确的1000hz,但却很方便。7 l0 z1 [! Q# b$ F9 z/ u6 t4 `

# x! t) h6 ?5 y" P2 |. b, H$ ?设置一个计数器【31:0】count
- T3 z$ c$ q! o/ b2 g" [这个计数器的最低位count【0】它的计数累加频率就是时钟频率50mhz; L# r9 W+ }$ c9 {- g
而第2位count【1】的累加频率为(50m/2^1)hz
& n: g! u! t5 p3 h( o& w. s, X它的第N+1位的计数频率为(50m/2^N)hz
* b& o6 x. Z& w# u/ f由此可的
$ \! ^! u3 b  J$ h* O# i" h3 E6 o第17位count【16】的频率约为760hz,也可以达到点亮数码管的效果
6 |, G! V: O+ F) t8 ~. \! [可以设置一个中间参数B,令计数器count以B为单位累加,达到更精确的频率值。f_out=(f_clk/2^n)*B。4 z% M6 X3 Q# Z. Q! C
取f_out=1000hz,f_clk=50000000hz,n=28- r( t$ e/ V9 j" j
B=5369,所以程序为' Y2 v; [* F+ S; y. U4 G: T0 w2 o

7 W7 H% X# o- t$ m% O) \module smg(clk,rst_n,seg,sel);: O7 x3 `( [. B
        input clk;; K: T6 N2 h7 ]& O
        input rst_n;/ X6 D9 ]2 J$ @8 t
        ; e  E% [# ?* |7 v' u8 G- |2 K0 m  h
        output reg[2:0]sel;+ }0 x" d3 R# ~3 @2 X
        output reg[7:0]seg;, X9 t5 H+ E" k0 O2 s1 a
        reg [31:0]count;
* X: H# I, ~6 j' O        * V' _$ O) I6 ]8 y; q
        parameter B=5369;0 g/ O" b. M; {1 ?+ _
        
) T( n( a& S1 M: ]4 z        - h* Z; V$ I' F/ s9 S! P; b4 U
        
. F. w9 C, d! M0 u# H+ Z6 `        always@(posedge clk or negedge rst_n). p4 Q# N5 x0 k: G- L3 Q
                begin
- X. x  I; P& o1 j0 R) n2 C3 U                        if(!rst_n)8 ?0 r- I9 i' ?) y4 B. i
                                begin! y: V  J. u7 x3 Z7 g( b4 J" c
                                        seg<=8'b1111_1111;
, u7 i" x- N5 A% D/ v) @4 F) T                                        sel<=3'b111;0 ^* r- W* L. T
                                        count<=0;( U1 j8 D' S" Q$ G( J) P
                                end
6 H; q7 N/ u9 k2 q& C8 g4 z                        else
  @1 @# Y% C7 p5 p; J% H                                begin6 R7 L2 J) K9 |! A
                                        count<=count+B;
" z# |: L; K- e2 F. b( A                                        sel<=count[31:28];//计数频率约为1khz: G: f* H, Q3 E' ?/ o
                                        case(sel)0 ^: I2 B. r% g
                                        0:begin seg<=8'b1111_1001;end- _: y. g* u1 r* X7 |, m7 i
                                        1:begin seg<=8'b1010_0100;end
. c" x4 e0 E3 A  P/ S4 F                                        2:begin seg<=8'b1011_0000;end
: ]4 S2 ]" P! e9 q                                        3:begin seg<=8'b1001_1001;end% _7 L  @! v; |8 p. _7 z& X3 \& _, N
                                        4:begin seg<=8'b1001_0010;end
8 e5 U, g& w* c/ X7 J' T2 l$ V                                        5:begin seg<=8'b1000_0010;end6 D$ f4 ~3 n. e$ C& f
                                        default:begin sel<=0;end
$ ^) g% C- m1 C- H& z# G. a8 L& O                                        endcase
. _  l2 f0 Z$ p8 |0 u1 c1 ]- V9 n3 P                                end2 h1 l2 C# ?& l# U$ S
                end5 d0 n# S8 {- ^5 B- h+ F# g
8 \  B$ j: i- y& g- B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 21:00 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表