⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time1.v

📁 此设计采用Verilog HDL硬件语言设计,在掌宇开发板上实现. 将整个电路分为两个子模块
💻 V
字号:
// --------小时、分钟和秒计时子模块 --------//
// 采用同步时钟计时,此程序是按秒、分、小时计时的
module time1(clk,reset,start,reg1,reg2,reg3,reg4,reg5,reg6);
  input clk,reset,start;
  output[3:0] reg1,reg2,reg3,reg4,reg5,reg6; 
  reg[3:0] reg1,reg2,reg3,reg4,reg5,reg6; 

  reg[7:0] sec,min,hour;   //不必采用re1~reg6,可直接将sec,min,hour作为输出信号
  reg started;
  always @(posedge clk or posedge reset or posedge start)
    begin
       if(reset)                    // 复位
         begin
         sec<=0;min<=0;hour<=0;reg1<=0;started<=0;
         reg2<=0;reg3<=0;reg4<=0;reg5<=0;reg6<=0;
         end
       else if(start) started<=1; 
       if(started)               // 若已开始计数
         begin
           if(sec[3:0]==9)                      // ------(1)秒计时
             begin                //若秒个位为9
               sec[3:0]<=0;
               sec[7:4]<=sec[7:4]+1;
             end
           else sec[3:0]<=sec[3:0]+1;            
           if(sec==8'h59)        // 若计到59s
             begin
               sec[7:0]<=0;
               min[3:0]<=min[3:0]+1;
             end
              
           if(min[3:0]==9)                       // ------(2)分计时   
             begin                 // 若分低位为9
               if(sec==8'h59 )     // 若计到59s
                 begin 
                   min[3:0]<=0;
                   min[7:4]<=min[7:4]+1;
                 end
             end
                         
           if(min==8'h59)          // 若计到59分
             begin 
               if( sec==8'h59)     // 且计到59s
                 begin
                   sec[7:0]<=0; 
                   min[7:0]<=0;
                   if(hour[7:0]==8'h23)        // ------(3)小时计时
                     hour[7:0]<=0;                     
                   else if(hour[3:0]==9)
                     begin
                       hour[3:0]<=0;
                       hour[7:4]<=hour[7:4]+1;                     
                     end
                   else hour[3:0]<=hour[3:0]+1;
                 end
             end                
              
           reg1[3:0]<=hour[7:4];
           reg2[3:0]<=hour[3:0];
           reg3[3:0]<=min[7:4];
           reg4[3:0]<=min[3:0];
           reg5[3:0]<=sec[7:4];
           reg6[3:0]<=sec[3:0];  
         end
    end      
endmodule              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -