EDA 秒表实验报告Word文件下载.docx
《EDA 秒表实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《EDA 秒表实验报告Word文件下载.docx(11页珍藏版)》请在冰点文库上搜索。
1.实现计时范围为到99-59-99的秒表,超过计时长度,有溢出则自动复位清零;
2.有开始/暂停功能,用于开始/结束计时操作;
3.用6个七段数码管显示计时数;
二.方案论证
方案结构框图如下
美女-
数字式秒表实际上是一个频率(1000HZ)进行计数的计数电路。
由于数字式秒表计数的需要,故需要在电路上加一个控制电路,该控制电路含清零、启动计时、暂停及继续计数等控制功能,同时1000HZ的时间信号必须做到准确稳定。
通常使用石英晶体振荡器电路来产生脉冲。
数字电子钟的总体方框图如图所示。
由图可见,数字秒表由以下几部分组成:
晶体振荡器和分频器组成的秒脉冲发生器;
防抖开关;
秒表控制开关;
一百进制秒、分计数器、六十进制秒计数器;
以及秒、分的译码显示部分等。
三.实验步骤
分模块设计电路,给出关键电路仿真图,电路分析说明等
1.电路分析
.显示译码驱动电路:
将计数器的计数结果(BCD码)通过译码器译成七段显示码并驱动LED数码管显示出来。
数码管显示电路
.控制电路:
根据题目要求,本电子秒表应具有两个按键,其中一个控制秒表的启/停,按一次启动计时,再按一次停止计时。
另一个按键控制清“0”,按下时系统清“0”。
复位电路
按键电路
.分频模块仿真
.控制模块仿真
.计时器仿真
2.源代码
modulewatch(clk,out_wei,out_duan,res,key2);
inputres;
//复位按键
inputclk;
inputkey2;
//控制开始和暂停按键
output[7:
0]out_wei;
//数码管位选
0]out_duan;
//数码管段选
reg[7:
0]out_wei=8'
b;
0]out_duan=8'
reg[4:
0]count;
//数码管位扫描时钟分频
reg[3:
0]count1;
//按键防抖
reg[14:
0]count2;
//主分频
0]sec_l=8'
0]sec_h=8'
0]fen_l=8'
0]fen_h=8'
0]msec_l=8'
0]msec_h=8'
0]s_1=0;
0]s_2=0;
0]s_3=0;
0]s_4=0;
0]s_5=0;
0]s_6=0;
regclk_out;
regpause;
always@(posedgeclk)begin
if(count2==20900)begin
count2<
=0;
clk_out<
=~clk_out;
end
elsecount2<
=count2+1;
always@(posedgeclk_out)begin
count<
=count+1'
b1;
case(count)
3:
begin
out_wei<
=8'
out_duan<
=msec_l;
6:
begin
=msec_h;
end
9:
=sec_l;
12:
=sec_h;
15:
=fen_l;
18:
=fen_h;
20:
count<
endcaseend
always@(negedgekey2)begin
pause<
=~pause;
end
always@(posedgeclk_out)begin
if(res==1)begin
s_1<
s_2<
s_3<
s_4<
s_5<
s_6<
else
if(count1==8)begin
count1<
if(s_6==9)begin
s_6<
if(s_5==9)begin
s_5<
if(s_1==9)begin
s_1<
if(s_2==5)begin
s_2<
if(s_3==9)begin
s_3<
if(s_4==5)
s_4<
elses_4<
=s_4+1;
endelses_3<
=s_3+1;
endelses_2<
=s_2+1;
endelses_1<
=s_1+1;
endelses_5<
=s_5+1;
endelses_6<
=s_6+1;
end
elseif(pause==1)begin
=count1+1;
endend
always@(s_1ors_2ors_3ors_4ors_5ors_6)begin
case(s_1)
0:
sec_l=8'
1:
2:
3:
4:
5:
7:
8:
default:
sec_l=1'
bx;
endcase
case(s_2)
sec_h=8'
sec_h=1'
endcase
case(s_3)
fen_l=8'
fen_l=1'
case(s_4)
fen_h=8'
fen_h=1'
case(s_6)
msec_l=8'
msec_l=1'
case(s_5)
msec_h=8'
msec_h=1'
endmodule
四.实验总结
五.
这次的计时秒表,其实跟100进制的计数器的原理是一样的,只是在时间脉冲上的速度加快,同时点亮6段数码管,让数码管计时依次点亮。
开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。
在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。