数字频率计课程设计实习报告.docx

上传人:b****5 文档编号:6718062 上传时间:2023-01-09 格式:DOCX 页数:18 大小:373.75KB
下载 相关 举报
数字频率计课程设计实习报告.docx_第1页
第1页 / 共18页
数字频率计课程设计实习报告.docx_第2页
第2页 / 共18页
数字频率计课程设计实习报告.docx_第3页
第3页 / 共18页
数字频率计课程设计实习报告.docx_第4页
第4页 / 共18页
数字频率计课程设计实习报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数字频率计课程设计实习报告.docx

《数字频率计课程设计实习报告.docx》由会员分享,可在线阅读,更多相关《数字频率计课程设计实习报告.docx(18页珍藏版)》请在冰豆网上搜索。

数字频率计课程设计实习报告.docx

数字频率计课程设计实习报告

数字频率计

设计报告书

一、设计要求

设计一个4位十进制数字式频率计,最大测量范围为10MHz。

量程分10kHz、100kHz、1MHz和10MHz四档(最大读数分别为9.999kHz、99.99kHz、999.9kHz、9999.kHz).

量程自动转换规则如下:

(1)当读数大于9999时,频率计处于超量程状态,此时显示器发出溢出指示,下一次测量时,量程自动增大一档,小数点位置随量程变更自动移位。

(2)可用手动方式使量程在每次测量开始时处于最低档。

显示方式如下:

(3)采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,将此显示结果保持到下一次计数结束。

显示时间应不小于1s。

(4)送入信号应是符合CMOS电路要求的脉冲波,对于小信号模拟信号应有放大整形电路。

 

二、方案设计

<1>整体思路

所谓频率就是周期性信号在单位时间(1s)内变化的次数。

若在一定时间间隔T内测得周期性信号的重复变化次数为N,则频率可表示为f=N/T(Hz)。

被测信号fx经放大整形电路变成计数电路所要求的脉冲信号,其频率与被测信号fx的频率相同。

基准电路提供标准时间基准信号clk,其高电平持续时间t1=1s,当1s信号来到时,闸门电路开通,被测脉冲信号通过闸门电路,成为计数电路的计数脉冲CP,计数电路开始计数,直到ls信号结束时闸门电路关闭,停止计数。

若在闸门时间1s内计数电路计得的脉冲个数为N,则被测信号频率f=NHz。

控制电路的作用有两个:

一是产生锁存脉冲CLK,使显示电路上的数字稳定;二是产生清“0”脉冲,使计数电路每次测量从零开始计数。

<2>时钟信号的选择

设计电路中时钟信号采用12M有源晶振产生,下面是12M有源晶振引脚图:

<3>整形电路的选择

整形电路中可以用运算放大器LM311组成电压选择器实现,以下是关于此芯片的资料:

引脚功能:

GROUND/GND接地

INPUT+   正向输入端

INPUT-   反向输入端

OUTPUT    输出端

BALANCE   平衡

BALANCE/STROBE平衡/选通

V+  电源正

V-  电源负

NC  空脚

LM311引脚图

 

由于LM311过于复杂且此次设计要求精度不高,整形电路可以改为如下电路:

这样产生稳定3.3V为幅值的信号送入EPM570中,对芯片起到保护作用。

<3>设计所用核心芯片资料及其原理

所用核心芯片为CPLD器件EPM570T100C5。

基本设计方法是借助集成开发软件平台quartusII6.0,用原理图、硬件描述语言(VerilogHDL)等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

EPM570引脚图:

 

在QuartusII6.0中设定的引脚分布如下:

 

<4>计数译码原理图:

<5>分频选择器原理图:

 

<6>数码管引脚图:

 

通过VerilogHDL语言设计程序,实现上述原理图功能,最终所测信号频率以四位共阴极数码管显示,单位为KHz。

 

三、调试

1、按照分频计、计数器、锁存器、选择器、译码器模块分别进行编程调试、仿真;

2、建立工程,把五个模块连接,调试。

针对错误模块进行修改,重新建立工程、连接模块;

3、将程序下载到EMP570中,利用数电实验板以及数码管进行调试;

4、将各种器件焊接到万用板上,连接电源进行实际调试。

程序代码

1.modulessss(b,base);

inputb;

outputregbase;

reg[23:

0]q;

always@(posedgeb)

if(q<5999999)

q<=q+1;

else

begin

base<=!

base;q<=0;

end

Endmodule

 

2

moduleFen6M(b,base);

inputb;

outputregbase;

reg[23:

0]q;

always@(posedgeb)

if(q<5999999)

q<=q+1;

else

begin

base<=!

base;q<=0;

end

Endmodule

 

3.

modulectrl(clk,Counter_EN,Latch_EN,Counter_Clr);

inputclk;

outputCounter_EN,Latch_EN,Counter_Clr;

regwire_1=0,wire_2=0;

always@(posedgeclk)

begin

wire_1<=!

wire_1;

end

always@(negedgeclk)

begin

wire_2<=wire_1;

end

assignCounter_EN=wire_1;

assignLatch_EN=(!

Counter_EN)&wire_2;

assignCounter_Clr=(!

Counter_EN)&(!

Latch_EN)&(!

wire_2);

endmodule

 

4.

modulecounter(clk,clr,en,q,ql);

inputclk,en,clr;

outputreg[3:

0]q;

outputql;

assignql=en&(q==9);

always@(posedgeclk,posedgeclr)

if(clr)q<=0;

else

if(en)

begin

if(q<9)q<=q+1;

elseq<=0;

end

endmodule

 

5.

modulelatcher(d1,d2,en,clk,q1,q2);

input[3:

0]d1,d2;

inputclk,en;

outputreg[3:

0]q1,q2;

always@(posedgeclk)

if(~en)

begin

q1<=d1;

q2<=d2;

end

endmodule

 

6.

moduleover_select(IN,SELECT,OUT);

input[3:

0]IN;

inputSELECT;

outputreg[3:

0]OUT;

always@(SELECT)

case(SELECT)

0:

OUT<=IN;

1:

OUT<=10;

endcase

endmodule

 

7.

moduledecode4to7(incode,outcode);

input[3:

0]incode;

output[6:

0]outcode;

reg[6:

0]outcode;

always@(incode)

begin

case(incode)

4'b0000:

outcode=7'b1111110;

4'b0001:

outcode=7'b0110000;

4'b0010:

outcode=7'b1101101;

4'b0011:

outcode=7'b1111001;

4'b0100:

outcode=7'b0110011;

4'b0101:

outcode=7'b1011011;

4'b0110:

outcode=7'b1011111;

4'b0111:

outcode=7'b1110000;

4'b1000:

outcode=7'b1111111;

4'b1001:

outcode=7'b1110011;

default:

outcode=7'b1000111;

endcase

end

Endmodule

 

8.

moduleHalf_freq(CLK_in,CLK_out);

inputCLK_in;

outputCLK_out;

regCLK_out;

always@(posedgeCLK_in)

begin

CLK_out=~CLK_out;

end

Endmodule

 

9.

modulefenpin(clk,fout10,fout100,fout1000);

inputclk;

outputfout10,fout100,fout1000;

reg[3:

0]q1,q2,q3;

assignfout10=(q1==9);

assignfout100=fout10&(q2==9);

assignfout1000=fout100&(q3==9);

always@(posedgeclk)

if(q1<9)q1<=q1+1;

elseq1<=0;

always@(negedgefout10)

if(q2<9)q2<=q2+1;

elseq2<=0;

always@(negedgefout100)

if(q3<9)q3<=q3+1;

elseq3<=0;

Endmodule

 

10.

moduledecode2to4(incode,outcode);

input[1:

0]incode;

outputreg[3:

0]outcode;

integeri;

always@(incode)

begin

case(incode)

2'b00:

outcode=4'b1000;

2'b01:

outcode=4'b0100;

2'b10:

outcode=4'b0010;

2'b11:

outcode=4'b0001;

endcase

end

endmodule

 

11.

moduledecode4to7(incode,outcode,in);

input[3:

0]incode;

inputin;

output[7:

0]outcode;

reg[7:

0]outcode;

always@(incode)

begin

case(incode)

4'b0000:

outcode[6:

0]=7'b1111110;

4'b0001:

outcode[6:

0]=7'b0110000;

4'b0010:

outcode[6:

0]=7'b1101101;

4'b0011:

outcode[6:

0]=7'b1111001;

4'b0100:

outcode[6:

0]=7'b0110011;

4'b0101:

outcode[6:

0]=7'b1011011;

4'b0110:

outcode[6:

0]=7'b1011111;

4'b0111:

outcode[6:

0]=7'b1110000;

4'b1000:

outcode[6:

0]=7'b1111111;

4'b1001:

outcode[6:

0]=7'b1110011;

default:

outcode[6:

0]=7'b1000111;

endcase

if(in==1)outcode[7]=1'b1;

elseoutcode[7]=1'b0;

end

endmodule

12.

modulemux4_1(a,b,c,d,s,out);

inputa,b,c,d;

input[1:

0]s;

outputregout;

always@(s)

case(s)

2'b00:

out=a;

2'b01:

out=b;

2'b10:

out=c;

2'b11:

out=d;

endcase

endmodule

 

13.

modulerenge_counter(clk,clr,q,ql);

inputclk,clr;

outputreg[2:

0]q;

outputql;

assignql=(q==4);

always@(posedgeclk,posedgeclr)

if(clr)

q<=0;

elseif(q<4)

q<=q+1;

elseq<=0;

endmodule

 

总体电路图

 

四、测试数据与实验结果

组号

准确数据

实验数据

1

2

3

4

5

6

7

 

 

五、心得体会

我们小组的实习题目是数字式频率计。

该项目主要是通过verilog语言编程后进行焊接完成。

我们在十七十八号两天对verilogHDL语言设计进行了学习与巩固,从十九号正式开始数字式频率计的设计,二十一号编程验收通过,开始处理外部信号的测试,即稳压工作。

之后进行PCB图的制作。

从二十四号开始焊接电路板,于二十七号完成所有工作。

在刚开始编程的时候,对于verilogHDL语言这种新知识要花一段时间来消化,所以在编写频率计的代码时遇到很多问题,但是经过我们查找资料和激烈的讨论后终于解决了问题。

通过自我学习以及其他方式我们了解到了计数器分频器译码器等模块的编译方式,学到了很多Verilog的有用的知识点。

从二十四号开始的焊接由于之前电子工艺实习时焊接过几百个点,所以最后的焊接工作还比较顺利。

同时经过这几天的焊接,在某种程度上又锻炼了我们的动手能力。

通过这十几天的学习与实践,我们完成了数字频率计的设计以及制作,我们才发现自己只学书本上的知识是远远不够的,还是要靠动手来提高自己的能力。

这次实习一方面提高了自己的学习与思考的能力,另一方面在动手能力方面也有了较大的提高,所以这次的电子工艺实习对我们来说是收获颇多的。

当然,我们在这一方面还有许多的不足之处,我们会在今后的学习生涯中继续努力争取继续提高。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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