资源描述:
《多功能数字钟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、多功能电子钟一.程序功能:1.计时,小时能实现12翻1和24翻1的切换2.校时,通过按键使小时(或分钟)与秒同步计数来实现校时3.整点报时,当小时为12翻1时,实现在整点时报警器响与小时相同的次数,当小时为24翻1时,实现在整点时报警器响5次(每回报警最后一次响的频率为1khz,前面都为500hz)4.闹钟,通过设定一个时间,在此时间点时报警器报警二.程序模块:1.主模块:moduleComplete_Clock(LED_Hr,LED_Min,LED_Sec,ALARM,_1kHzIN,Adj_Min_key,Adj_Hour_k
2、ey,Set_Min_key,Set_Hr_key,Ctrl_Bell,Mode,Ni);//主模块output[7:0]LED_Hr,LED_Min,LED_Sec;//输出到显示数码管的时分秒outputALARM;//输出到报警器的信号input_1kHzIN;//输入的时钟信号inputAdj_Min_key,Adj_Hour_key;//分钟和时钟校信号,当信号为高电平时分钟(或小时)与秒同步计数inputSet_Hr_key,Set_Min_key;//输入定时闹钟时间的使能信号,为高电平时有效inputCtrl_Be
3、ll;//闹钟控制信号,为高电平时闹钟信号才有效inputMode;//mode为低电平时数码管显示正常计时时间,为高电平时显示定时闹钟时间inputNi;//小时模式信号,为低电平时为12翻1模式,为高电平时为24翻1模式supply1Vdd;//定义高电平信号wire[7:0]LED_Hr,LED_Min,LED_Sec;wire[7:0]Hour,Minute,Second;wireMinL_EN,MinH_EN,Hour_EN;//使能信号,用于控制时分的计数wire_1Hz,_500Hz;//分频后得到的1Hz和500H
4、z时钟信号regALARM_Radio;//整点报时信号wireALARM_Clock;//闹钟报警信号wire[7:0]Set_Hr,Set_Min;//闹钟报警时钟和分钟时间wireHr_H_EQU,Hr_L_EQU,Min_H_EQU,Min_L_EQU;//闹钟时间与正常时间比较后输出信号Divided_FrequencyU0(_1Hz,_500Hz,Vdd,Vdd,_1kHzIN);//用1kHz信号分频得到500Hz和1Hz信号//开始秒计时counter10U1(Second[3:0],Vdd,Vdd,_1Hz);c
5、ounter6U2(Second[7:4],Vdd,(Second[3:0]==4'h9),_1Hz);assignMinL_EN=Adj_Min_key?Vdd:(Second==8'h59);assignMinH_EN=(Adj_Min_key&&(Minute[3:0]==4'h9))(Minute[3:0]==4'h9)&&(Second==8'h59);//开始分计时counter10U3(Minute[3:0],Vdd,MinL_EN,_1Hz);counter6U4(Minute[7:4],Vdd,MinH_EN,_
6、1Hz);assignHour_EN=Adj_Hour_key?Vdd:((Minute==8'h59)&&(Second==8'h59));//开始时计时counter24U5(Hour[7:4],Hour[3:0],Vdd,Hour_EN,_1Hz,Ni);//整点报时,12翻1时报时次数跟小时点数相同always@(MinuteorSecondorHour)if(Minute==8'h0&&Hour==8'h01&&Ni==0)case(Second)8'h0:ALARM_Radio=_1kHzIN;default:ALAR
7、M_Radio=1'b0;endcaseelseif(Minute==8'h0&&Hour==8'h02&&Ni==0)case(Second)8'h2:ALARM_Radio=_500Hz;8'h0:ALARM_Radio=_1kHzIN;default:ALARM_Radio=1'b0;endcaseelseif(Minute==8'h0&&Hour==8'h03&&Ni==0)case(Second)8'h4,8'h2:ALARM_Radio=_500Hz;8'h0:ALARM_Radio=_1kHzIN;default:A
8、LARM_Radio=1'b0;endcaseelseif(Minute==8'h0&&Hour==8'h04&&Ni==0)case(Second)8'h2,8'h4,8'h6:ALARM_Radio=_500Hz;8'h0:ALARM_Radi