资源描述:
《《微波炉定时系统》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、微波炉定时器在开始具体设计之前,先对先对系统进行模块划分,具体划分如图1所示。图1系统模块划分一、各模块程序Top模块://Top:为顶层模块,包含三个模块:microwave,display和timer。//clk:为系统的同步时钟。//reset:定时器timer的复位控制端,如果复位为0,系统处于IDLE等待状态;为1时定时器timer开始计时。//test:为灯测信号,用于检查LED等是否正常;test为1,LED显示为8888.//cook_time:设置的加热时间。//set_time:加热时间设置确定信号。
2、如果set_time为1,cook_time将被加载到timer。//start_cook:开始加热确定信号。Start_cook为1时开始加热。Cook_time开始倒计时数秒。//min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led:为7段数码管译码器的输出信号,用来驱动LED灯。moduletop(clk,reset,test,set_time,start_cook,cook_time,min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_
3、led);inputclk,reset,test,set_time,start_cook;input[15:0]cook_time;output[6:0]min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led;wireclk,reset,test,set_time,start_cook;wire[15:0]cook_time,time_load;wire[6:0]min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led;wire[3:0]min
4、_msb_next,min_lsb_next,sec_msb_next,sec_lsb_next;microwavemicrowave(clk,reset,test,set_time,start_cook,done,cook_time,time_load,cook,load);timertimer(time_load,clk,cook,load,min_msb_next,min_lsb_next,sec_msb_next,sec_lsb_next,done);displaydisplay(min_msb_next,min
5、_lsb_next,sec_msb_next,sec_lsb_next,min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led);endmoduledisplay模块://display:为系统显示模块,使用七段led数码管显示倒计时时间。moduledisplay(min_msb_next,min_lsb_next,sec_msb_next,sec_lsb_next,min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led);input[3:
6、0]min_msb_next,min_lsb_next,sec_msb_next,sec_lsb_next;output[6:0]min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led;wire[3:0]min_msb_next,min_lsb_next,sec_msb_next,sec_lsb_next;wire[6:0]min_msb_led,min_lsb_led,sec_msb_led,sec_lsb_led;converterconvmm(min_msb_next[3],
7、min_msb_next[2],min_msb_next[1],min_msb_next[0],min_msb_led[0],min_msb_led[1],min_msb_led[2],min_msb_led[3],min_msb_led[4],min_msb_led[5],min_msb_led[6]);converterconvml(min_lsb_next[3],min_lsb_next[2],min_lsb_next[1],min_lsb_next[0],min_lsb_led[0],min_lsb_led[1]
8、,min_lsb_led[2],min_lsb_led[3],min_lsb_led[4],min_lsb_led[5],min_lsb_led[6]);converterconvsm(sec_msb_next[3],sec_msb_next[2],sec_msb_next[1],sec_msb_next[0],se