人人范文网 范文大全

EDA课程设计 数字时钟

发布时间:2020-03-03 02:35:18 来源:范文大全 收藏本文 下载本文 手机版

EDA

课程设计报告

一·设计任务

使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。

二·设计要求

除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。

a) 具有时,分,秒,计数显示功能,以24小时循环计时; b) 具有时间清零功能;

c) 具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。

d) 具有闹钟功能,能预设闹钟时间,精确到秒。

整个数字钟只设一个时钟输入端口,所需不同频率信

号在内部分频实现。(LED扫描频率设为50Hz以上)。

三·设计方案

设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。计时模块:秒模块,分模块,时模块。闹钟模块,显示模块,控制模块。

四·模块端口设置

1.分频模块

输入:clkin :

本实验输入为50MHz晶振

输出:clk : 为显示模块及始终调节提供1KHz脉冲

clkt: 为计数器模块提供1Hz脉冲

2.计时模块

m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。num3,

num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提

供。counta,count1 是手动调节时间。Turn 接按键,可以改变当前调节的是小时还是分钟,

长按turn 键还可以使秒钟信号清零。sec1,min1,hour1 输出的是计时的秒,分,时。

3.闹钟模块

原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的

频率由clk 提供。countb,count2 是手动调节闹钟时间。amin,ahour 是输出的闹钟的分钟和 小时 4.控制模块

m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是

闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的

暂停与开始。change 接按键,手动调整时,每按一次,计数器加1;如果长按,则连续快

速加1,用于快速调时和定时;turn 接按键,在手动校时功能时,选择是调整小时,还是分

钟;若长时间按住该键,还可使秒信号清零,用于精确调时。count1,count2,counta,countb 分

别是用来调节计时时间和闹钟时间。LD_min,LD_hour,指示当前调节的是分钟还是小时。 5 显示模块

输入:clk -- 1kHz时钟,提供高频扫描

in0、in1…in5 --分别为时、分、秒的个位与十位信号

输出:a、b…g -- 数码管输入

d0、d1…d5 -- 数码管选通

五.程序。

分频模块

module fenpin(clk,clkt,clkin); input clkin; output clk,clkt; reg clk,clkt; reg [31:0]out,t1;

initial t1

always@(posedge clkin) begin

out

if(out==20000)

begin

out

clk

end end

always@(posedge clk)

begin

t1

if(t1==1000)

begin

clkt

t1

end

else

clkt

计时模块 module jishi(clk,clk_1Hz, turn,mode,count1,counta,sec1,min1,hour1,num3,num4); input clk,clkt,turn,num3,num4; input mode; input count1,counta; output [7:0] sec1,min1; output [7:0] hour1; wire clkt,ct1,cta,turn,num3,num4; reg [7:0] sec1=0,min1=0; reg [7:0] hour1=0; reg [1:0] m; wire count1,counta; reg minclk,hclk; always @(posedge mode) //mode 信号控制系统在三种功能间转换 begin if(m==4) m

if((sec1==8\'h59)|turn&(!m))///////若长时间按住该键,还可使秒信号清零,用于精确调时。 begin sec1

if(!(turn&(!m))) minclk

always @(posedge ct1) begin if(min1==8\'h59) begin min1

begin min1[3:0]

always @(posedge cta) if(hour1==8\'h23) hour1

闹钟模块

module alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert); input clk,num1,num2,count2,countb; output [7:0] amin;

output [7:0] ahour; output LD_alert; wire LD_alert; reg [7:0] amin=0; reg [7:0] ahour=0; aign ct2=(num1&clk)|(!num1&count2); //ct2 用于定时状态下调整分钟信号

aign LD_alert=(ahour|amin)?1:0;//指示是否进行了闹铃定时 always @(posedge ct2) if(amin==8\'h59) amin

module ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode); input change,mode,turn; output count1,count2,counta,countb,pause,LD_min,LD_hour; reg [1:0] m; reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0; wire mode,turn,change; always @(posedge mode) //mode 信号控制系统在三种功能间转换 begin if(m==4) m

always @ (m or fm or change) begin case(m) 2: begin ////////2:调节时间功能; if(fm) begin count1

Else

begin counta

0: begin {count1,count2,counta,countb,LD_min,LD_hour}

module show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode); input [7:0] min1,sec1,amin; input [7:0] hour1,ahour; input[3:0] MSH,MSL,SH,SL,MH,ML; input mode; output [7:0] min,sec; output [7:0] hour; reg [7:0] min,sec; reg [7:0] hour; reg [1:0] m; always @(posedge mode) //mode 信号控制系统在三种功能间转换

begin if(m==4) m

hour

min

实验分析

13 七

实验总结

八、参考资料

1、《EDA技术实用教程》

2、实验箱使用说明;

EDA课程设计——数字时钟

EDA课程设计 数字时钟(闹钟)

数字时钟课程设计论文

数字电路EDA课程设计数字跑表

数字电路课程设计数字时钟实现

单片机数字时钟课程设计感想

数字电子EDA课程设计八音电子琴

燕山大学EDA课程设计数字跑表

数字电子时钟课程设计报告2

数字时钟课程设计指导书(全)(整理)

EDA课程设计 数字时钟
《EDA课程设计 数字时钟.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档