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

📄 time2.v

📁 此设计采用Verilog HDL硬件语言设计,在掌宇开发板上实现. 将整个电路分为两个子模块
💻 V
字号:
//=====数码管扫描显示电路定时计数子模块====//                
// 采用同步时钟计时,此程序是从最低位开始判断
module time2(clk,reset,start,sec,min,hour,day);
  input clk,reset,start;
  output[7:0] sec,min,hour;
  output day;
  reg[7:0] sec,min,hour;
  reg min_clk,h_clk,day;
  reg started;                    // 中间变量,用于将脉冲信号转变为电平信号       
  always @(posedge clk or posedge reset or posedge start)  
    begin   
      if(reset)                    // 异步复位
        begin
          sec=0;min=0;hour=0;started=0;   
        end
      else if(start) started=1;   // 按下start,则started为高电平
      if(started)                  // 若已开始计数     
        begin
	      if(sec[3:0]==9)                       // 秒低位是否为9?
 		    begin
		      sec[3:0]=0;
	          if(sec[7:4]==5)                   // 秒高位是否为5?                    
	            begin 
                  sec[7:4]=0;
                  if(min[3:0]==9)               // 分低位是否为9?   
                    begin    
                      min[3:0]=0;
                      if(min[7:4]==5)           // 分高位是否为5?
                        begin
                          min[7:4]=0;
                          if(hour[7:0]==8'h23)  // 是否计到23小时?
                            begin
                              hour=0;
                              day=1;            // 则向一日进位
                            end 
                          else 
                            begin
                              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; 
                              day=0;                // 否则日时钟为0                                             
                            end
                        end
                      else
                        min[7:4]=min[7:4]+1;
                    end
                  else
                    min[3:0]=min[3:0]+1;
                end
	          else sec[7:4]=sec[7:4]+1;
            end
          else 
            sec[3:0]=sec[3:0]+1;                
        end             
    end   	  
endmodule                               

⌨️ 快捷键说明

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