可设置数字钟的设计计划书.doc_第1页
可设置数字钟的设计计划书.doc_第2页
可设置数字钟的设计计划书.doc_第3页
可设置数字钟的设计计划书.doc_第4页
可设置数字钟的设计计划书.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可设置数字钟的设计计划书一、 设计任务要求1 具有时、分、秒计数显示功能(6位LED构成),24小时循环。2 具有准确调节小时和分钟以及秒清零的功能(具体有1个或者2个键位来控制,要有操作说明)。3 具有整点报时功能,时钟整点报时,并且响铃一分钟(可自定义闪烁方式,要有说明)。二、设计方案1、系统功能(1)具有时、分、秒计数显示功能(2)具有准确调节小时和分钟以及秒清零的功能(3)具有整点报时功能 2、操作说明(1)首先接通电源,数字钟复位,显示00:00:00,开始正常计数 (2)然后对数字中进行调整时间,按下Key 1,秒位清零(3)再按Key 1 ,分位闪烁,按Key 2,分位加一调整 (4)再按Key 1 ,时位闪烁,按Key 2,时位加一调整 3、系统方案设计说明该数字钟具有准确的计时功能,计时的时钟信号是1HZ,即秒输入,但是实验箱上的时钟信号都是高频信号,因此需要对其进行分频来产生低频信号。数字钟用两个键来进行调时,其中按键KEY1按下秒位开始闪烁同时对其进行清零操作,如果再按下KEY1,分位开始闪烁,表示分位可以进行调整,则按下KEY2,每按一下,分钟数加一,分位调整完成以后,再按KEY1,则进入时位调整,时位闪烁,按KEY2,时位加一。在调整时间过程中,用按键来完成的,因此要加去抖模块。显示是用6位数码管完成,6位数码管循环显示。整点报时用一个小闹铃来实现。这些功能小模块需要一个总的控制模块来协调个模块的工作过程。其总模块的硬件原理图如下: 去抖电路 总体硬件原理图 4各功能模块分析说明(1) 分频器模块接入的时钟是1KHZ的,因此需要进行分频,产生1HZ的秒信号。此分频过程可经过三个10分频器。每一个十分频器相当于一个5进制计数器,即每经过5个时钟信号,输出电平变换一次,这样原来10个周期就可转换为一个周期,三个10分频器串联起来(可以减小分频误差),就组合为一个1000分频器,把1KHZ的时钟信号变为1HZ的秒输入信号。另外在进行时间的调整时,用闪烁来确定调整位,此闪烁的时间间隔是400ms,即2.5HZ,因此要对经过第二个分频器出来的信号进行4分频。气分频起的工作原理和十分频器一样。其程序模块如下:十分频器程序:module fenpinqi(fin,f10);output f10;reg f10; input fin; /输入时钟信号/reg 7:0 j;always (posedge fin )/上升沿触发/begin if (j = 4) begin j = 0; f10 = f10; /计数到一半取反/ end else begin j = j + 1; end endendmodule10分频模块图四分频器程序:module fenpinqi4(fin,f4);output f4;reg f4;input fin;reg 7:0 j;always (posedge fin )begin if (j = 2) begin j = 0; f4= f4; end else begin j = j + 1; end endendmodule4分频模块图(2) 计数模块 数字钟是时、分、秒的显示,因此计数模块是由两个60进制的计数器来表示秒位和分位,一个24进制的计数器来表示时位。三个计数器级联起来,秒进位的信号接入到分的时钟信号,分的进位信号接入时的计时模块作为时位的时钟输入信号。其程序如下:module sec (clk,mindatah,mindatal,co,rst);/秒计数/input clk,rst;output3:0 mindatah,mindatal;output co;reg3:0 mdatah,mdatal;reg cog;always (posedge clk)beginif(rst=1)beginmdatal=0;mdatah=0; /清零/endelse if(mdatal=9) /计数/beginif(mdatah=5)beginmdatal=0;mdatah=0;cog=1;endelsebeginmdatal=0;mdatah=mdatah+1;cog=0;endendelse begin mdatal=mdatal+1;cog=0;endendassign mindatah=mdatah;assign mindatal=mdatal;assign co=cog;endmodulemodule min (clk,mindatah,mindatal,co);/分计数/input clk;output3:0 mindatah,mindatal;output co;reg3:0 mdatah,mdatal;reg cog;always (posedge clk)beginif(mdatal=9) beginif(mdatah=5)beginmdatal=0;mdatah=0;cog=1;endelsebeginmdatal=0;mdatah=mdatah+1;cog=0;endendelse begin mdatal=mdatal+1;cog=0;endendassign mindatah=mdatah;assign mindatal=mdatal;assign co=cog;endmodulemodule hour (clk,mindatah,mindatal);/小时计数/input clk;output3:0 mindatah,mindatal;reg3:0 mdatah,mdatal;always (posedge clk)beginif(mdatal=3)beginif(mdatah=2)beginmdatal=0;mdatah=0;endelsemdatal=mdatal+1;endelsebeginif(mdatal=9)beginmdatal=0;mdatah=mdatah+1;endelsemdatal=mdatal+1;endendassign mindatah=mdatah;assign mindatal=mdatal;endmodule各时间位仿真结果如下:秒分:时: 计数模块图(3)闪烁控制模块该模块中的闪烁是在调整时用来对调整位的标志,某位闪烁表示对该位进行调整,此闪烁的频率是2.5HZ(周期400ms)设计时,程序中在对其闪烁的控制是通过对数码管段的控制来控制闪烁的亮灭。程序如下:reg1:0 mod;reg6:0 segout;reg2:0 bitout;always (posedge set)mod=mod+1;always (bitin & clk_fla)begincase (mod)0:segout=segin;/正常计数,直接显示/1:beginif (bitin=0|bitin=1) /秒位闪烁/begin if (clk_fla=1) segout=segin; else segout=0; end else segout=segin; end 2:begin if (bitin=2|bitin=3)/分位闪烁/ begin if (clk_fla=1) segout=segin; else segout=0; endelsesegout=segin; end3:begin if (bitin=4|bitin=5)/时位闪烁/ begin if (clk_fla=1) segout=segin; else segout=0; end elsesegout=segin; endendcasebitout=bitin;endendmodule闪烁模块图(4) 报时模块报时器的时钟信号采用100HZ的高频信号,报时的铃声人耳听不到有间断,分高位的进位信号作为报时信号,由于在进位信号保持1分钟,因此该报是持续1分钟。其程序如下: module alert(co,clck,alert);input co,clck;output alert;reg alert;always (posedge clck) if(co=1) /进位为“1”,开始报时/ begin alert=alert; end else alert=0;endmodule(5) 显示模块module diplay(clk,sech,secl,minh,minl,hourh,hourl,seg,bit);input clk;input3:0 secl,sech,minl,minh,hourl,hourh;output 6:0 seg;output 2:0 bit;reg 6:0 seg;reg 2:0 bit;reg 3:0 data;always (posedge clk) begin case(bit) 3b000:begin data=minl;bit=bit+1; end 3b001:begin data=minh;bit=bit+1; end 3b010:begin data=hourl;bit=bit+1; end 3b011:begin data=hourh;bit=bit+1; end 3b100:begin data=secl;bit=bit+1; end 3b101:begin data=sech;bit=0; end default:bit=0; endcase case (data) 4b0000 : seg = 7b0111111; / 0 4b0001 : seg = 7b0000110; / 14b0010 : seg = 7b1011011; / 2 4b0011 : seg = 7b1001111; / 3 4b0100 : seg = 7b1100110; / 4 4b0101 : seg = 7b1101101; / 5 4b0110 : seg = 7b1111101; / 6 4b0111 : seg = 7b0000111; / 7 4b1000 : seg = 7b1111111; / 8 4b1001 : seg = 7b1101111; / 9 endcaseend endmodule(6) 控制模块此模块是整个数字钟的核心,此程序中我定义了一个变量,它表示两个按键的四种状态,状态0正常计数,状态1秒复位,状态2调整分位,同时秒位一直复位,状态3对时位进行调整, 同时秒位一直复位.其程序如下:module clock_contrl (secclear,minin,minout,hourin,hourout,set,turn);input minin,hourin,set,turn;output secclear,minout,hourout;reg secclear,minout,hourout;reg 1:0 mod;always (posedge set)beginmod=mod+1;endalways (minin&hourin&turn)begincase(mod)0:begin assign minout=minin; assign hourout=hourin;assign secclear=0; end /正常计数/1:begin assign minout=minin; assign hourout=hourin; assign secclear=turn; end/秒位调整/2:begin assign minout=turn; assign hourout=hourin; assign secclear=1; end/秒位调整/3:begin assign minout=minin; assign hourout=turn; assign secclear=1; end/时位调整/endcaseendendmodule三、调试过程分析 通过设计思想对各模块进行程序设计,然后对程序编译并调试,调试通过后.连接各功能模块对管脚进行分配:管脚图连接如下连线情况: CLK_1KHZ :1, Set :16 , Turn :17, Speaker :65, BIT0 : 19, BIT1 :21, BIT2 :22, SEG0 :23 ,SEG1 : 24, SEG2 :25, SEG3 :27, SEG4 :28, SEG5 : 29, SEG6 :30 。 最后下载到芯片四、设计总结此次课设,由于对Verilog语言久而未用感到较为陌生,再加上当时学的比较草率,因此我大概用了一定时间把Verilog语言熟悉了一遍。在做整体设计时,主要存在问题:分频器:由于实验箱上都是高频信号,而实验需要的是1HZ的信号。开始想直接用一次分频来得到想要的信号,后来经同学的热心帮助,并且经过讨论,最终采取了用多次分频的方法,目的在于减小分频的误差。闪烁控制模块:闪烁控制可以有位控制和段控制。开始想用位控制来进行显示,由于时位需要有较高的频率,在下载时,闪烁效果不是很好,最终采取段控制对闪烁进行控制,效果比较明显。控制模块:需要一个总的控制模块把各种功能模块组合在一起,开始觉得无从下手。后来经过分析和同学之间的讨论发现,该时钟有几种工作模式,因此需要一个变量来控制几种模式的转换,它由模式调整键控制, 但是下载时发现在进行调整时钟时,出现了一个问题,秒位始终处于走时状态。因为控制模块中的其中一个输出是接到秒计时模块的复位信号的,所以在调整时间时我把该复位信号始终设为“1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论