1、大连理工大学本科实验报告题目:数字钟课程名称: 数字电路课程设计 学院(系): 电子信息与电气工程学部 专 业: 电气工程及其自动化 班 级: 学生姓名: 学 号: 完成日期: 成 绩: 2017 年 1 月 7 日题目:数字钟1 设计要求1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。2、在整点进行提示,可通过LED闪烁实现,闪烁频率及花型可自己设计。3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提
2、示同样可以由LED闪烁实现。2 设计分析及系统方案设计2.1 系统状态转换因为数字钟成正常显示时间、闹钟、校时、秒表四个状态,所以可以选用两个开关来对其状态进行控制,当开关分别为00,01,10,11四种状态时,对应显示时间、修改时间、闹钟、秒表四种状态。显示时间修改时间,使用两个开关分别对位和数字更改闹钟,使用两个开关分别对位和数字进行更改秒钟,使用一个开关控制秒钟的开始和关闭四个状态000110112.2 时钟信号的建立该多功能数字钟系统需要两个时钟信号,分别为1Hz的信号为数字钟提供秒信号以及200Hz的检查信号。本设计选用50MHz信号,分别将其通过模25000000计数器和模1250
3、00计数器从而得到1Hz及200Hz信号。2.3 功能分析及其设计2.3.1时间显示功能当两个开关都处于低电平状态时,正常显示。 2.3.2 修改时间当sw1处于低电平状态,sw0处于高电平状态,进入当前时间修改功能。通过按键key0分别选择修改时、分或秒,通过按键key1对选择修改的时间进行+1操作。2.3.3 闹钟当sw1出于高电平状态,sw0出于低电平状态,进入闹铃功能。通过按键key0分别选择改变时、分或秒,通过按键key2对选择改变的时间进行+1操作,当数字钟到当前时间,LEDG0发光。2.3.4 秒表当sw1及sw0都处于高电平状态,进入秒表功能。通过按键key0进行秒表计时的开始
4、及暂停,通过按键key3对秒表进行清零。3系统以及模块硬件电路设计3.1 硬件原理图图3.1 系统示意图图3.2 按键电路图3.3 状态选择按键图3.4 闹钟使用的led3.2 管脚定义程序代码引 脚功能作用clkPIN_N2提供50MHz的时钟信号s1PIN_N25选择功能状态s2PIN_G26选择功能状态k1PIN_G26切换改变时间功能的时、分、秒;切换闹钟功能设置闹钟时间的时、分、秒;秒表功能的开始与暂停k2PIN_N23改变时间功能的+1k3PIN_P23闹钟功能设置闹钟时间的+1k4PIN_W26秒表功能的清零LEDPIN_AE22闹钟时间到来时指示dclkh10PIN_N9连接H
5、EX7,显示时高位dclkh11PIN_P9dclkh12PIN_L7dclkh13PIN_L6dclkh14PIN_L9dclkh15PIN_L2dclkh16PIN_L3dclkh20PIN_M4连接HEX6,显示时低位dclkh21PIN_M5dclkh22PIN_M3dclkh23PIN_M2dclkh24PIN_P3dclkh25PIN_P4dclkh26PIN_R2dclkm10PIN_R3连接HEX5,显示分高位dclkm11PIN_R4dclkm12PIN_R5dclkm13PIN_T9dclkm14PIN_P7dclkm15PIN_P6dclkm16PIN_T2dclkm20
6、PIN_T3连接HEX4,显示分低位dclkm21PIN_R6dclkm22PIN_R7dclkm23PIN_T4dclkm24PIN_U2dclkm25PIN_U1dclkm26PIN_U9dclks10PIN_W24连接HEX3,显示秒高位dclks11PIN_U22dclks12PIN_Y25dclks13PIN_Y26dclks14PIN_AA26dclks15PIN_AA25dclks16PIN_Y23dclks20PIN_Y24连接HEX2,显示秒低位dclks21PIN_AB25dclks22PIN_AB26dclks23PIN_AC26dclks24PIN_AC25dclks2
7、5PIN_V22dclks26PIN_AB234 系统的Verilog设计/顶层模块module clock(clk,dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2,s,h,state,s1,s2,k1,k2,k3,k4,LED);input clk;/声明输入端口,连接50M晶振input s1,s2;/声明输入端口,控制功能转换input k1,k2,k3,k4;/声明输入端口,连接按键,对功能内部进行设置output LED;/声明输出端口,连接LED,闹钟指示output s,h;/声明输出端口,为各功能提供秒信号output state;/声明输出
8、端口,表示当前状态output 6:0 dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2;/声明输出端口,连接数码管,reg 31:0 c,e;reg s,h;reg b;reg 1:0 state;wire 7:0 cs0,cm0,ch0,cs1,cm1,ch1,cs2,cm2,ch2,cs3,cm3,ch3;/分别连接四个状态的时分秒reg 7:0 clks,clkm,clkh,clks1,clkm1,clkh1;wire 6:0 dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2;reg 1:0 k,a,d;reg LED
9、;reg clkf;always(negedge k1) /检测k1beginif(state=2b01)beginif(k=2d2)k=2d0;elsek=k+1d1;endelse if(state=2b10)beginif(a=2d2)a=2d0;elsea=a+1d1;endelse if(state=2b11)beginb=b;endendalways(negedge k4)/检测k4beginif(state=2b11)beginif(d=1b1)d=1b0;elsed=d+1b1;endendalways(posedge clkf)/定义状态begincase(s1,s2) 2b
10、00:state=2d0; 2b01:state=2d1; 2b10:state=2d2; 2b11:state=2d3;default:state=2d0;endcaseendalways(posedge clk)/提供1Hz信号beginif(c=32d24999999)begins=s;h=h; c=1d0;endelsec=c+1d1;endalways(posedge clk)/提供200Hz信号beginif(e=32d125999)clkf=clkf;elsee=e+1b1;endalways(posedge clkf)/检验时间是否到设定的闹钟beginif(cs2=cs0&c
11、m2=cm0&ch2=ch0)LED=1b1;elseLED=1b0;endalways(posedge clkf)beginif(state=1b0)beginclks=cs0;clkm=cm0;clkh=ch0;endelse if(state=2d1)beginclks1=cs1;clkm1=cm1;clkh1=ch1;clks=cs0;clkm=cm0;clkh=ch0;endelse if(state=2d2)beginclks=cs2;clkm=cm2;clkh=ch2;endelse if(state=2d3)beginclks=cs3;clkm=cm3;clkh=ch3;end
12、endde2time u0(.cs0(cs0),.cm0(cm0),.ch0(ch0),.s(s),.state(state),.clkf(clkf),.clks1(clks1),.clkm1(clkm1),.clkh1(clkh1);de2timechange u1(.cs1(cs1),.cm1(cm1),.ch1(ch1),.state(state),.k2(k2),.k(k);de2alarm u2(.cs2(cs2),.cm2(cm2),.ch2(ch2),.a(a),.k3(k3),.state(state);de2timer u3(.cs3(cs3),.cm3(cm3),.ch3(
13、ch3),.b(b),.h(h),.clkf(clkf),.d(d);bdtransform u4(.clks(clks),.clkm(clkm),.clkh(clkh),.dclks1(dclks1),.dclks2(dclks2),.dclkm1(dclkm1),.dclkm2(dclkm2),.dclkh1(dclkh1),.dclkh2(dclkh2),.clkf(clkf);endmodule/正常时间显示模块module de2time(clks1,clkm1,clkh1,s,state,cs0,cm0,ch0,clkf);input s;input clkf;input clks
14、1,clkm1,clkh1;output cs0,cm0,ch0;input state;wire s;wire clkf;wire 7:0 clks1,clkm1,clkh1;wire 1:0 state;reg 7:0 cs0;reg 7:0 cm0;reg 7:0 ch0;always(posedge s)beginif(state=2d0|state=2d2|state=2d3)beginif(cs0=6b111011)begincs0=0;cm0=cm0+1b1;if(cm0=6b111011)begincm0=0;ch0=ch0+1b1;if(ch0=5b10111)beginch
15、0=0;endelse ;end else ;end elsebegincs0=cs0+1b1;endendelsebegincs0=clks1;cm0=clkm1;ch0=clkh1;endendendmodule/时间更改模块module de2timechange(cs1,cm1,ch1,state,k,k2);input state;input k;input k2;output cs1,cm1,ch1;wire 1:0 k;wire k2;wire 1:0 state;reg 7:0 cs1;reg 7:0 cm1;reg 7:0 ch1;always(negedge k2)begi
16、nif(state=2b01)beginif(k=1d0)beginif(cs1=6b111011)cs1=0;elsecs1=cs1+1b1;endelse if(k=1d1)beginif(cm1=6b111011)cm1=0;elsecm1=cm1+1b1;endelse if(k=2d2)beginif(ch1=5b10111)ch1=0;elsech1=ch1+1b1;endendendendmodule/闹钟功能模块module de2alarm(cs2,cm2,ch2,state,a,k3);input a;input k3;input 1:0 state;output 7:0
17、cs2,cm2,ch2;wire 1:0 a;wire k3;wire 1:0 state;reg 7:0 cs2,cm2,ch2;always(negedge k3)beginif(state=2b10)beginif(a=1d0)beginif(cs2=6b111011)cs2=0;elsecs2=cs2+1b1;endelse if(a=1d1)beginif(cm2=6b111011)cm2=0;elsecm2=cm2+1b1;endelse if(a=2d2)beginif(ch2=5b10111)ch2=0;elsech2=ch2+1b1;endendendendmodule/秒表
18、功能模块module de2timer(cs3,cm3,ch3,b,h,clkf,d);input b;input h;input d;input clkf;output 7:0 cs3,cm3,ch3;wire b;wire s;wire d;wire clkf;reg 7:0 cs3,cm3,ch3;always(posedge h)beginif(d=1b0)beginif(b=1b1)beginif(cs3=6b111011)begincs3=0;cm3=cm3+1b1;if(cm3=6b111011)begincm3=0;ch3=ch3+1b1;if(ch3=5b10111)begi
19、nch3=0;endelse ;end else ;end elsebegincs3=cs3+1b1;endendendelsecs3=0;cm3=0;ch3=0;endendmodule/将2进制转换为数码管输出module bdtransform(clks,clkm,clkh,dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2,clkf);input clks,clkm,clkh;input clkf;output dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2;wire 7:0 clks,clkm,clkh;wire c
20、lkf;reg 6:0 dclks1,dclks2,dclkm1,dclkm2,dclkh1,dclkh2;always(clkf)begincase(clks)6d0:dclks1,dclks2=14b00000010000001;6d1:dclks1,dclks2=14b00000011001111;6d2:dclks1,dclks2=14b00000010010010;6d3:dclks1,dclks2=14b00000010000110;6d4:dclks1,dclks2=14b00000011001100;6d5:dclks1,dclks2=14b00000010100100;6d6
21、:dclks1,dclks2=14b00000010100000;6d7:dclks1,dclks2=14b00000010001111;6d8:dclks1,dclks2=14b00000010000000;6d9:dclks1,dclks2=14b00000010000100;6d10:dclks1,dclks2=14b10011110000001;6d11:dclks1,dclks2=14b10011111001111;6d12:dclks1,dclks2=14b10011110010010;6d13:dclks1,dclks2=14b10011110000110;6d14:dclks1
22、,dclks2=14b10011111001100;6d15:dclks1,dclks2=14b10011110100100;6d16:dclks1,dclks2=14b10011110100000;6d17:dclks1,dclks2=14b10011110001111;6d18:dclks1,dclks2=14b10011110000000;6d19:dclks1,dclks2=14b10011110000100;6d20:dclks1,dclks2=14b00100100000001;6d21:dclks1,dclks2=14b00100101001111;6d22:dclks1,dcl
23、ks2=14b00100100010010;6d23:dclks1,dclks2=14b00100100000110;6d24:dclks1,dclks2=14b00100101001100;6d25:dclks1,dclks2=14b00100100100100;6d26:dclks1,dclks2=14b00100100100000;6d27:dclks1,dclks2=14b00100100001111;6d28:dclks1,dclks2=14b00100100000000;6d29:dclks1,dclks2=14b00100100000100;6d30:dclks1,dclks2=
24、14b00001100000001;6d31:dclks1,dclks2=14b00001101001111;6d32:dclks1,dclks2=14b00001100010010;6d33:dclks1,dclks2=14b00001100000110;6d34:dclks1,dclks2=14b00001101001100;6d35:dclks1,dclks2=14b00001100100100;6d36:dclks1,dclks2=14b00001100100000;6d37:dclks1,dclks2=14b00001100001111;6d38:dclks1,dclks2=14b0
25、0001100000000;6d39:dclks1,dclks2=14b00001100000100;6d40:dclks1,dclks2=14b10011000000001;6d41:dclks1,dclks2=14b10011001001111;6d42:dclks1,dclks2=14b10011000010010;6d43:dclks1,dclks2=14b10011000000110;6d44:dclks1,dclks2=14b10011001001100;6d45:dclks1,dclks2=14b10011000100100;6d46:dclks1,dclks2=14b10011
26、000100000;6d47:dclks1,dclks2=14b10011000001111;6d48:dclks1,dclks2=14b10011000000000;6d49:dclks1,dclks2=14b10011000000100;6d50:dclks1,dclks2=14b01001000000001;6d51:dclks1,dclks2=14b01001001001111;6d52:dclks1,dclks2=14b01001000010010;6d53:dclks1,dclks2=14b01001000000110;6d54:dclks1,dclks2=14b010010010
27、01100;6d55:dclks1,dclks2=14b01001000100100;6d56:dclks1,dclks2=14b01001000100000;6d57:dclks1,dclks2=14b01001000001111;6d58:dclks1,dclks2=14b01001000000000;6d59:dclks1,dclks2=14b01001000000100;endcasecase(clkm)6d0:dclkm1,dclkm2=14b00000010000001;6d1:dclkm1,dclkm2=14b00000011001111;6d2:dclkm1,dclkm2=14
28、b00000010010010;6d3:dclkm1,dclkm2=14b00000010000110;6d4:dclkm1,dclkm2=14b00000011001100;6d5:dclkm1,dclkm2=14b00000010100100;6d6:dclkm1,dclkm2=14b00000010100000;6d7:dclkm1,dclkm2=14b00000010001111;6d8:dclkm1,dclkm2=14b00000010000000;6d9:dclkm1,dclkm2=14b00000010000100;6d10:dclkm1,dclkm2=14b1001111000
29、0001;6d11:dclkm1,dclkm2=14b10011111001111;6d12:dclkm1,dclkm2=14b10011110010010;6d13:dclkm1,dclkm2=14b10011110000110;6d14:dclkm1,dclkm2=14b10011111001100;6d15:dclkm1,dclkm2=14b10011110100100;6d16:dclkm1,dclkm2=14b10011110100000;6d17:dclkm1,dclkm2=14b10011110001111;6d18:dclkm1,dclkm2=14b10011110000000
30、;6d19:dclkm1,dclkm2=14b10011110000100;6d20:dclkm1,dclkm2=14b00100100000001;6d21:dclkm1,dclkm2=14b00100101001111;6d22:dclkm1,dclkm2=14b00100100010010;6d23:dclkm1,dclkm2=14b00100100000110;6d24:dclkm1,dclkm2=14b00100101001100;6d25:dclkm1,dclkm2=14b00100100100100;6d26:dclkm1,dclkm2=14b00100100100000;6d2
31、7:dclkm1,dclkm2=14b00100100001111;6d28:dclkm1,dclkm2=14b00100100000000;6d29:dclkm1,dclkm2=14b00100100000100;6d30:dclkm1,dclkm2=14b00001100000001;6d31:dclkm1,dclkm2=14b00001101001111;6d32:dclkm1,dclkm2=14b00001100010010;6d33:dclkm1,dclkm2=14b00001100000110;6d34:dclkm1,dclkm2=14b00001101001100;6d35:dc
32、lkm1,dclkm2=14b00001100100100;6d36:dclkm1,dclkm2=14b00001100100000;6d37:dclkm1,dclkm2=14b00001100001111;6d38:dclkm1,dclkm2=14b00001100000000;6d39:dclkm1,dclkm2=14b00001100000100;6d40:dclkm1,dclkm2=14b10011000000001;6d41:dclkm1,dclkm2=14b10011001001111;6d42:dclkm1,dclkm2=14b10011000010010;6d43:dclkm1
33、,dclkm2=14b10011000000110;6d44:dclkm1,dclkm2=14b10011001001100;6d45:dclkm1,dclkm2=14b10011000100100;6d46:dclkm1,dclkm2=14b10011000100000;6d47:dclkm1,dclkm2=14b10011000001111;6d48:dclkm1,dclkm2=14b10011000000000;6d49:dclkm1,dclkm2=14b10011000000100;6d50:dclkm1,dclkm2=14b01001000000001;6d51:dclkm1,dcl
34、km2=14b01001001001111;6d52:dclkm1,dclkm2=14b01001000010010;6d53:dclkm1,dclkm2=14b01001000000110;6d54:dclkm1,dclkm2=14b01001001001100;6d55:dclkm1,dclkm2=14b01001000100100;6d56:dclkm1,dclkm2=14b01001000100000;6d57:dclkm1,dclkm2=14b01001000001111;6d58:dclkm1,dclkm2=14b01001000000000;6d59:dclkm1,dclkm2=
35、14b01001000000100;endcasecase(clkh)6d0:dclkh1,dclkh2=14b00000010000001;6d1:dclkh1,dclkh2=14b00000011001111;6d2:dclkh1,dclkh2=14b00000010010010;6d3:dclkh1,dclkh2=14b00000010000110;6d4:dclkh1,dclkh2=14b00000011001100;6d5:dclkh1,dclkh2=14b00000010100100;6d6:dclkh1,dclkh2=14b00000010100000;6d7:dclkh1,dc
36、lkh2=14b00000010001111;6d8:dclkh1,dclkh2=14b00000010000000;6d9:dclkh1,dclkh2=14b00000010000100;6d10:dclkh1,dclkh2=14b10011110000001;6d11:dclkh1,dclkh2=14b10011111001111;6d12:dclkh1,dclkh2=14b10011110010010;6d13:dclkh1,dclkh2=14b10011110000110;6d14:dclkh1,dclkh2=14b10011111001100;6d15:dclkh1,dclkh2=1
37、4b10011110100100;6d16:dclkh1,dclkh2=14b10011110100000;6d17:dclkh1,dclkh2=14b10011110001111;6d18:dclkh1,dclkh2=14b10011110000000;6d19:dclkh1,dclkh2=14b10011110000100;6d20:dclkh1,dclkh2=14b00100100000001;6d21:dclkh1,dclkh2=14b00100101001111;6d22:dclkh1,dclkh2=14b00100100010010;6d23:dclkh1,dclkh2=14b00
38、100100000110;endcaseendendmodule5 结论以及结果说明 正常显示时间秒钟模10该多功能数字钟系统在Quartus软件上进行调试仿真,后在DE2开发板上进行验证,最终完成设计。设计出的闹钟具有正常时间显示,时间修改,闹钟及秒表功能。但不足的是还可以加入液晶显示屏。6 心得体会,及对本课程的建议通过对本课程的学习,收获很多,主要是对Quartus的理解和使用,包括对于语言的运用,模块的设计,引脚的使用等 。并且希望实验课程最好设置在数电理论课程同时进行,会理解的更好。1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研
39、究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和