EDA_闹钟系统设计

上传人:飞*** 文档编号:30955302 上传时间:2018-02-03 格式:DOC 页数:18 大小:260KB
返回 下载 相关 举报
EDA_闹钟系统设计_第1页
第1页 / 共18页
EDA_闹钟系统设计_第2页
第2页 / 共18页
EDA_闹钟系统设计_第3页
第3页 / 共18页
EDA_闹钟系统设计_第4页
第4页 / 共18页
EDA_闹钟系统设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《EDA_闹钟系统设计》由会员分享,可在线阅读,更多相关《EDA_闹钟系统设计(18页珍藏版)》请在金锄头文库上搜索。

1、毕 业 设 计2010 年 3 月 12 日课 程 基于 VHDL 语言的毕业设计 题 目 闹钟系统设计 院 系 四川师范大学成都学院 专业班级 通信工程 学生姓名 冯崇飞 学生学号 2007101010 指导教师 梅芳芳 课程设计任务书课程 EDA 技术课程设计题目 闹钟系统的设计专业 电子信息工程 姓名 学号 主要内容、基本要求、主要参考资料等主要内容:设计并制作一个带闹钟功能的24小时计时器。它包括以下几个组成部分:1、显示屏,由4 个七段数码管组成,用于显示当前时间(时:分) 或设置的闹钟时间;2、数字键,实现09 的输入,用于输入新的时间或新的闹钟时间;3、TIME( 时间)键,用于

2、确定新的时间设置;4、ALARM(闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间;5、扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声基本要求:1、计时功能:这是本计时器设计的基本功能,每隔一分钟计时一次,并在显示屏上显示当前时间。2、闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。3、设置新的计时器时间:用户用数字键输入新的时间,然后按TIME键确认。在输入过程中,输入数字在显示屏上从右到左依次显示。例如,用户要设置新的时间12:34,则按顺序输入“1”,“2” ,“3”,“4”,与之对应,显示屏上依次显示的信息为:“1”,“12” ,“123”,“1234。如

3、果用户在输入任意几个数字后较长时间内,例如5 s,没有按任何键,则计时器恢复到正常的计时显示状态。主要参考资料:1 潘松著.EDA技术实用教程 (第二版). 北京:科学出版社 ,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社 ,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限 2010.3.12 指导教师 专业负责人 2010 年 3 月 8 日1一、总体设计思想1.基本原理数字闹钟电路的基本结构由两个 60 进制计数器和一个 24 进制计数器组成,分别对秒、分、小时进行计时,当计时到 23 时 59 分 59 秒时,再来一个计数脉冲,则计

4、数器清零,重新开始计时。秒计数器的计数时钟 CLK 为 1Hz 的标准信号。当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒的计时结果通过 6 个数码管来动态显示。因此,通过模式选择信号KEY1、KEY2 控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定闹钟分、时 5 个状态。当数字闹钟处于计时状态时,3 个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为 CLK,秒的进位, 分的进位;当数字闹钟处于调整时间状态时,被调的分或时会一秒一秒地增加;当数字钟处于闹钟定时状态时,可

5、以设定小时和分;当计时到所设定的时刻时,驱动扬声器,持续 1 分钟。2.设计框图设定按键时钟 1Hz按键 UpDN时钟 10Hz功能切换寄存器闹钟设定寄存器闹铃控制电路模式切换数据选择 扫描技术字符译码扫描时钟 320Hz数码显示蜂鸣器时钟计数寄存器2二、设计步骤和调试过程1、总体设计电路(1) CLK 为外部时钟信号,RESET 为复位信号.(2) 当 KEY 为高电平(KEY= 1)时,表示用户按下数字键(09).(3) 当 ALARM_BUTTON 为高电平时,表示用户按下ALARM键.(4) 当 TIME_BUTTON 为高电平时,表示用户按下TIME键.(5) 当 LOAD_NEW_

6、A 为高电平时,控制(闹钟时间寄存器)加载新的闹钟时间值.(6) 当 LOAD_NEW_C 为高电平时,控制(时钟计数器)设置新的时间值.(7) 当 SHOW_NEW_TIME 为高电平时,控制(七段数码显示电路)显示新的时间值,即用户通过数字键输入的时间;否则,当 SHOW_NEW_TIME 为低电平时,根据SHOW_A 信号的值控制显示当前时间或闹钟时间.根据设计要求及端口设置,需要五个状态来实现:S0:表示电路初态即正常时钟计数状态,完成前面设计功能 (1) 的工作.S1:接收键盘输入状态.在状态 S0 时用户按下数字键后进入此状态.在此状态下,显示屏上显示的是用户键入的数字.S2:设置

7、新的闹钟时间.在状态 S1 时用户按下 ALARM 键后进入此状态.S3:设置新的计时器时间.在状态 S1 时用户按下 TIME 键后进入此状态.S4:显示闹钟时间.在状态 S0 时用户直接按下 ALARM 键后进入此状态.在此状态下,显示屏上显示的是所设置的闹钟时间.注意:在此状态下,用户按下ALARM 键后,显示屏上保持显示闹钟时间,经过一段时间以后,再返回状态 S0。32、模块设计和相应模块程序(1)顶层文件:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY clock IS PORT ( CLK12MHZ : IN STD_LOGIC;

8、CLK8HZ : IN STD_LOGIC; SPKOUT : OUT STD_LOGIC; CLK : IN STD_LOGIC;KEY1 : IN STD_LOGIC;KEY2 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);H1,H2,M1,M2,S1,S2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF clock ISCOMPONENT shizhongPORT (clk : in std_logic;md1 : in std_logic;md2 : in std_logic_vector(1 d

9、ownto 0);clken : out std_logic;h1,h2,m1,m2,s1,s2: out std_logic_vector(3 downto 0);END COMPONENT;COMPONENT NoteTabsPORT ( clk : IN STD_LOGIC;ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END COMPONENT;COMPONENT ToneTabaPORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;Tone : OUT STD_LOGIC_VECTOR (1

10、0 DOWNTO 0); en : in std_logic);END COMPONENT;COMPONENT SpeakeraPORT ( clk : IN STD_LOGIC;Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC );END COMPONENT;SIGNAL Tone :STD_LOGIC_VECTOR (10 DOWNTO 0);SIGNAL ToneIndex :STD_LOGIC_VECTOR (3 DOWNTO 0);4SIGNAL clken :STD_LOGIC;SIGNAL en :STD_

11、LOGIC;BEGINu1 : Shizhong PORT MAP (clk=CLK,md1=KEY1,md2=KEY2,clken=en,h1=h1,h2=h2,m1=m1,m2=m2,s1=s1,s2=s2);u2 : NoteTabs PORT MAP (clk=CLK8HZ, ToneIndex=ToneIndex);u3 : ToneTaba PORT MAP (Index=ToneIndex,Tone=Tone,en=en);u4 : Speakera PORT MAP (clk=CLK12MHZ,Tone=Tone, SpkS=SPKOUT );END;(2)时钟控制模块:lib

12、rary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shizhong isport( clk: in std_logic;md1:in std_logic;md2:in std_logic_vector(1 downto 0);clken:out std_logic;h1,h2,m1,m2,s1,s2:out std_logic_vector(3 downto 0);end shizhong;architecture one of shizhong issignal hou1:std_logi

13、c_vector(3 downto 0);signal hou2:std_logic_vector(3 downto 0);signal min1:std_logic_vector(3 downto 0);signal min2:std_logic_vector(3 downto 0);signal seth1:std_logic_vector(3 downto 0);signal seth2:std_logic_vector(3 downto 0);signal setm1:std_logic_vector(3 downto 0);signal setm2:std_logic_vector(

14、3 downto 0);signal sec1:std_logic_vector(3 downto 0);signal sec2:std_logic_vector(3 downto 0);begin-小时十位h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)beginif clkevent and clk=1 thenif (hou1=0010 and hou2=0011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) thenhou111 THEN PreCLK Count

15、er , q=ToneIndex, inclock=clk);END;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba ISPORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ;Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0);en : IN STD_LOGIC);END;ARCHITECTURE one OF ToneTaba ISBEGINPROCESS(Index,en)BEGINIF en=0 THEN Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone NULL;END CASE;END I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号