完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
module smg(a,seg,dig,clock);
input clock; output [3:0] a; output [7:0] seg; //数码管段码输出 output [3:0] dig; //数码管位码输出 reg [7:0] seg; //数码管段码输出寄存器 reg [3:0] disp_dat1; //显示数据寄存器 reg [3:0] disp_dat2; //显示数据寄存器 reg [3:0] disp_dat3; //显示数据寄存器 reg [3:0] disp_dat4; //显示数据寄存器 reg [3:0] disp_dat; //显示数据寄存器 reg [3:0] digt; //数码管位码输出寄存器 reg [3:0] a; reg [16:0] data; assign dig=~digt; reg [36:0] count; //定义计数寄存器 reg [36:0] ct; /*always@(posedge clock)*/ begin disp_dat1<=data%10000/1000; disp_dat2<=data%1000/100; disp_dat3<=data%100/10; disp_dat4<=data%10; end always@(posedge clock) begin count <= count + 1; if (count==25'd25000) begin count<=0; a=~a; digt=(digt<<1); if(digt==0) digt=8'b0001; end end always @ (digt) begin case (digt) 4'b1000 : disp_dat=disp_dat1; 4'b0100 : disp_dat=disp_dat2; 4'b0010 : disp_dat=disp_dat3; 4'b0001 : disp_dat=disp_dat4; endcase end always @ (disp_dat) begin case (disp_dat) 4'd0 : seg = 8'hc0; //显示"0" 4'd1 : seg = 8'hf9; //显示"1" 4'd2 : seg = 8'ha4; //显示"2" 4'd3 : seg = 8'hb0; //显示"3" 4'd4 : seg = 8'h99; //显示"4" 4'd5 : seg = 8'h92; //显示"5" 4'd6 : seg = 8'h82; //显示"6" 4'd7 : seg = 8'hf8; //显示"7" 4'd8 : seg = 8'h80; //显示"8" 4'd9 : seg = 8'h90; //显示"9" 4'd10 : seg = 8'h7f; //显示"." 4'd11 : seg = 8'hff; //显示" " endcase end always@(posedge clock) begin ct <= ct + 1; if (ct==25'd250000) begin ct<=0; data=data+1; if(data==9999) data<=0; end end endmodule |
|
|
|
你好,我在quartus上编译了一下,有错误,怎么回事呢?我要在睿智开发板上显示0-999,希望能帮助! |
|
|
|
只有小组成员才能发言,加入小组>>
1355 浏览 0 评论
2118 浏览 0 评论
7997 浏览 0 评论
写了一个用DMA读取ADC数据的程序,记录下整个过程和一点心得
3272 浏览 0 评论
3556 浏览 0 评论
1319浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 12:04 , Processed in 0.407321 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号