18数码管扫描显示郑凯Word格式文档下载.docx

上传人:b****9 文档编号:13075862 上传时间:2022-10-04 格式:DOCX 页数:8 大小:426.41KB
下载 相关 举报
18数码管扫描显示郑凯Word格式文档下载.docx_第1页
第1页 / 共8页
18数码管扫描显示郑凯Word格式文档下载.docx_第2页
第2页 / 共8页
18数码管扫描显示郑凯Word格式文档下载.docx_第3页
第3页 / 共8页
18数码管扫描显示郑凯Word格式文档下载.docx_第4页
第4页 / 共8页
18数码管扫描显示郑凯Word格式文档下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

18数码管扫描显示郑凯Word格式文档下载.docx

《18数码管扫描显示郑凯Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《18数码管扫描显示郑凯Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。

18数码管扫描显示郑凯Word格式文档下载.docx

实验名称

数码管扫描显示

实验时间

实验地点

实验设备号

一、实验程序设计

分工如下:

每个人单独完成一个大实验。

第23个实验:

冯冠玺

第18,19个实验:

郑凯各模块示意图:

一.分频器模块

二.显示模块

三.计数器模块

总模块:

实验程序源代码:

moduleeighteen(inputStartStop,inputclk,input_clr,output[3:

0]AN,output[7:

0]Seg);

wire[30:

0]counter;

//时钟计数器

wirec0,c1,c2,c3;

//进位

wire[15:

0]Data;

//保存需要显示的数字,每4位一个数码管

//startstop:

自增与否

Fdivfdiv(clk,counter);

SHOWshow(Data,counter[19:

18],AN,Seg);

Adderad0(_clr,StartStop,counter[25],Data[3:

0],c0);

//第一个clk来临的时候,即counter[25]=1时,计数一次,又隔了一个counter[24],变为0,再一个变为1,再计数

Adderad1(_clr,StartStop,c0,Data[7:

4],c1);

Adderad2(_clr,StartStop,c1,Data[11:

8],c2);

Adderad3(_clr,StartStop,c2,Data[15:

12],c3);

endmodule

////分频模块

moduleFdiv(inputCP,output[30:

0]counter);

reg[30:

0]counter={30{1'

b0}};

always@(posedgeCP)

begin

counter<

=counter+1'

b1;

endendmodule

//显示模块

moduleSHOW(input[15:

0]data,input[1:

0]Bit_Sel,output[3:

reg[3:

0]AN;

//板子上4个数码管的编号

reg[7:

0]Seg;

0]code[0:

15]={8'

b00000011, //二维数组记录数码管数字显示码

8'

b10011111,

b00100101,

b00001101,

b10011001,

b01001001,

b01000001,

b00011111,

b00000001,

b00001001,

b00010001,

b11000001,

b01100011,

b10000101,

b01100001,

b01110001};

always@(Bit_Sel)//Bit_Sel控制每个数码管的亮起时间

case(Bit_Sel)

0:

AN<

=4'

b0111;

//data保存需要显示的数字,每4位一个数码管Seg<

=code[data[15:

12]];

//高位数码管

end1:

b1011;

//第二个数码管亮起Seg<

=code[data[11:

8]];

end2:

b1101;

Seg<

=code[data[7:

4]];

end

3:

b1110;

=code[data[3:

0]];

endcase

二、仿真波形

//计数模块

moduleAdder(input_CLR,inputstartstop,inputCLK,outputreg[3:

0]Q,outputregCO);

always@(negedge_CLRorposedgeCLK)

if(_CLR==0)

CO<

=1'

b0;

Q<

b0000;

end

elseif(startstop)begin

if(Q==4'

b1001)

else

=Q+1'

三、电路图

四、引脚配置(约束文件)

NET"

AN[3]"

LOC=P17;

NET"

AN[2]"

LOC=P18;

AN[1]"

LOC=N15;

AN[0]"

LOC=N16;

Seg[7]"

LOC=T17;

Seg[6]"

LOC=T18;

Seg[5]"

LOC=U17;

Seg[4]"

LOC=U18;

Seg[3]"

LOC=M14;

Seg[2]"

LOC=N14;

Seg[0]"

LOC=M13;

Seg[1]"

LOC=L14;

_clr"

LOC=T5;

clk"

LOC=V10;

StartStop"

LOC=V8;

五、思考与探索

1.一开始并不知道为什么要设counter这个变量,而且不懂显示模块里为什么要用到

counter[19:

18],后来仔细一步步根据clk的传入推导得知counter[19:

18]是保证每个数码的刷新显示时间,以确保人眼能够同时看到4个数码管同时亮起。

2.停止计数了;

4个点均亮;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1