- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模可变计数器设计
实验目的
进一步熟悉实验装置和QuartusⅡ软件的使用;
进一步熟悉和掌握EDA设计流程;
学习简单组合、时序电路的EDA设计;
学习计数器中二进制码到BCD码的转换技巧;
学习实验装置上数码管的输出方法。
设计要求
完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下:
设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数;
计数结果用三位数码管十进制显示。
主要仪器设备
微机 1台
QuartusII集成开发软件 1套
EDA实验装置 1套
实验步骤
主要有三个模块
1:一个模20和模119的计数器
2:数码管的显示
3:BCD的调整
源程序:
module count (clk,m,en,rst,a,sel,SG,d);
input clk,m,en,rst;
output [7:0] SG;
output [2:0] sel;
output a;
(* synthesis, keep *) reg clk1;
(* synthesis, keep *) wire [3:0] gw,sw,bw;
/*(* synthesis, keep *) */reg [3:0]a;
reg [11:0] q;
reg [11:0] model;
reg [7:0] cnt,SG;
reg [2:0] sel;
reg [0:0]d;
output [0:0]d;
always @(posedge clk)
begin cnt=cnt+1;
if (cnt==200) begin clk1=1b1; cnt=0; end
else clk1=1b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率
if (sel2) sel=sel+1; else sel=0; end //sel为数码管选择
always @(sel) begin
case (sel)
0: a=bw; //0数码管为百位
1: a=sw; //1数码管为十位
2: a=gw; //2数码管为个位
default: a=0;
endcase
case (a)
0:SG=8 1:SG=8
2:SG=8 3:SG=8
4:SG=8 5:SG=8
6:SG=8 7:SG=8
8:SG=8 9:SG=8 //8段译码值
default: SG=8
endcase end
always @(m)
if (m) model=12b000000100000; //模值20
else model=12b000100011001; //模值119
assign gw=q[3:0];
assign sw=q[7:4];
assign bw=q[11:8];
always @(posedge clk1,negedge rst)
begin
if (!rst) q=0;
else if (en)
begin
if (qmodel)
begin
if (gw==9) begin q=q+7; if (sw==9) q=q+96; end //BCD调整
else q=q+1;
end
else q=0;
end
end
al
文档评论(0)