版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连理工大学本科实验报告题目:数字钟课程名称:数字电路课程设计学院(系): 电子信息工程 专 业: 电子 班 级: 电子1301班 学生姓名: 陈冠谋 学 号: 201383022 完成日期:2015年7月18日 成 绩: 2014 年 7 月 18 日注意:本页要求放在实验报告第一页课程设计得分表考 勤课程设计50分考试40分作业合计最后得分 一、数字钟课程设计要求:1、设计一个具有时、分、秒的十进制数字显示(小时从0023)计时器。 2、整点报时。两种方法任选其一:发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”
2、的信号,此信号结束即达到整点。“嘟”是500hz左右的频率输出,“嘀”是1000hz左右的频率输出通过led闪烁实现,闪烁频率及花型可自己设计并在这里说明。3、手动校时、校分、校秒。4、定时与闹钟功能,能在设定的时间发出闹铃声。 5、设计一个秒表,显示1%秒到60秒、手动停止。6、设计一个倒计时,显示小时、分钟、秒。7、其他创新。第1题25分,其他每题5分二、课程设计考试(40分,每题分):考试题目: 1、 实体名2、 计数器3、 异步清零4、 进位输出5、 仿真图6、 数码管输出7、 分频8、 元件例化9、 引脚分配10、下载一、设计要求1、设计一个数字钟,能够显示当前时间,分别用6个数码管
3、显示小时、分钟、秒钟的时间,秒针的计数频率为1hz,可由系统脉冲分频得到。2、整点报时,可通过led闪烁实现,闪烁频率及花型可自己设计。3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由led闪烁实现。二、设计分析及系统方案设计数字计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。秒信号送入计时器进行计数,把累积的结果以时、分、秒、的数字显示出来。时显示由二十四进制计
4、数器、译码器、显示器构成,分、秒 显示由六十进制计数器、译码器、显示器构成。原理框图如下:显示器 显示器 显示器 显示器 显示器 显示器译码器译码器译码器译码器译码器译码器 十进制 计数器 六进制 计数器 十进制 计数器 六进制 计数器 十进制 计数器 三进制 计数器时十位 时个位 分十位 分个位 秒十位 秒个位 分频器 晶振三、系统以及模块硬件电路设计系统的管脚配置如下表所示:四、系统的vhdl设计1.系统所用的库:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_log
5、ic_arith.all;2.系统顶层实体名及内容entity time isport(clk,rst,stop,pls,plm,plh:in std_logic; alarmstart:in std_logic; p,q,r,t,u,v:out std_logic_vector(6 downto 0);-时钟数码管输出 w,x:out std_logic_vector(6 downto 0);-闹钟小时数码管输出 y,z:out std_logic_vector(3 downto 0);-闹钟分钟输出 alarm:out std_logic;-闹钟开关 reptime:out std_log
6、ic);-清零end;architecture data of time is signal clk1s,clk1sp,clk10s,clk1m,clk1mp,clk10m,clk1h,clk1hp,rep:std_logic; signal a,b,c,d,e,f:std_logic_vector(3 downto 0); signal alarmstart1:std_logic; signal alarm1m,alarm10m,alarm1h,alarm10h:std_logic_vector(3 downto 0);begin3.时钟部分process(stop) begin case
7、stop is when '0'=>clk1sp<=clk1s; when others =>clk1sp<=pls; end case;end process;process(stop) begin case stop is when '0'=>clk1mp<=clk1m; when others =>clk1mp<=plm; end case;end process;process(stop) begin case stop is when '0'=>clk1hp<=clk1h; w
8、hen others =>clk1hp<=plh; end case;end process;process(clk,rst) variable num:integer range 0 to 49999999; begin if rst='0' then num:=0; elsif rising_edge(clk) then if num=49999999 then num:=0; else num:=num+1; end if; if num<25000000 then clk1s<='0' else clk1s<='1&
9、#39; end if; end if;end process;4.时钟校时部分 process(clk1sp,rst) begin if rst='0' then a<="0000" elsif clk1sp'event and clk1sp='1' then if a="1001" then a<="0000" else a<=a+1; end if;end if; if a="0000" then clk10s<='1' else
10、 clk10s<='0' end if; end process;process(clk10s,rst) begin if rst='0' then b<="0000" elsif clk10s'event and clk10s='1' then if b="0101" then b<="0000" else b<=b+1; end if; end if; if b="0000" then clk1m<='1' e
11、lse clk1m<='0' end if;end process;process(clk1mp,rst) begin if rst='0' then c<="0000" elsif clk1mp'event and clk1mp='1' then if c="1001" then c<="0000" else c<=c+1; end if; end if; if c="0000" then clk10m<='1'
12、 else clk10m<='0' end if; end process; process(clk10m,rst) begin if rst='0' then d<="0000" elsif clk10m'event and clk10m='1' then if d="0101" then d<="0000" else d<=d+1; end if; end if; if d="0000" then clk1h<='1&
13、#39; else clk1h<='0' end if;end process;process(clk1hp,rst) begin if rst='0' then e<="0000"f<="0000" elsif clk1hp'event and clk1hp='1' then if e="1001" then e<="0000"f<=f+1; elsif e="0011" and f="0010&q
14、uot; then e<="0000"f<="0000" else e<=e+1; end if; end if;end process;5.整点报时部分process(clk1s)beginif clk1s'event and clk1s='1' then if c="0000" and d="0000" then if (b="0000" and a="0000") or (b="0000" and a=&qu
15、ot;0100") or (b="0000" and a="0010") then rep<='1' else rep<='0' end if; else rep<='0' end if;end if;reptime<=rep;end process;6.设置闹钟部分process(plm,alarmstart)begin if alarmstart='1' then if plm'event and plm='1' then if
16、alarm1m="1001" then alarm1m<="0000" if alarm10m="0101" then alarm10m<="0000" else alarm10m<=alarm10m+1; end if; else alarm1m<=alarm1m+1; end if; end if; else alarm1m<=alarm1m;alarm10m<=alarm10m; end if;y<=alarm1m;z<=alarm10m;end process
17、;process(plh,alarmstart)begin if alarmstart='1' then if plh'event and plh='1' then if alarm1h="1001" then alarm1h<="0000"alarm10h<=alarm10h+1; elsif alarm1h="0011" and alarm10h="0010" then alarm1h<="0000"alarm10h<=&quo
18、t;0000" else alarm1h<=alarm1h+1; end if; end if; else alarm1h<=alarm1h;alarm10h<=alarm10h; end if;end process;7.时钟与闹钟时间对比产生闹钟信号process(clk1s)begin if alarmstart='1' then if clk1s'event and clk1s='1' then if (c=alarm1m and d=alarm10m and e=alarm1h and f=alarm10h) the
19、n alarmstart1<='1' else alarmstart1<='0' end if; alarm<=alarmstart1; end if; else alarm<='0' end if; end process;8.数码管显示部分process(a)begin case a is when "0000"=>p<="1000000" when "0001"=>p<="1111001" when "0
20、010"=>p<="0100100" when "0011"=>p<="0110000" when "0100"=>p<="0011001" when "0101"=>p<="0010010" when "0110"=>p<="0000010" when "0111"=>p<="1111000"
21、when "1000"=>p<="0000000" when others=>p<="0010000"end case;end process;process(b)begin case b is when "0000"=>q<="1000000" when "0001"=>q<="1111001" when "0010"=>q<="0100100" when
22、 "0011"=>q<="0110000" when "0100"=>q<="0011001" when "0101"=>q<="0010010" when "0110"=>q<="0000010" when "0111"=>q<="1111000" when "1000"=>q<="000000
23、0" when others=>q<="0010000"end case;end process;process(c)begin case c is when "0000"=>r<="1000000" when "0001"=>r<="1111001" when "0010"=>r<="0100100" when "0011"=>r<="0110000&qu
24、ot; when "0100"=>r<="0011001" when "0101"=>r<="0010010" when "0110"=>r<="0000010" when "0111"=>r<="1111000" when "1000"=>r<="0000000" when others=>r<="0010000&
25、quot;end case;end process;process(d)begin case d is when "0000"=>t<="1000000" when "0001"=>t<="1111001" when "0010"=>t<="0100100" when "0011"=>t<="0110000" when "0100"=>t<="00
26、11001" when "0101"=>t<="0010010" when "0110"=>t<="0000010" when "0111"=>t<="1111000" when "1000"=>t<="0000000" when others=>t<="0010000"end case;end process;process(e)begin ca
27、se e is when "0000"=>u<="1000000" when "0001"=>u<="1111001" when "0010"=>u<="0100100" when "0011"=>u<="0110000" when "0100"=>u<="0011001" when "0101"=>u<=
28、"0010010" when "0110"=>u<="0000010" when "0111"=>u<="1111000" when "1000"=>u<="0000000" when others=>u<="0010000"end case;end process;process(f)begin case f is when "0000"=>v<=&quo
29、t;1000000" when "0001"=>v<="1111001" when "0010"=>v<="0100100" when "0011"=>v<="0110000" when "0100"=>v<="0011001" when "0101"=>v<="0010010" when "0110"=&g
30、t;v<="0000010" when "0111"=>v<="1111000" when "1000"=>v<="0000000" when others=>v<="0010000"end case;end process; process(alarm1h)begin case alarm1h is when "0000"=>w<="1000000" when "0001"=>w<="1111001" when "0010"=>w<="0100100" when "0011"=>w<="0110000" when "0100"=>w<="0011001" when "0101"=>w<="0010010&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年种植用种子购销具体合同版B版
- 2024无中介房屋买卖合同二零二四年度物业费缴纳说明范本3篇
- 二零二五年度出租车司机招聘与解聘合同3篇
- 2025关于档案保管合同范本
- 2024暖气安装与用户满意度调查合同2篇
- 2025版酒店厨房油烟排放处理与达标服务合同3篇
- 2025年度物业安全防范与监控服务承包合同3篇
- 2024版建筑行业联合施工合作合同版
- 2024年甲乙双方关于宣纸购销的权益转让合同
- 2025装饰建材购销合同
- 人教版六年级数学上册典型例题系列之第三单元分数除法应用题部分拓展篇(原卷版)
- 课本含注音的注释汇总 统编版语文八年级上册
- 英语答辩问题万能模板
- 胃癌的外科治疗
- 混凝土小路施工方案
- 医师定考的个人述职报告
- 施工现场人员授权书-模板
- 环境保护水土保持保证体系及措施
- 特种设备锅炉日管控、周排查、月调度主要项目及内容表
- 石碑施工方案
- 地下室顶板预留洞口施工方案标准版
评论
0/150
提交评论