ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:19.79KB ,
资源ID:11436854      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11436854.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子钟.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子钟.docx

1、电子钟为期两周的课设已经接近尾声了,在这2周中,我学到了很多,对EDA的认识也进一步加深了。从一个刚入门的学习者,渐渐的爱上了这门技术,虽然说对于EDA的知识还有很多要学习和提高,但是在这2周中我还是感受到这门课程的魅力所在。 在拿到数字钟这个课题时,我和我的合作伙伴对这个课题感到比较轻松,脑海中一下子出现了许多设计念头,于是我们就分头去寻找这方面的资料,通过图书馆的书籍资料,网络上的虚拟资料。在2天的找资料的过程中,我开始觉得所谓的数字钟并非我想象的那么简单。一开始我想到的数字钟只是一般的计数功能并未涉及到调时,调分,和闹铃功能。在如何显示方面也没有细细的考虑过。在看过一些资料后,越来越感觉

2、到数字钟课题并非手到擒来。 在与伙伴商量后,我们以一本参考书的资料为基础开始展开细致设计。我们一开始的输入是有三个模块 ,输入模块,计数模块,和显示模块。对于计数模块我们通过分频方法很快就得到了1HZ的频率用于计数,再通过计数进位标志实现秒,分,时的互相关联,再显示模块,我们通过7段数码管扫描显示也的到了实现。但是在输入模块,我们却遇到了障碍,如何通过硬件上的有限的开关和按钮来实现呢。我们首先想到了 ,做一个可以输入数字的键盘和开关(16*16),可是在想到键盘设计本身就是一个非常复杂的过程,想到2周能做好的话有一定的难度,于是我们果断的放弃了这一计划。那么如何实现输入,这个问题摆在我们面前,

3、我感到了课设以来前所未有的压抑感。通过四个开关控制09的输入,但是如何控制是输入的是哪一位,如何进行调时,闹铃控制?都是难题。 在冥想了2天后,我才发现自己陷如了思维的局限性中,为什么一定通过输入来完成调时呢,我们不可以通过他本身的计数功能来调时,这样虽然没有像我们所想的输入调时那样方便,但是它的简单在于充分利用了1HZ频率,通过干扰进位标志进行调时。这一个方法想到后,其他的闹铃功能和报时功能也都迎刃而解了。经过3天的编程和功能完善,我们基本实现了所有的功能,各个模块的编译和仿真也都实现了,第二个星期,实验室开放,我和伙伴就开始进行硬件上的实现了,在完成顶层设计后,我们成功的下载在硬件上了。通

4、过调时后,基本实现了全部功能,并通过了老师的检查。到此本次课设基本上实现了所有的功能,但在有些功能的实现中,还有待提高。比如说对于调时功能,只能等待调时,这样对于调时的机动性不好,如果控制不好,过了应调时间的话,就必须在等一次循环后才能调时,这样就很浪费时间了 。还有就是闹钟功能并未完全实现它,我们只是编写了一个特定的程序来闹铃,闹铃时间已经事先安排好了,无法再通过手动调节了,这样就缺少了人性化。这在课设结束以后,要进一步的改进,争取获得一款高性能的人性化的数字钟。 通过本次课设,我不仅学到了关于EDA的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的

5、启发,利用好图书馆和网络,是资源的到最好的利用。如果我们一味的屋子里苦思冥想那么再给2周的时间或许也不会有数字钟诞生,所以我觉得与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系也可以扩展自己的思维。通过思考、发问、自己解惑并动手、改进的过程,才能真正的完成课题。经过这次课程设计的过程,我相信在以后的课程设计中我们会吸取经验教训,做出更好的设计来。评价答案 您已经评价过!天外流星 2007-07-03 10:24 满意答案好评率:0% 3数码管的扫描显示: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; -字模输出模块 USE IEEE

6、.STD_LOGIC_UNSIGNED.ALL; ENTITY SEL IS PORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -输入选通信号 END SEL; ARCHITECTURE SELA OF SEL IS BEGIN PROCESS(CLK) VARIABLE CNT:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF CLKEVENT AND CLK=1 THEN CNT:=CNT+1; END IF; Q=CNT; END PROCESS; END SELA; G:整点报时功能: li

7、brary ieee; -整点报时模块 use ieee.std_logic_1164.all; entity sst is port(h1,h0,m1,m0,s1,s0:in std_logic_vector(3 downto 0); q1,q0:in std_logic; -输入分,秒信号和时钟信号 q: out std_logic); -输出两个不同频率的音频信号 end sst; architecture sss_arc of sst is signal q3,q4:std_logic; begin process(m1,m0,s1,s0) begin if h1=0000 and h

8、00111 then q3=0; q4=0; elsif m1=0101and m0=1001and s1=0101 then if s0=0000or s0=0010or s0=0100 or s0=0110 or s0=1000 then q3=1 ; else -当计时到达5950 52 54 56 58鸣叫,鸣叫频率为500HZ, q3=0; end if; end if; if h1=0000 and h00111 then q3=0; q4=0; elsif m1=0000 and m0=0000and s1=0000 and s0=0000 then q4=1; 当整点时为最后一

9、声整点报时,频率为1k HZ, else q4=0; end if; end process; q=(q3 and q0)or(q4 and q1); end sss_arc; G:闹钟功能模块: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY NAL IS PORT(M1,M0,H1,H0:IN STD_LOGIC_VECTOR(3 DOWNTO 0); en: in STD_LOGIC; Q:OUT STD_LOGIC); END NAL; ARCHITECTURE NAO OF NAL IS BEGIN PROCESS(M1,M0,H1

10、,H0,EN) BEGIN IF EN=0 THEN IF H0=1000AND H1=0000 AND M1=0000 AND M0=0000 THEN Q=1; ELSE Q=0; END IF; ELSE Q=0; end if; END PROCESS; END NAO; 评价答案 您已经评价过!好:0 您已经评价过!一般:0 您已经评价过!不好:0 您已经评价过!原创:0 您已经评价过!非原创:0 其他答案其基本要求如下: 1. 实现基本的计时功能,输入1kHz的时钟,采用24小时制计时,能显示时、分、秒。 2. 校正功能; 时分均有校时功能。 3. 当计时器运行到59分49秒开始报

11、时,每鸣叫1s就停叫1s,共鸣叫6,前5响为低音,频率为750Hz;最后1响为高音,频率为1KHz。 4. 可设定夜间某个时段不报时。 5. 设定闹钟,当按下闹铃开关时,可在规定时间闹铃,当开关复位时,闹铃停止。 方案一 根据方案的要求,可以用VHDL语言 ,采用自顶向下的设计方法。可用分频的方法得到1HZ的时钟用与计数;用7段数码管来显示时间,需要6个数码管;同时可以根据不同的频率的输入来调节蜂鸣器的鸣叫声音,从而实现整点报时功能和闹铃功能。对于闹铃功能,可以用一个触发器和一个寄存器来实现。根据要求基本确定由以下模块组成: 1 秒计数模块:秒计数,在频率为1HZ的时钟下以60次为循环计数,并

12、产生进位信号影响分计数; 2 分计数模块:分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数; 3 时计数模块:时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数; 4 频率产生模块:主要有2个部分,一个是产生1HZ的计数频率,一个是产生725HZ和500HZ的蜂鸣器鸣叫频率; 5 时间显示模块:通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。 6 时间设置模块:设置调试使能端,可以调时,分。基本功能是在使能端为高电平时,可以使时和分循环计数; 7 整点报时模块:在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个

13、2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。 8 闹钟模块:在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,通过人工拨0后停闹。 秒计数模块 VHDL源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MIAN IS -秒计数模块- PORT(RD,CLK:IN STD_LOGIC; -秒复位信号- SEC1,SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO:OUT STD_LOGIC); END MIAN; AR

14、CHITECTURE MIANA OF MIAN IS BEGIN PROCESS(CLK,RD) -秒计数进程 VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); 输出信号 BEGIN IF RD=1 THEN -复位信号为1时,秒计数清零- CNT1:=0000; CNT0:=0000; ELSIF CLK EVENT AND CLK=1 THEN -输入时钟信号和清零信号 IF CNT1=0101AND CNT0=1000THEN 当秒计数为58时进位信号为1 CO=1; CNT0:=1001; -秒低位小于9时,加1 ELSIF CNT01

15、001THEN CNT0:=CNT0+1; ELSE CNT0:=0000; IF CNT10101THEN -秒高位小于5时,加1 CNT1:=CNT1+1; ELSE CNT1:=0000; CO=0; END IF; END IF; END IF; SEC1=CNT1; SEC0=CNT0; END PROCESS; END MIANA;天外流星 2007-07-03 10:22 B:分计数模块 VHDL源程序: LIBRARY IEEE; -分计数模块 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTIT

16、Y MINA IS PORT(EN,CLK:IN STD_LOGIC; -输入时钟信号和进位信号 MIN1,MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出分计数和进位 CO:OUT STD_LOGIC); END MINA; ARCHITECTURE MIN OF MINA IS BEGIN PROCESS(CLK) -分计数进程 VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLKEVENT AND CLK=1 THEN 时钟上升沿,en为1时分开始计数 IF EN=1THEN IF

17、CNT1=0101AND CNT0=1000THEN -当分计数到58时产生进位信号 CO=1; CNT0:=1001; ELSIF CNT01001THEN -分低位小于9时,cnt0加1 CNT0:=CNT0+1; ELSE CNT0:=0000; IF CNT10101THEN CNT1:=CNT1+1; ELSE CNT1:=0000; CO=0; END IF; END IF; END IF; END IF; MIN1=CNT1; MIN0=CNT0; END PROCESS; END MIN; :时计数模块 VHDL源程序: LIBRARY IEEE; -时计数模块 USE IEE

18、E.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY HOUR IS PORT(EN,CLK:IN STD_LOGIC; -输入时钟信号和分模块进位信号 H1,H0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出h0,h1 END HOUR; ARCHITECTURE HOURA OF HOUR IS BEGIN PROCESS(CLK) -小时计数进程 VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLK EVENT AND

19、CLK=1 THEN -时钟上升沿,en为1时小时开始计数 IF EN=1 THEN IF CNT0=0011AND CNT1=0010THEN CNT0:=0000; CNT1:=0000; ELSIF CNT01001THEN CNT0:=CNT0+1; ELSE CNT0:=0000; CNT1:=CNT1+1; END IF; END IF; END IF; H1=CNT1; H0=CNT0; END PROCESS; END HOURA;天外流星 2007-07-03 10:23 D:频率产生模块: 1500HZ和1KHZ的频率产生: LIBRARY IEEE; -小时计数模块 US

20、E IEEE.STD_LOGIC_1164.ALL; ENTITY CCC IS PORT(CLK:IN STD_LOGIC; q1k,Q500:OUT STD_LOGIC); END CCC; ARCHITECTURE CCCA OF CCC IS SIGNAL X:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLK EVENT AND CLK=1 THEN X=NOT X; END IF; q1k=X; END PROCESS; PROESS(X) VARIABLE Y:STD_LOGIC; BEGIN IF X EVENT AND X=1 THEN Y:

21、=NOT Y; END IF; Q500=Y; END PROCESS; END CCC; 21HZ的频率产生: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FEN10 IS PORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END FEN10; ARCHITECTURE FENA OF FEN10 IS BEGIN PROCESS(CLK) VARIABLE CNT:INTEGER RANGE 0 TO 999; BEGIN IF CLK EVENT AND CLK=1 THEN IF CNT999 THEN CNT:=CNT+1; Q=0; ELSE CNT:=0; QQQQQQQQqqqqqqqqqqq=0000000; end case; end process;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1