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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

EDA课程设计多功能数字钟.docx

1、EDA课程设计多功能数字钟哈尔滨工业大学(威海)电子学课程设计报告带有整点报时的数字钟设计与制作姓名:蒋栋栋班级:0802503学号:080250331指导教师:井岩一、课程设计的性质、目的和任务3二、课程设计基本要求3三、设计课题要求3四、课程设计所需要仪器4五、设计步骤41、整体设计框图42、各个模块的设计与仿真42.1分频模块42.2计数器模块62.3控制模块102.4数码管分配132.5显示模块142.6报时模块16六、调试中遇到的问题及解决的方法18七、心得体会18一、课程设计的性质、目的和任务创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真

2、知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。二、课程设计基本要求掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。三、设计课题要求(1)构造一个24小时制的数字钟。要求能显示时、分、秒。(2)要求时、分、秒能各自独立的进行调整。(3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频

3、率应与其它的报时声频有明显区别。#设计提示(仅供参考):(1)对频率输入的考虑数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。(2)计时部分计数器设计的考虑分、秒计数器均为模60计数器。小时计数为模24计数器,同理可建一个24进制计数器的模块。(3)校时设计的考虑数字钟校准有3个控制键:时校准、分校准和秒校准。微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库

4、中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。(4)报时设计的考虑可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。当电子钟显示XX:59:50时,数字钟开始报时“DO,持续一秒,而且每隔一秒报一下,直至显示XX:00:00时报“DI,持续一秒后停止。最后输出至喇叭。应调用元件库中的逻辑门建一个控制报时的模块。(5)建一个七段译码的模块因在系统可编程器件实验箱上的数码管没有经过译码,故要用AHDL语言写一个七段译码的模块,且应考虑数码管为共阳极。数码管上的点(D2、D4、D6)应置Vcc。四、课程设计所需要仪器1、计算机一台2、quartus软件3、

5、FPGA开发板五、设计步骤1、模块介绍(1) 分频模块:产生1Hz、1KHz、2KHz频率(2) 计数器模块:生成60进制、24进制计数器(3) 控制模块:按键控制、按键消抖(4) 显示模块:7段数码管显示器,分别显示小时、分钟、秒(5) 报时模块:进行整点报时2、各个模块的设计与仿真2.1分频模块CLK晶振频率50MHZ,分成2KHZ,1KHZ,1HZ的信号。基准1HZ信号作为时钟计时的秒计数时钟信号;分频的1KHZ,2KHZ信号用于报时电路的不同声讯。程序代码:library ieee;use ieee.std_logic_1164.all;entity fre isport(clk ,s

6、el: in std_logic;clk1hz,clk1khz,clk2khz:out std_logic);end fre;architecture beh of fre issignal data1khz,data2khz,data1hz : std_logic := 0;beginclk1hz = data1hz;clk1khz = data1khz;clk2khz = data2khz;clk1khz_pro : process(clk) -产生1khz信号variable cnt : integer range 0 to 24999;begin if clkevent and clk

7、=1 then if cnt = 24999 then cnt := 0 ; data1khz = not data1khz;else cnt := cnt + 1;end if;end if;end process clk1khz_pro;clk2khz_pro : process(clk) -产生2khz信号variable cnt : integer range 0 to 12499;begin if clkevent and clk=1 then if cnt = 12499 then cnt := 0 ; data2khz = not data2khz;else cnt := cnt

8、 + 1;end if;end if;end process clk2khz_pro;clk1hz_pro : process(data1khz) -产生1hz 信号variable cnt : integer range 0 to 499;beginif data1khzevent and data1khz=1 thenif sel=0 then cnt:=0;else if cnt = 499 thencnt := 0 ;data1hz = not data1hz ;elsecnt := cnt + 1;end if;end if;end if; end process clk1hz_pr

9、o;end beh;输入模块电路图:2.2计数器模块由秒计数器,分计数器,时计数器组成了最基本的数字钟计时电路,两个六十进制计数器与二十四进制计数器组合构成。程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity shuzizhong isport(clk_change : in std_logic;s_en,m_en,h_en:in std_logic;sel:in std_logic;secout,minout,hour

10、out :out std_logic;sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);a:out std_logic_vector(15downto 0);end shuzizhong;architecture behav of shuzizhong issignal low_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_logic_vector(3 downto 0):=0000;signal sout,mout,hout :std_logic :=0;begin-秒的

11、60进制进制 counter_sec_l : process(clk_change,s_en)beginsl=low_rega;sh=high_rega;ml=low_regb;mh=high_regb;hl=low_regc;hh=high_regc;if clk_changeevent and clk_change=1 thenif s_en=1 then if low_rega=1001 thenlow_rega = 0000;else low_rega = low_rega+1;end if;end if;end if;end process counter_sec_l;counter

12、_sec_h : process(clk_change,s_en,low_rega)beginif clk_changeevent and clk_change=1 thenif s_en=1 thenif low_rega=1001 then if high_rega =0101thenhigh_rega = 0000;elsehigh_rega = high_rega+1;end if;end if;end if;end if;end process counter_sec_h;sout = 1 when low_rega=1001 and high_rega=0101 else 0; -

13、分钟的60进制设置counter_min_l : process(clk_change,m_en)beginif clk_changeevent and clk_change=1 thenif m_en=1 thenif sout=1or sel=0 then if low_regb=1001 thenlow_regb = 0000;else low_regb = low_regb+1;end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_change,m_en,low_regb)be

14、ginif clk_changeevent and clk_change=1 thenif sout=1or sel=0 thenif m_en=1 thenif low_regb=1001 thenif high_regb =0101thenhigh_regb = 0000;else high_regb = high_regb+1;end if;end if;end if;end if;end if;end process counter_min_h;mout = 1 when low_regb=1001 and high_regb=0101and sout=1 else 0; -小时的24

15、进制设置counter_hour_l : process(clk_change,h_en)beginif clk_changeevent and clk_change=1 thenif h_en=1 thenif mout=1or sel=0 then if low_regc=1001or hout=1 thenlow_regc = 0000;else low_regc = low_regc+1;end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_change,h_en,hout

16、)beginif clk_changeevent and clk_change=1 thenif mout=1or sel=0 thenif h_en=1 thenif hout=1 thenhigh_regc=0000; else if low_regc=1001 thenhigh_regc = high_regc+1;end if;end if;end if;end if;end if;end process counter_hour_h;hout = 1 when low_regc=0011 and high_regc=0010 else 0;secout=sout;minout=mou

17、t;hourout=hout;a=high_regb&low_regb&high_rega&low_rega ;end behav;输入模块电路图:2.3控制模块分五个状态0状态正常计时,按下按键进入下一状态开始调时模式1,按下按键进入调秒模式2,按下按键进入调分模式3,按下按键进入调小时模式4.按下按键恢复正常计时模式。程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity key_press isport( set ,mode: in std_logic;clk1khz,clk

18、1hz: in std_logic;secout,minout: in std_logic;clk_change,clk2hz_en:out std_logic ;sel,s_ce,m_ce,h_ce:out std_logic;s_en,m_en,h_en:out std_logic );end key_press;architecture beh of key_press issignal key1,key2:std_logic;signal sce_reg, mce_reg ,hce_reg:std_logic ;signal ssl,ssen,mmen,hhen:std_logic;s

19、ignal con : integer range 0 to 4 :=0;-按键按下(延时)begin key_press2 : process(set,clk1khz)variable cnt :integer range 0 to 999;begin if set=0 thenif clk1khzevent and clk1khz=1thenif cnt=50 and set=0 thencnt :=cnt+1; key2 = 1;else cnt:=cnt+1;key2 = 0;end if;end if;else cnt:=0; key2=0;end if;end process ke

20、y_press2; key_press1 : process(mode,clk1khz)variable cnt :integer range 0 to 999;begin if mode=0 thenif clk1khzevent and clk1khz=1thenif cnt=50 and mode=0 thencnt :=cnt+1; key1 = 1;else cnt:=cnt+1;key1 = 0;end if;end if;else cnt:=0; key1=0;end if;end process key_press1;count : process(key1,key2) beg

21、in if key1event and key1=1 thenif con=4 thencon=0;else con ssl=1;sce_reg = 0;ssen =1;mce_reg = 0;mmen =1;hce_reg = 0;hhen =1;clk2hz_en ssl=0;sce_reg = 0;ssen =1;mce_reg = 0;mmen =1;hce_reg = 0;hhen =1;clk2hz_en ssl=0;sce_reg = 1;ssen =1;mce_reg = 0;mmen =0;hce_reg = 0;hhen =0;clk2hz_en ssl=0;sce_reg

22、 = 0;ssen =0;mce_reg = 1;mmen =1;hce_reg = 0;hhen =0;clk2hz_en ssl=0;sce_reg = 0;ssen =0;mce_reg = 0;mmen =0;hce_reg = 1;hhen =1;clk2hz_en ssl=0;sce_reg = 0;ssen =1;mce_reg = 0;mmen =1;hce_reg = 0;hhen =1;clk2hz_en s_ce=sce_reg;m_ce=mce_reg;h_ce=hce_reg;clk_change s_ce=ssen;m_ce=mmen;h_ce=hhen;clk_c

23、hange s_ce=ssen;m_ce=secout;h_ce=minout;clk_change=clk1hz;end case;end process sel_pro;sel=ssl;s_en=ssen;m_en=mmen;h_en dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout dataout null;end case;end process;end ;输入模块电路图:2.5显示模块使用七段数码

24、管显示小时、分钟与秒程序代码:library ieee;use ieee.std_logic_1164.all;entity scan isport(clk1khz : in std_logic;sl,sh,ml,mh,hl,hh : in std_logic_vector(3 downto 0);clk2hz_en : in std_logic;s_ce,m_ce,h_ce : in std_logic;en_out : out std_logic_vector(7 downto 0);dataout : out std_logic_vector(3 downto 0);end scan;architecture beh of scan issignal cnt : integer range 0 to 7;signal en : std_lo

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

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