eda闹钟系统的设计1Word文件下载.docx

上传人:b****1 文档编号:3593658 上传时间:2023-05-02 格式:DOCX 页数:10 大小:251.23KB
下载 相关 举报
eda闹钟系统的设计1Word文件下载.docx_第1页
第1页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第2页
第2页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第3页
第3页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第4页
第4页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第5页
第5页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第6页
第6页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第7页
第7页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第8页
第8页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第9页
第9页 / 共10页
eda闹钟系统的设计1Word文件下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

eda闹钟系统的设计1Word文件下载.docx

《eda闹钟系统的设计1Word文件下载.docx》由会员分享,可在线阅读,更多相关《eda闹钟系统的设计1Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。

eda闹钟系统的设计1Word文件下载.docx

3、设置新的计时器时间:

用户用数字键输入新的时间,然后按"

TIME"

键确认。

在输入过程中,输入数字在显示屏上从右到左依次显示。

例如,用户要设置新的时间12:

34,则按顺序输入“1”,“2”,“3”,“4”,与之对应,显示屏上依次显示的信息为:

“1”,“12”,“123”,“1234"

如果用户在输入任意几个数字后较长时间内,例如5s,没有按任何键,则计时器恢复到正常的计时显示状态。

主要参考资料:

[1]潘松著.EDA技术实用教程(第二版).北京:

科学出版社,2005.

[2]康华光主编.电子技术基础模拟部分.北京:

高教出版社,2006.

[3]阎石主编.数字电子技术基础.北京:

高教出版社,2003.

完成期限2011.3.11

指导教师

专业负责人

2011年3月7日

一、总体设计思想

1.基本原理

数字闹钟电路基本功能有计时功能、定点报时功能和重置时间功能。

主要由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。

秒计数器的计数时钟CLK为1Hz的标准信号。

当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒的计时结果通过6个数码管来动态显示。

因此,通过模式选择信号KEY1、KEY2控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。

当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位,分的进位;

当数字闹钟处于调整时间状态时,被调的分或时会一秒一秒地增加;

当数字钟处于闹钟定时状态时,可以设定小时和分;

当计时到所设定的时刻时,驱动扬声器,持续1分钟。

2.设计框图

外部控制信号

二、设计步骤和调试过程

1、总体设计电路

2、模块设计和相应模块程序

(1)、分计时器(second1)

-----------------------分钟十位

m110:

process(clk,min2,sec1,sec2,md1,md2)

begin

ifclk'

eventandclk='

1'

then

if(min1="

0101"

andmin2="

1001"

)and(sec1="

andsec2="

)then

min1<

="

0000"

;

elsifmin1="

andmin2="

and(md1='

0'

andmd2="

00"

)then

elsif(min2="

and(sec1="

))

or(min2="

andmd1='

)thenmin1<

=min1+1;

endif;

--endif;

endprocessm110;

-----------------------分钟个位

m220:

process(clk,sec1,sec2,md1,md2)

ifmin2="

)thenmin2<

elsifmin2="

elseif(sec1="

)or(md1='

min2<

=min2+1;

endprocessm220;

(2)、时计时器(hour1)

-----------------------------------------------小时十位

h110:

process(clk,hou2,min1,min2,sec1,sec2,md1,md2)

if(hou1="

00010"

andhou2="

00011"

)and(min1="

)thenhou1<

00000"

elsifhou1="

andhou2="

01"

--当时间为23点且处于校时状态时

hou1<

elsif(hou2="

01001"

and(min1="

))or(hou2="

thenhou1<

=hou1+1;

endprocessh110;

-----------------------------------------------小时个位

h220:

process(clk,min1,min2,sec1,sec2,md1,md2,hou1)

)thenhou2<

elsifhou2="

)or(hou1="

--md<

='

elsif((min1="

))

or(md1='

=hou2+1;

--speak<

=clk;

endprocessh220;

(3)、报时模块(speak)

--------------------------------------------闹铃

speaker:

process(clk,hou1,hou2,min1,min2)

then

ifseth1=hou1andseth2=hou2andsetm1=min1andsetm2=min2thenspeak<

elsespeak<

endprocessspeaker;

disp:

process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)

ifmd1='

thenh1<

=hou1;

h2<

=hou2;

---------------计时时间显示和设置模式

m1<

=min1;

m2<

=min2;

s1<

=sec1;

s2<

=sec2;

else-----------闹铃时间现实和设置模式

h1<

=seth1;

=seth2;

m1<

=setm1;

=setm2;

s1<

1111"

endprocessdisp;

endone;

 

3、仿真及仿真结果分析

(1)、秒时钟

(2)、分时钟

(3)、报时

(4)、功能仿真RTL图

4、实验调试结果

在波形仿真时,结果不能在波形上得到正确的显示:

在设定输入的时钟信号后,数字钟开始计数,但是始终看不到小时、星期的循环计数。

在数多次调试之后,发现是因为输入的时钟信号对于小时、星期来说太短了。

经过多次调试,终于找到了比较合适的输入数值:

分钟的初始值可以设为57(58、59都可以),小时的初始值可以设为23,这样,仿真之后,就能清楚的看出分钟、小时的循环计数。

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

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2