资源描述:
《数电实验数字钟上机报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.MAX+PlusII多功能数字钟设计..多功能数字钟设计一、实验目的1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;2.熟悉一种EDA软件使用;3.掌握Verilog设计方法;二、实验任务1.已知条件MAX+PlusII软件FPGA实验开发装置(该装置可以提供3路时钟信号和译码显示电路)基本功能具有“秒”、“分”、“时”计时功能,小时按24小时制计时。具有校时功能,能对“分”和“小时”进行调整2.扩展功能仿广播电台正点报时。在59分51秒、53秒、55秒、57秒、59秒发出音响结束时刻为整点。定时控制
2、,其时间自定;3.选做内容任意时刻闹钟自动报整点时数小时计数器改为12翻1..三、数字钟设计分析-功能框图四、设计编译1.设计输入moduletop_clock(Second,ap,CP,nCR,EN,Adj_Min,Adj_Hour,ctrlbell,sethrkey,setminkey,alarm,_1khz,_500hz,rhr,rmin);inputCP,nCR,EN,Adj_Min,Adj_Hour,ctrlbell,_1khz,_500hz,sethrkey,setminkey;output[7:0]rhr,rmi
3、n,Second;outputalarm;wire[7:0]set_hr,set_min,Hour,Minute;wirealarm_clock,alarm_r,alarm_r1;wire_1khz,_500hz,CP;outputap;reg[7:0]rhr,rmin,Second;supply1Vdd;wireMinL_EN,MinH_EN,Hour_EN,Ap;wirehrh_equ,hrl_equ,minh_equ,minl_equ;wiretime_equ;//Hour:Minute:Secondcountercou
4、nter10U1(Second[3:0],nCR,EN,CP);counter6U2(Second[7:4],nCR,(Second[3:0]==4'h9),CP);assignMinL_EN=Adj_Min?Vdd:(Second==8'h59);assignMinH_EN=(Adj_Min&&(Minute[3:0]==4'h9))
5、
6、(Minute[3:0]==4'h9)&&(Second==8'h59);counter10U3(Minute[3:0],nCR,MinL_EN,CP);..counter6U4(Minut
7、e[7:4],nCR,MinH_EN,CP);assignHour_EN=Adj_Hour?Vdd:((Minute==8'h59)&&(Second==8'h59));counter24U5(Hour[7:4],Hour[3:0],nCR,Hour_EN,CP,Ap);//若闹钟调整使能端开启,数码管显示闹铃设置时间,反之显示时钟时间。/*always@(setminkeyorsethrkey)case({setminkey,sethrkey})2'b11:beginrmin[7:0]=set_min[7:0];rhr[7:
8、0]=set_hr[7:0];end2'b10:beginrmin[7:0]=set_min[7:0];rhr[7:0]=Hour[7:0];end2'b01:beginrmin[7:0]=Minute[7:0];rhr[7:0]=set_hr[7:0];end2'b00:beginrmin[7:0]=Minute[7:0];rhr[7:0]=Hour[7:0];endendcase*///选择类型1always@(posedgeCP)if(setminkey)rmin[7:0]=set_min[7:0];elsermin[7
9、:0]=Minute[7:0];always@(posedgeCP)if(sethrkey)rhr[7:0]=set_hr[7:0];elserhr[7:0]=Hour[7:0];//或者选择类型2counter10UC0(set_min[3:0],Vdd,setminkey,CP);counter6UC1(set_min[7:4],Vdd,(set_min[3:0]==4'h9),CP);counter24SU2(set_hr[7:4],set_hr[3:0],Vdd,sethrkey,CP,ap);//comparatet
10、hesettimecomparatorSU4(hrh_equ,set_hr[7:4],Hour[7:4]);comparatorSU5(hrl_equ,set_hr[3:0],Hour[3:0]);comparatorSU6(minh_equ,set_min[7:4],Min