北邮数字电路实验报告

北邮数字电路实验报告
北邮数字电路实验报告

数字电路综合实验

实验报告

题目:题目三带日历显示的多功能数字钟的设计与实现

学院:信息与通信工程学院

班级:

姓名:

学号:

序号:

一、任务要求:

基本要求:

1、用LCD1602液晶屏显示所有的信息

2、年、月、日、星期和时、分可手动调整

3、精确计时,各部分之间进位转换准确

4、时间可以24小时制或者12小时制转换,可以通过按键进行转换提高要求:

1、调整日历时加入大小月及闰年的判断

2、增加闹钟功能,在用户设定的时间闹铃提醒

二、系统设计

1、设计思路

一个基本的数字钟系统由分频器、秒分时日星期月年的计数器、液晶显示模块、闹钟模块、消抖器、数码管显示模块构成,简单的系统框图如下图所示。

这个系统中最重要的是秒,分,时,天,月,星期,年各自的计数和之间的进位。首先50M的分频器将实验硬件上能提供的50Mhz

的主频分为1hz的信号,1hz的信号提供给秒的计数器,计数范围0-59,当计时到0时产生进位信号,提供给分,分在进行计数,产生的进位信号再提供给时……以此类推。因为题目中还要求可以进行时间调整,所以在每部分都加上add(加信号)和sub(减信号),还加上了switch(控制是加还是减的信号)。

计数模块在完成计数之后将计数后得到的秒分时日星期月年输出到LCD显示模块,显示出来。

闹钟模块可以独自进行闹钟预定时分的调整,并且与计数模块输出的时分进行对比,如果时分相同,则产生高低电平输出给蜂鸣器。闹钟模块的时分可以在数码管上显示出来。

2、总体框图

3、分块设计

计数模块:

此程序中共有秒、分、时、日、星期、月、年七个计数模块。通过分频器把硬件上能提供的50hz的频率分成1hz的频率提供给秒计数模块,秒计时模块内部是0-59的计数的循环,当数到0时产生高电位的脉冲,1-59时是低电位,并把此信号输出给分计数器……以此

类推,同时输出此时的计数的数字,即此刻的秒、分、时、日、星期、月、年。

其中日子的计数模块与其余六个不同之处在于,还要进行大小月和闰年的判断,需要月和年的数字反馈给日子,再通过判断此年此月的天数。其中闰年的判断方法以下两点能满足一点即可:

1.年数能被4整除但不能被100整除

2.年数能被400整除但是不能被3200整除

还需要能对秒、分、时、日、星期、月、年大小进行调整,其中加减信号我是用一个switch信号进行转换,其中switch=’1’时是加信号起作用,反正则减信号起作用。以加信号为例,我是通过改变控制计数的时钟来增加计数值的。

这部分代码为:

if swich='1' then

if(add='1') then clk1<=not clk;--重新定义一个新的输入信号,此输入信号结合了加信号

else clk1<=clk;

end if;

if(clk1'event and clk1='1')then

if(swich='1')then

if (tmp=59) then --0 to 59

tmp<=0;

else

tmp<=tmp+1;

end if;

end if;

end if;

相关文档
最新文档