简易数字跑表设计5篇

时间:2019-05-13 00:44:30下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《简易数字跑表设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《简易数字跑表设计》。

第一篇:简易数字跑表设计

西安郵電大学

数字控制系统课程设计报告书

院(系)名称 : 学生姓名 : 专业名称 : 班

级 : 时

自 动 化 学 院

自动化 自动1103 间 : 2014年9月1日 至2014年9月12日

乘法器设计

一、设计要求:

计时精度10ms,计时范围59.99秒。

(1)对单人计时,能实现暂停、显示及清零功能,在数码管上实时显示,设置启动/暂停、清零按键;

(2)对多个人同时计时,在数码管上实时显示,并能回显出六个时间。可控制显示,设置清零、取时按键;

(3)采用状态机设计;

(4)百分秒在数码管上实时显示,秒利用多个数码管显示BCD值。

二、设计过程: 1.方案设计:

1)画状态图:

按键

状态

输出

复位:00

开始:S0

清 零:z=0;

启/停:01

计数:S1

不清零:z=1;

存/回显:10

暂停:S2

存/回显:S3

2)写程序:

·在一个module模块里,有多个always块;

·有分频、计数、存储、输出等模块;

·测试模块的输入输出与源程序的输入输出相反; 2.系统仿真:

Verilog仿真所需仿真环境:modelsim 3.管脚配置:

1.四、软件设计: 源程序

module paobiao(clk,rst,pause,save,mg,md,bg,bd);//秒高,秒低,百分秒高,百分秒低

input clk,rst,pause,save;

output reg [3:0] mg,md,bg,bd;reg [15:0] zd,zz,zg;//中间变量 reg [17:0] count1;reg clk1;//100ms reg pause_temp,save_temp;//取上升沿 reg [13:0] count2,reg0,reg1,reg2,reg3,reg4,reg5;reg [2:0] count3;// reg [1:0] state,next_state;reg cn1;parameter S0=2'b00,S1=2'b01,S2=2'b11;//分频

always @(posedge clk or negedge rst)

begin if(!rst)count1<=0;

else if(count1==200000)count1<=0;//200000

else count1<=count1+1;

end

always @(posedge clk)begin if(!rst)clk1<=0;else if(count1==99999)clk1<=~clk1;//99999 else clk1<=clk1;

end //总计时

always @(negedge clk1 or negedge rst)//clk1 begin if(!rst)count2<=0;

else if(state==S1)count2<=count2+1;

// else if(state==S2)count2<=count2;

else count2<=count2;end

//存储个数计数

always @(negedge rst or negedge save)begin if(!rst)

count3<=0;

else if(next_state==S1)

count3<=count3+1;

else if(next_state==S2)

count3<=count3-1;

else count3<=count3;

end

//毫秒低位显示结果

always @(negedge rst or posedge clk)begin

if(!rst)

bd<=0;

else if(state==S1)bd<=count2%10;

else if(state==S2)

begin case(count3)

3'b000: bd<=reg0%10;

3'b001: bd<=reg1%10;

3'b010: bd<=reg2%10;

3'b011: bd<=reg3%10;

3'b100: bd<=reg4%10;

3'b101: bd<=reg5%10;

default:

bd<=reg0%10;

endcase

end

else

bd<=bd;

end

//毫秒高位显示结果

always @(negedge rst or posedge clk)begin

if(!rst)

bg<=0;

else if(state==S1)

bg<=(count2/10)%10;

else if(state==S2)

begin case(count3)

3'b000: bg<=(reg0/10)%10;

3'b001: bg<=(reg1/10)%10;

3'b010: bg<=(reg2/10)%10;

3'b011: bg<=(reg3/10)%10;

3'b100: bg<=(reg4/10)%10;

3'b101: bg<=(reg5/10)%10;

default:

bg<=(reg0/10)%10;

endcase

end

else

bg<=bg;

end

//秒位显示结果

always @(negedge rst or posedge clk)begin

if(!rst)

md<=0;

else if(state==S1)md<=(count2/100)%10;

else if(state==S2)

begin

case(count3)

3'b000: md<=(reg0/100)%10;

3'b001: md<=(reg1/100)%10;

3'b010: md<=(reg2/100)%10;

3'b011: md<=(reg3/100)%10;

3'b100: md<=(reg4/100)%10;

3'b101: md<=(reg5/100)%10;

default:

md<=(reg0/100)%10;

endcase end

else

md<=md;end

//十秒位显示结果

always @(negedge rst or posedge clk)

begin

if(!rst)

mg<=0;

else if(state==S1)mg<=(count2/1000)%10;

else if(state==S2)

begin

case(count3)

3'b000: mg<=(reg0/100)%10;

3'b001: mg<=(reg1/100)%10;

3'b010: mg<=(reg2/100)%10;

3'b011: mg<=(reg3/100)%10;

3'b100: mg<=(reg4/100)%10;

3'b101: mg<=(reg5/100)%10;

default:

mg<=(reg0/100)%10;

endcase

end

else

mg<=mg;

end

always @(negedge rst or posedge clk)//定义当前状态

begin if(!rst)state<=S0;//异步复位,S0为初始状态

else

state<=next_state;

end

//状态转移

always @(state or pause or

pause_temp)begin

case(state)

S0:begin if(pause==0&&pause_temp==1)next_state<=S1;

else next_state<=S0;

end

S1:begin if(pause==0&&pause_temp==1)next_state<=S2;

else next_state<=S1;end

S2:begin if(pause==0&&pause_temp==1)next_state<=S1;

else next_state<=S2;end

default:next_state<=S0;

endcase

end

//存数

always@(negedge rst or negedge save)begin if(!rst)begin

reg0<=0;reg1<=0;reg2<=0;reg3<=0;reg4<=0;reg5<=0;end

else

begin if(count3==0)reg0<=count2;

else if(count3==1)reg1<=count2;

else if(count3==2)reg2<=count2;

else if(count3==3)reg3<=count2;

else if(count3==4)reg4<=count2;

else if(count3==5)reg5<=count2;

else begin reg0<=0;reg1<=0;reg2<=0;

reg3<=0;reg4<=0;reg5<=0;end

end end

//取启停键上升沿 always @(posedge clk)begin if(!rst)pause_temp<=0;

else

pause_temp<=pause;

end

//取保存翻看上升沿

always @(posedge clk)begin if(!rst)save_temp<=0;

else

save_temp<=save;end

endmodule

2.测试程序

module paobiao_tp;reg clk,rst,pause,save;wire[3:0] mg,md,bg,bd;parameter DELY=10;paobiao u1(clk,rst,pause,save,mg,md,bg,bd);always #(DELY/2)

clk=~clk;initial

begin clk=0;pause=0;save=0;rst=0;

#DELY rst=1;save=0;pause=0;

#DELY pause=1;

#DELY pause=0;

#DELY save=1;end endmodule

五、实验结果 1.仿真图像

2.硬件电路显示

六、个人完成工作及心得体会

我们组设计的是数字跑表,我负责画状态图和系统程序和仿真。画状态图时由于对状态机理解不到位,画的状态图有点问题,后来经老师指导改正了;我负责写仿真测试程序,这需要对源程序的输入输出很清晰,对其暂停、启停、存储、回显的掌握;再就是系统仿真,先在modelsim 上仿真,出来波形后再在开发板上仿真,刚开始程序分频、计数输出都有问题,后来逐项排除错误代码,仿真才出来。

课设过程中,我学到了很多关于Verilog的知识,比如写程序要注意的分频、计数、输入输出等问题,仿真时要注意时间长短的选择、进制间的转换等等,还有最后往开发板下载程序时注意的问题等。认识比较深刻的是:一个小组,只有相互帮助、团结努力,才能很好地完成任务。

第二篇:数字电路EDA课程设计数字跑表

EDA课程设计报告书

题目: 数字跑表

姓名: 班级: 学号: 成绩:

一、设计题目及要求 设计题目:数字跑表

要求:1 具有暂停,启动功能。

具有重新开始功能。用六个数码管分别显示百分秒,秒和分钟。

二、设计过程及内容

拿到题目后,我在图书馆进行了相关书籍的查阅,首先明确了题目中设计项目要实现的功能,再进一步确定实现其功能的组成部分和使用器件,对于本次设计的总体思路,首先是设计一个控制模块,可以使跑表具有启动、暂停及重新开始的功能;然后,利用一个分频模块即15进制计数器得到100HZ的时钟脉冲,接入到一个100*60*60三个计数器的模块中,完成对时间的计时工作和对选时模块的输出工作,使选时模块得到对应的时间,其次将选时模块与显示模块连接,使数码管显示选中的当前时间,从而完成了这次课程设计的设计工作,进入到实现过程中去。

根据课程设计要求将设计分为5个模块:

1、控制模块,使跑表具有启动、暂停及重新开始的功能;

2、分频模块,用于得到频率为100HZ的时钟脉冲;

3、计时模块,进行时间的计时,同时将当前时间输出给选时模块;

4、选时模块,从计时器得到当前时间输出给显示模块;

5、显示模块,进行时间的显示。总图如下: 第一个模块:控制器模块

与门可控制时钟信号的输出与否,当跑表为START状态时CLK端为高电平,QA为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,QA为0,时钟信号不输出,从而实现开始和暂停的功能。REST是清零按钮,REST接到控制模块和总计时器模块的清零端,当REST为高电平时,控制模块和总计数器模块清零,跑表重新开始工作。

第二个模块:分频器模块

将74161接成15进制计数器,将1465HZ的时钟频率转换成近似于100HZ的时钟信号即所需的输入时钟信号,从而实现分频功能。将得到的时钟信号输入到总计数器模块中去。第三个模块:计时模块

计时模块

本模块由两个60进制计数器和一个100进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。60进制计数器及100进制计数器均采用两个74LS160,采用整体置数方式接成。从60进制计数器和100进制计数器这三个输出端分别印出八个端口(秒、分、时的个位及十位分别由四个二进制代码表示),将当前时间编码传送给选时模块,实现时间的选择和显示。(秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)

100进制计数器

60进制计数器

第四个模块:选时模块

本模块由四个八选一数据选择器74LS151和地址选择器74LS161构成。

地址选择器74LS161接入一个1465 HZ的时钟信号,使能端和清零端接高电平,使其循环工作,产生一组循环地址码A、B、C,接到数码管的地址端,使其循环显示数字。同时,地址选择器74LS161产生的一组循环地址码接入到四个八选一数据选择器74LS151上,使其对地址相同的一组数据进行选择,产生四个二进制数A0,A1,A2,A3,即为数码管所要显示的数字的编码。

第一个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的最低位(S0A,S1A, M0A, M1A, H0A, H1A), 第二个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的次低位(S0B,S1B,M0B,M1B,H0B,H1B), 第三个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的第二位(S0C,S1C,M0C,M1C,H0C,H1C), 第四个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的第一位(S0D,S1D,M0D,M1D,H0D,H1D),通过这四个八位二进制数比较器74LS151选出同一组数(秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)作为输出A0,A1,A2,A3,接到显示模块输入端。

选时模块

第五个模块:显示模块

本模块采用BCD—七段显示译码器7448对实验板上数码管进行驱动。由选时模块输出的显示数字编码A0,A1,A2,A3接至输入端A,B,C,D,使输出端产生七位译码连接到实验箱公共数据输入端ABCDEDG,从而进行数据的显示。

显示模块

三、设计结论

两周的课程设计很快就结束了,虽然时间很短,但是收获颇丰。通过这次课程设计,我学到了许多关于EDA的知识,认识到了EDA的强大功能,更重要的是增强了我的实践动手能力,使我深刻地认识到仅仅学习课本上的知识是远远不够的,必须要多多动手,多多实践,才能真正理解并掌握所学的知识,达到学以致用的目的。同时我也深深地感受到严谨的态度对于科学研究的重要性。由于在设计的过程中,一点点的马虎都可能造成整个系统的瘫痪,所以每一个细节都要认真思考,认真操作,不能有丝 百分的大意。这使我认识到要想做一个科研工作者是多么的不易!自己身上的缺点还有很多,要靠以后艰苦的努力来克服!

这次的EDA课程设计给了我一次非常重要也非常难得的实践机会,使我可以将平时课本上学习的理论知识应用于实际操作。设计的过程是十分艰苦的,由于从未接触过类似的领域,所以刚开始的时候一片茫然,不知道该干些什么。随着研究的逐渐深入,自己渐渐的摸出头绪,掌握了一些规律和方法,设计的成果也逐步成型,最终按照要求完成了设计。在实际操作的过程中,碰到了许多的困难,但最终在老师的耐心指导和同学的热情帮助下,按时完成了任务。在此对老师和同学们表示衷心的感谢!

最后感谢老师给与我这次宝贵的实践机会!

第三篇:燕山大学EDA课程设计数字跑表

一、设计题目及要求 设计题目:数字跑表

要求:1 具有暂停,启动功能;

具有重新开始功能; 用六个数码管分别显示百分秒,秒和分钟。

二、设计过程及内容 总体设计:

第一,对于要实现的暂停、启动和重新开始功能,需要有一个控制模块完成相关控制。第二由题意可知需要一个分频模块,将实验箱提供的频率转换为100HZ即数字跑表百分秒的频率。第三是计时模块,完成跑表的百分秒、秒和分钟的计时功能。第四由于实验箱提供的数码显示是扫描显示,这就需要一个选时模块。第五部分则是显示模块。详细设计过程:

根据要求,将设计分成五个模块:

1、控制模块:使跑表具有启动、暂停及重新开始的功能;

2、分频模块:将实验箱所提供的频率转换为设计题目所需要的100HZ的时钟脉冲;

3、计时模块:进行百分秒、秒、分的计时,并且将当前时间输出给选时模块;

4、选时模块:从计时器得到当前时间输出给显示模块;

5、显示模块:通过数码管显示时间。

总图如下:

仿真波形:

第一个模块:控制模块

控制模块主要运用了两个D触发器,输入到触发器的时钟信号CLK1频率为2.86Hz,对电路起到了防抖的功能。

START/STOP为启动暂停按钮,当跑表为START状态时CLK端为高电平,Q为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,Q为0,时钟信号不输出,从而实现开始和暂停的功能。与门可控制时钟信号是否被输出到下一级。

RESET端为全局清零按钮,接到控制模块和计时模块的清零端,负责将计数器清零。当RESET为低电平时,控制模块和总计数器模块清零,跑表重新开始工作。电路图如下:

仿真波形:

第二个模块:分频模块

为了将实验箱提供的1465HZ转换成实验需要的100HZ,我将74161接成15进制计数器,实现分频的功能,转换为100HZ的近似时钟信号。然后将输出的时钟接入到计时模块。电路图如下: 3

仿真波形:

第三个模块:计时模块

计时模块由一个100进制计数器和两个60进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。100进制计数器和60进制计数器均采用两个74160,100进制采用并行进位方式,60进制采用整体置数方式。从100进制计数器和60进制计数器这三个输出端分别接出八个端口(百分秒、秒、分的个位及十位分别由四个二进制代码表示),将当前时间代码输送给选时模块,以实现时间的选择和显示。(百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D.)电路图如下:

仿真波形:

100进制计数器(count100): 仿真波形:

60进制计数器(count60):

仿真波形:

第四个模块:选时模块

选时模块由四个八选一数据选择器74LS151和一个地址选择器74LS161构成。

地址选择器74LS161接入一个1465 HZ的时钟信号,使能端和清零端接高电平,使其循环工作,产生的一组循环地址码接入到四个八选一数据选择器74LS151上,使其对地址相同的一组数据进行选择,产生四个二进制数CA,CB,CC,CD,即为数码管所要显示的数字的编码。同时,地址选择器74LS161产生一组循环地址码a、b、c,接到数码管的地址端,使其循环显示数字。

第一个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的最低位(H0A, H1A ,S0A,S1A, M0A, M1A), 第二个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的次低位(H0B,H1B ,S0B,S1B,M0B,M1B), 第三个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的第二位(H0C,H1C ,S0C,S1C,M0C,M1C), 第四个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的第一位(H0D,H1D ,S0D,S1D,M0D,M1D),通过这四个八位二进制数比较器74LS151选出同一组数(百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D)作为输出CA,CB,CC,CD,接到显示模块输入端。电路图如下:

仿真波形:

第五个模块:显示模块

显示模块采用BCD—七段显示译码器7448对实验板上数码管进行驱 动。由选时模块输出的显示数字编码CA,CB,CC,CD接至输入端A,B,C,D,使输出端产生七位译码连接到实验箱公共数据输入端ABCDEDG,从而显示出数据。电路图如下:

仿真波形:

三、设计结论

两周的课程设计很快就结束了,虽然时间很短,但是收获颇丰。通过这次课程设计,我学到了许多关于EDA的知识,学习到了很多EDA的实用功能,更重要的是锻炼了我的实践动手能力,使我深刻地认识到仅仅学习课本上的知识是远远不够的,要多思考,多实践,才能真正把学到的知识用到实际中,而且我也深刻认识到通信专业在各个领域是多么有用武之地,更加使我有了学习深造的动力。

在设计的过程中遇到诸多问题,一个接一个,总结下来还是软件没有学深刻,出了问题也不知道如何排查,波形图一直找不到自己想看到的,后来经过问同学和自己的总结才知道这个仿真的时间要足够长,才能看到自己所需要的部分。让我知道做一件事之前的准备工作是多么重要,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。遇到问题才去翻书查资料,这些都是我以后要改进的地方。

这次的EDA课程设计给了我一次非常重要也非常难得的实践机会,使我可以将平时课本上学习的理论知识应用于实际操作。设计过程多于我这个专业知识还不牢固的很困难,先前两天看了课本学习了软件,每个子模块和波形图出来的都比较顺利,但当做到总图的时候遇到了很多困难,经过询问老师后也都解决了。实验箱的部分比较顺利,由于粗心连错了线,频率也没选对,总之过程很艰难,但最终还是做出来了。最后感谢老师给与我这次宝贵的实践机会!

第四篇:简易数字存储示波器设计

合肥工业大学 课程设计实验报告

题目:简易数字存储示波器设计 学院: 专业: 姓名: 学号: 指导老师:

目录

一、概述---------------第二页

1.课程设计题目及要求---------------

2.课程设计目的-----------------------

3.背景介绍-------------------------

二、设计方案与电路实现第四页

1.工作原理----------------------------

2.利用Quartus软件,编写.v文件-------

3.modelsim及Quartus软件仿真,描述电路性能的波形等参数

4.模拟仿真、结论------------------

三、心得体会--------第九页

四、参考文献--------------第九页

一、概述

(1)课程设计的题目及要求

1.课程设计的题目:简易数字存储示波器设计.2.课程设计的要求:

a.利用 FPGA 实现数字存储示波器.b.由 FPGA 控制 ADC 对一路模拟信号采样, 采样数据暂存于 RAM 中.c.由 FPGA 将 RAM 中的数据读出, 并控制 DAC 输出给示波器显示.d.由一个按键模拟触发信号.e.选用 GW48-PK2 系统, 编写程序在 FPGA 上实现并加以验证.(2)课程设计目的

1.通过本次课程设计掌握Quartusm及modelsim软件的运用 2.掌握数字信号处理的原理方法与实现的过程

3.通过本次课程设计学习解决问题的思路与方法,学习查找资料和运用所学知识解决实际问题的能力 4.学习与别人沟通和合作的能力 5.学会独立思考

(3)背景介绍

数字存储示波器有别于一般的模拟示波器,它是将采集到的模拟电压信号转换为数字信号,由内部微机进行分析、处理、存储、显示或打印等操作。这类示波器通常具有程控和遥控能力,通过GPIB接口还可将数据传输到计算机等外部设备进行分析处理。

数字存储示波器的基本原理如图所示,其工作过程一般分为存储和显示两个阶段。在存储阶段,首先对被测模拟信号进行采样和量化,经 A/D转换器转换成数字信号后,依次存入RAM中,当采样频率足够高时,就可以实现信号的不失真存储。当需要观察这些信息时,只要以合适的频率把这些信息从存储器RAM中按原顺序取出,经D/A转换和LPE滤波后送至示波器就可以观察的还原后的波形。

普通模拟示波器 CRT 上的 P31 荧光物质的余辉时间小于 1ms。在有些情况下,使用 P7 荧光物质的 CRT 能给出大约 300ms 的余辉时间。只要有信号照射荧光物质,CRT 就将不断显示信号波形。而当信号去掉以后使用 P31 材料的 CRT 上的扫迹迅速变暗,而使用 P7 材料的 CRT 上的扫迹停留时间稍长一些。

那么,如果信号在一秒钟内只有几次,或者信号的周期仅为数秒,甚至信号只猝发一次,那又将会怎么样呢?在这种情况下,使用我们上面介绍过的模拟示波器几乎乃至于完全不能观察到这些信号。

所谓数字存储就是在示波器中以数字编码的形式来贮存信号。当信号进入数字存储示波器,或称 DSO 以后,在信号到达CRT 的偏转电路之前(图1),示波器将按一定的时间间隔对信号电压进行采样。然后用一个模/数变换器(ADC)对这些采样值进行变换从而生成代表每一个采样电压的二进制字。这个过程称为数字化。

获得的二进制数值贮存在存储器中。对输入信号进行采样的速率称为采样速率。采样速率由采样时钟控制。对于一般使用情况来说,采样速率的范围从每秒 20 兆次(20MS/s)到 200MS/s。存储器中贮存的数据用来在示波器的屏幕上重建信号波形。所以,在DSO中的输入信号接头和示波器 CRT 之间的电路不只是仅有模拟电路。输入信号的波形在 CRT 上获得显示之前先要存贮到存储器中,我们在示波器屏幕上看到的波形总是由所采集到数据重建的波形,而不是输入连接端上所加信号的直接波形显示。

二、设计方案与电路实现

1.工作原理

数字存储示波器与模拟示波器不同在于信号进入示波器后立刻通过高速A/D转换器将模拟信号前端快速采样,存储其数字化信号。并利用数字信号处理技术对所存储的数据进行实时快速处理,得到信号的波形及其参数,并由示波器显示,从而实现模拟示波器功能,而且测量精度高。还可存储信号,因而,数字存储示波器可以存储和调用显示特定时刻信号。

计数器模块采用和A/D同步时钟,通过写使能wren控制A/D采样,当wren=1时,处于与采样允许阶段,每一个时钟周期A/D采集一次数据,每经过一个采样周期地址计数器加一,产生一次地址锁存,并把数据锁存到RAM中。

2.A/D结构 ①内含S/H;

②为半闪烁结构(flash),两个4bit并行A/D组合为8 bit,转换速率20 Ms/s; ③输入信号 +(0– 2)V; ④基准电压 + 2V 等等 TLC5510内部电路结构

3.利用quartus软件,编写.v文件(1)顶层模块

module reserve(clk, key1, trag, adin, dout);

input[7:0] adin;input clk,key1;

output[9:0] trag;output[9:0] dout;

wire[9:0] trag;wire[9:0] dout;wire[9:0] Q1;wire[7:0] md;wire[7:0] din;

reg[9:0] t;

assign dout={md[7:0],2'b00};assign trag=Q1;

count count(.q1(Q1),.clock(clk));ad ad(.ADIN(adin),.DIN(din),.CLK(clk));

dpram dpram(.data(din),.wren(key1),.q(md),.address(Q1),.inclock(clk));endmodule

(2)计数器模块

module count(clock,q1);input clock; output[9:0] q1;

reg[9:0] t;

always @(posedge clock)begin t<=t+1;end

assign q1=t;endmodule

(3)A/D模块

module ad(ADIN,CLK,DIN);input CLK;input[7:0] ADIN;output[7:0] DIN;

reg[7:0] m;

always@(posedge CLK)begin m<=ADIN;end

assign DIN=m;endmodule

描述电路

4.实验结论

经过在modelsim上仿真得到的波形满足预先设计的功能,在quartus上编译的结果也是正确的。

三.心得体会

这次的实验让我收获颇多,因为这次的课程设计需要用到单片机的知识,verilog的知识,还用到了数字集成电路的知识,是我对于本专业的认识有了更深的了解,也是我明白了现在市面上的电子产品大体的设计步骤。不但如此,我还通过这次试验掌握了示波器的使用方法,协调了知识综合应用的能力。这次试验中还用到了数模模数芯片,让我对其产生好奇,因为这就相当于电子世界里面的人类的听觉。并且通过这次实验还对于quartus和modelsim软件仿真有了一些认识,知道了编程序不要怕从哪里下手,一定要多练,写的多了,自然而然就会了,这次实验让我对于vrilog语言结构有更多了认识,并且我也熟悉了老师们经常在课堂上说的FPGA,而且还锻炼和组员们的协调能力,合作能力,受益匪浅。

四.参考文献

《EDA技术实用教程---VHDL》潘松、黄继业编著;

《Verilog HDL高级数字设计》出版社: 电子工业出版社;第1版(2010年4月1日;

《Verilog数字系统设计教程》夏宇闻;

《数字信号处理的FPGA实现》(第2版)刘凌译;

第五篇:简易数字显示频率计的设计

简易数字显示频率计的设计

摘 要:本文应用NE555构成时钟电路,7809构成稳压电源电路,CD4017构成控制电路,CD40110和数码管组成计数锁存译码显示电路,实现可测量1HZ-99HZ这个频段的数字频率计数器。

关键词:脉冲;频率;计数;控制 1 引 言

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量显得很重要。测量频率的方法有很多,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。2 电子计数器测频方法

电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率、转速、声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器。3 简易数字频率计电路组成框图

本设计主要运用数字电路的知识,由NE555构成时钟电路,7809构成稳压电源电路,CD4017构成控制电路,CD40110和数码管组成计数锁存译码显示电路。从单元电路的功能进行划分,该频率计由四大模块组成,分别是电源电路、时钟电路(闸门)、计数译码显示电路、控制电路(被测信号输入电路、锁存及清零)。电路结构如图1所示。

图1 简易数字频率计电路组成框图 单元模块电路设计 4.1电源电路

在电子电路中,通常都需要电压稳定的直流电源供电。小功率的稳压电源的组成如图2所示,它由电源变压器、整流电路、滤波电路和稳压电路四部分组成。

图2 电源电路

220V市电经220V/12V变压器T降压,二极管桥式整流电路整流,1000uF电容滤波后送人7809的输入端(1脚)。7809的第二脚接地,第三脚输出稳压的直流电压,C7、C8是为了进一步改变输出电压的纹波。红色发光管LED指示电源的工作状态,R9为LED的限流电阻,取值为5.1K。4.2 时钟电路

电路如图3所示,由NE555构成的多谐振电路,3脚输出振荡脉冲,其中LED为黄色发光二极管,R1为5.1K,R2为1K,R3为10K,C1,C5为100UF,C4为0.01UF,C2为1000PF,RPE选取10K。

图3 时钟电路

4.3计数、显示电路

电路中,CD40110是集十进制加减计数、译码、锁存、驱动于一体的集成电路。CPU为加法输入端,当有脉冲输入时,计数器做加法计数;CPD为减法输入端,当有脉冲输入时,计数器做减法计数。QCO为进位输出端,计数器做加法时,每计满10数后其输出一个脉冲;QBO为借位输出端,计数器做减法时,每计满10数后其输出一个脉冲。该频率计电路使用CPU输入端,在第10个脉冲信号输入时,QCO输出的进位脉冲作为计数脉冲送到高位计数器的CPU输入端。5脚R端为计数器的清零端,当此脚加上高电平信号时,计数器的输出状态为零,并使相应的数码管显示0。4.4 被测信号输入电路

NE555等构成频率为1Hz的振荡信号,由其3脚输出经非门反相后,作为控制信号加到CD4017的CP输入端,产生时序控制信号,从而实现1s内的脉冲计数(即频率检测)、数值保持及自动清零。从图4中可以看出,当非门输出端输出第一个高电平脉冲时,这个脉冲使得CD4017的Q1输出端由低电平变为高电平;在CD4017的CP输入端输入的第二个脉冲信号到来之前,Q1将一直保持高电平状态。

在Q1输出高电平时,由CD4011组成的“与”门控制电路打开,从USB与非门的另一端输入的被测脉冲信号就可以通过“与”门控制电路,进入到CD40110的CPu输入端,进行脉冲计数。通过调节电位器调整NE555的振荡频率,使得Q1输出高电平的持续时间为1s,那么在1s内的计数累计的计数脉冲个数,即为被测信号的频率。4.5频率显示电路

当USA与非门输出第二个脉冲信号时,CD4017的Q1输出端由高电平变为低电平,Q2输出端由低电平变为高电平。Q1输出端的低电平使“与”门控制电路关闭,此时由F2的另一脚输入的被测信号就不能通过,计数器不工作。因此,当第二个脉冲出现时,数显计数器停止计数。在第三个脉冲到来之前,Q2输入端保持高电平,此高电平持续时间(1s)即为数值保持时间,可在1s内读取被测信号的频率显示值。4.6计数及显示清零电路

当第三个脉冲来到时,Q2端变为低电平,Q3端输出高电平,但是由于Q3端与CD4017清零端Cr相连接,这个高电平信号使CD4017清零,Q1,Q2,Q3端全变为低电平。CD4017的Q3输出端出现的瞬时高电平信号通过二极管加到CD40110的清零端R,使计数器及数显清零,以便下次重新计数。

图4 频率计整机电路原理图 结论

从电路的工作原理可以以看出,本电路介绍的频率计的检测周期为3s,每检测一次,计数器累计时间1s,数据保持1s,清零后又保持1s,然后又开始计数、保持、清零的循环。如果感到数值保持时间过短,读数取值不方便时,可将CD4017的Q3输出端与Cr断开,使Q4与Cr清零端相连,这样数据保持时间就变为2s。

本简易数字显示频率计的设计目的是为了数字电路教学使用,使学生能够灵活使用各类常见集成电路,掌握较复杂电路的设计步骤,在频率测量上难免有很多缺陷。

参考文献

【1】王港元.电工电子实践指导.江西科学技术出版社,2005;【2】闫石.数字电子技术基础.高等教育出版社,2003;【2】王雅芳.protel99se电路设计与制版入门与提高.机械工业出版社,2011;The design of the simple frequency meter with digital display Abstracts: In this paper,the digital frequency consists of NE555 clock circuit, the 7809 regulated power supply circuit, the CD4017 control circuit, the CD40110 counting latch decoding circuit and the digital tube display circuit.It can measure the frequency of 1HZ-99HZ.Key words: Pulse, frequency ,counting, control

下载简易数字跑表设计5篇word格式文档
下载简易数字跑表设计5篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    “数字黑洞”及其简易证明

    “数字黑洞”及其简易证明安徽省芜湖县大闸中学林闯241121近年来,在各级各类数学竞赛或数学考试中屡屡出现一类所谓的“数字黑洞”问题。这类问题既有趣、又神秘,还很怪异,往往......

    简易设计合同[范文]

    设 计 合 同 设计委托方(简称甲方): 项目地址:联系电话:设计方(简称乙方) :江苏百思特装饰安装工程有限公司 地址:泰兴市中兴大道1号华泰大厦601-3室联系电话:0523-89700999甲方委托乙......

    数字色彩设计

    数字色彩设计 教师:魏星所授课程:《数字色彩设计》、《媒介营销与管理》、《新媒体广告理论 与实务》、《互联网传播》(双语)、《传播与新媒体研究方法》 色彩设计是一项感性......

    数字交互设计

    《数字交互设计》教学大纲 课程名称:数字交互设计 课程类型:专业方向课 课程编号:134081 学时数及学分:总32学时,2学分,其中讲课8学时,上机24学时。 教材名称及作者、出版社、出版......

    数字日历设计

    XXXXX学院 《EDA技术与应用》实训报告 数字日历设计 学 号 XX 姓 名 XX 指导教师: xx 题目:数字日历电路的设计 1 概述 通过EDA项目设计,使用Quartus软件进行数字日历电路的设......

    简易信号发生器设计

    《单片机原理及应用》课程设计任务书 课程设计题目:简易信号发生器设计 一、设计目的和要求 (一)、设计目的 通过设计简易信号发生器,完成系统设计、编码、调试及维护工作的实践......

    《简易方程》教学设计

    《简易方程》教学设计 教学内容: 苏教版教材第九册P90例1、“练一练”以及练习十二第1~2题和补充练习。 教学目标: 1、 2、 3、 使学生理解掌握方程ax±bx=c的解法。 培养学生......

    《简易方程》教学设计

    《简易方程》教学设计 ——乐秋乡虎街哨小学教师 李坤艳 (我从教地区的饮用水绝大多数是用扁担担回家的,学生对扁担比较熟悉,我用扁担代替天平来进行方程的有关教学。) 一、结合......