1、东 北 石 油 大 学课 程 设 计课 程 EDA技术课程设计 题 目 闹钟系统设计 院 系 电子科学学院 专业班级  
2、; 电子信息工程 学生姓名 许鹤强 学生学号 090901140323 指导教师 &nb
3、sp; 矚慫润厲钐瘗睞枥庑赖。 2013年 3 月8日东北石油大学课程设计任务书课程 EDA技术课程设计题目 闹钟系统的设计专业 电子信息工程 姓名 许鹤强 学号 090901140323主要内容、基本要求、主要参考资料等主要内容:设计并制作一个带闹钟功能的24小时计时器。它包括以下几个组成部分:1、显示屏,由4 个七段数码管组成,用于显示当前时间(时:分)或设置的闹钟时间;2、数字键,实现09的输入,用于
4、输入新的时间或新的闹钟时间;3、TIME(时间)键,用于确定新的时间设置;4、ALARM(闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间;5、扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声基本要求:1、计时功能:这是本计时器设计的基本功能,每隔一分钟计时一次,并在显示屏上显示当前时间。2、闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。3、设置新的计时器时间:用户用数字键输入新的时间,然后按"TIME"键确认。在输入过程中,输入数字在显示屏上从右到左依次显示。例如,用户要设置新的时间12:34,则按顺序输入“1”,“2”,“3”,“4”,与之
5、对应,显示屏上依次显示的信息为:“1”,“12”,“123”,“1234"。如果用户在输入任意几个数字后较长时间内,例如5 s,没有按任何键,则计时器恢复到正常的计时显示状态。聞創沟燴鐺險爱氇谴净。主要参考资料:1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限 2013.3.8 指导教师
6、 专业负责人 2013年 3月4日一、设计思想1.基本原理数字闹钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。秒计数器的计数时钟CLK为1Hz的标准信号。当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信
7、号时、分、秒的计时结果通过6个数码管来动态显示。数字闹钟除了能够正常计时外,还应能够对时间进行调整。因此,通过模式选择信号md1、md2控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位, 分的进位;当数字闹钟处于调整时间状态时,被调的分或时会一秒一秒地增加;当数字钟处于闹钟定时状态时,可以设定小时和分;当计时到所设定的时刻时,speak将会被赋予时钟信号,持续1分钟。残骛楼諍锩瀨濟溆塹籟。设定按键时钟1Hz按键UPDN功能切换寄存器时钟10Hz时钟
8、计数寄存器闹钟设定寄存器闹钟控制电路模式切换数据选择蜂鸣器扫描技术字符译码扫描时钟320Hz数码显示2.设计框图酽锕极額閉镇桧猪訣锥。二、 设计步骤和调试过程YESALARM_BUTTON LEDW2.0TIME_BUTTON SEG77.0CLK SOUND_ALARMRESETCLOCK1、总体设计电路彈贸摄尔霁毙攬砖卤庑。计时器的外部端口根据该数字闹钟的设计要求,我们可得到其外部端口如图所示。各个输入/输出端口的作用如下:(1
9、)CLK为外部时钟信号,RESET为复位信号。(2)当YES为高电平时(YES=1),表示用户选择了某个预置数字。(3)当ALARM_BUTTON为高电平时,表示用户按下ALARM键。(4)当TIME_BUTTON为高电平时,表示用户按下TIME键。(5)SEG7是数据动态扫描显示的公共八段数码显示管驱动端,而LEDW则是数码管的位选择端,它经过外接的38译码器译码后接数码管的公共端COM。謀荞抟箧飆鐸怼类蒋薔。(6)SOUND_ALARM用于控制扬声器发声,当SOUND_ALARM = 1时,扬声器发出蜂鸣,表示到了设定的闹钟时间。厦礴恳蹒骈時盡继價骚。2、模块设计和相应模块程序1) 秒计数
10、模块SECOND60进制,带有进位和清零功能的,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO。茕桢广鳓鯡选块网羈泪。2) 分计数模块MINUTE60进制,带有进位和置数功能的,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO。鹅娅尽損鹌惨歷茏鴛賴。3) 时计数模块HOUR24进制,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位。4) 扫描模块SELTIME输入为秒(含个十位)、分、时、扫描时钟CLK1K,输出为D和显示控制信号SEL。5) 整点报时功能模块ALERT输入为分秒信号,输出为高频声控Q1K和Q500。6) 译码
11、显示功能模块DISPLAY输入为D,输出为Q秒模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,clr:in std_logic;sec1,sec0:out std_logic_vector(3 downto 0);co:out std_logic);end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector
12、(3 downto 0);Beginif clr='1' thencnt1:="0000"cnt0:="0000"elsif clk'event and clk='1' thenif cnt1="0101" and cnt0="1000" thenco<='1'cnt0:="1001"elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000"if
13、 cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000"co<='0'end if;end if;end if;sec1<=cnt1;sec0<=cnt0; 3="" end="" library="" use="" entity="" minute="" is="" en:in="" min0:out="&qu
14、ot; downto="" co:out="" architecture="" min="" of="" begin="" variable="" if="" event="" and="" clk="1" then="" en="1" cnt1="0010" cnt0="" cnt0:="
15、;0000" elsif="" else="" cnt1:="0000" hour="" h0:out="" hour_arc="">="1001" thencnt1:=cnt1+1;cnt0:="0000"else cnt0:=cnt0+1;end if;end if;end if;h1<=cnt1;h0<=cnt0;end process;end hour_arc;扫描模块程序:library ieee;
16、use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity SELTIME isport(clk:in std_logic;sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);籟丛妈羥为贍偾蛏练淨。daout:out std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);end SELTIME;architecture fu
17、n of SELTIME issignal count:std_logic_vector(2 downto 0);beginsel<=count;process(clk)beginif(clk'event and clk='1') thenif(count>="101") thencount<="000"elsecount<=count+1; end="" case="" count="" is="">daout<=
18、>daout<=>daout<=>daout<=>daout<=h0; when="" others="">daout<=h1; 3="" 6="" end="" library="" use="" entity="" display="" is="" d:in="" downto="" q:out
19、="" architecture="" disp_are="" of="" begin="" case="" d="">q<="0111111">q<="0000110">q<="1011011">q<="1001111">q<="1100110">q<="1101101&qu
20、ot;>q<="1111101">q<="0100111">q<="1111111" when="" others="">q<="1101111"end case;end process;end disp_are;定时闹钟模块程序:library ieee;use ieee.std_logic_1164.all;entity ALERT isport(m1,m0,s1,s0:in std_logic_vector(3 downt
21、o 0);clk:in std_logic;q500,qlk:out std_logic);end ALERT;architecture sss_arc of ALERT isbeginprocess(clk)beginif clk'event and clk='1' thenif m1="0101" and m0="1001" and s1="0101" thenif s0="0001" or s0="0011" or s0="0101" or s0
22、="0111" then預頌圣鉉儐歲龈讶骅籴。q500<='1'elseq500<='0'end if;end if;if m1="0101" and m0="1001" and s1="0101" and s0="1001" then渗釤呛俨匀谔鱉调硯錦。qlk<='1'elseqlk<='0'end if;end if;end process;end sss_arc;3、仿真及仿真结果秒模块仿真波形分模块
23、仿真波形时模块仿真波形扫描模块仿真波形显示模块仿真波形定时闹钟模块仿真波形4、实验调试结果为验证所设计程序是否正确,将程序下载进行硬件测试。在Quartus开发环境中进行管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。最终可以看到时、分、秒正常显示。铙誅卧泻噦圣骋贶頂廡。三、结论及心得体会本次课程设计的完成令我受益匪浅,通过对数字闹钟的设计,让我学会了初步掌握了简单课程设计的分析方法。最重要的是增强了动手能力和根据自己所学需要查阅资料的能力,以及自己分析和解决问题的能力,整个制作的过程中,它促进了同学之间的相互沟通,也让我在自己的专业知识的学习过程中,更多的,更好的学习一门知识,用
24、于以后的实践应用中,做这个数字钟的设计中包含了很多不同功能的程序,让我在其中学到了一些程序的中的思路,特别一步一步去把错误的程序改正确是一种很有成就感的事,这样让我学到了更多的知识,同时使我对所学知识有了更新的认识和更大的兴趣。擁締凤袜备訊顎轮烂蔷。参考资料1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 阎石主编.数字电子技术基础. 北京:高教出版社,2003.3 侯继红, 李向东主编.EDA实用技术教程. 北京:中国电力出版社,2004.1东北石油大学课程设计成绩评价表课程名称EDA技术课程设计题目名称闹钟系统设计学生姓名许鹤强学号090901140323指导教师
25、姓名职称序号评价项目指 标满分评分1工作量、工作态度和出勤率按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。202课程设计质量课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。453创新工作中有创新意识,对前人工作有一些改进或有一定应用价值。54答辩能正确回答指导教师所提出的问题。30总分评语:指导教师: 2013年 3 月 11 日贓熱俣阃歲匱阊邺镓騷。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100