?? clkscan.v
字號:
//s8~s1為state的8個狀態,分別用于控制scan_en[8:1]
`define s1 3'd0
`define s2 3'd1
`define s3 3'd2
`define s4 3'd3
`define s5 3'd4
`define s6 3'd5
module clkscan(clk, reset, scan_en, data, second, minute, hour);
input clk, reset;
input[7:0] second, minute, hour;
output[8:1] scan_en;
output[3:0] data;
reg[8:1] scan_en;
reg[3:0] data;
reg[2:0] state;
always @(negedge clk or negedge reset )
begin
if(!reset) //① 異步復位(注意復位時使數碼管1一直點亮)
begin
state = `s1;
scan_en='b00000001;
data = 0;
end
else //② 若按下startn按鈕
// 則進行狀態機的狀態轉移
// 并產生串行掃描使能信號
begin
case(state)
`s1:begin state = `s2;scan_en='b00000010;data=second/10;end
`s2:begin state = `s3;scan_en='b00001000;data=minute%10;end
`s3:begin state = `s4;scan_en='b00010000;data=minute/10;end
`s4:begin state = `s5;scan_en='b01000000;data=hour%10;end
`s5:begin state = `s6;scan_en='b10000000;data=hour/10;end
`s6:begin state = `s1;scan_en='b00000001;data=second%10;end
default:begin state = `s1;scan_en='b00000001;data=0;end
endcase
// 掃描數據計數器加1計數
end
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -