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

📄 clkscan3.v

📁 此设计采用Verilog HDL硬件语言设计,在掌宇开发板上实现. 将整个电路分为两个子模块
💻 V
字号:
//数码管扫描显示电路之——实验内容3

module clkscan3(clk,sec,min,hour,scan_data,scan_en);
  input clk;
  input[7:0] sec,min,hour; // 秒、分、时输入信号
  output[3:0] scan_data;
  output[6:1] scan_en;     // 分别驱动各数码管共阴极引脚SC6~SC1
  reg[3:0] scan_data;
  reg[6:1] scan_en;  
  
  reg[2:0] state;          // 状态机,s6~s1为state的6个状态,分别用于控制scan_en[6:1]
  parameter
    s1=3'b001,
    s2=3'b010,
    s3=3'b011,
    s4=3'b100,
    s5=3'b101,
    s6=3'b110;
  
  always @(posedge clk)
    begin
 	  if(state==s6) state=s1;        // (1)状态机的状态转移
	  else state=state+1;

      case(state)                    // (2)产生七段码数码管的输入信号和使能信号
        s1:begin scan_data=hour[7:4];scan_en=1;end // 在s1状态下,DP1亮,显示小时高位
        s2:begin scan_data=hour[3:0];scan_en=2;end // 在s2状态下,DP2亮,显示小时低位
        s3:begin scan_data=min[7:4];scan_en=4;end
        s4:begin scan_data=min[3:0];scan_en=8;end
        s5:begin scan_data=sec[7:4];scan_en=16;end
        s6:begin scan_data=sec[3:0];scan_en=32;end// 在s6状态下,DP6亮,显示秒低位
        default:state=s1;                         // 默认状态为s1
       endcase
    end
endmodule

⌨️ 快捷键说明

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