keypress_det.v

来自「键盘控制电路」· Verilog 代码 · 共 44 行

V
44
字号
//----------------------------------------
//Detect Keyboard pression 
//Filename : keypress_det
//----------------------------------------
module keypress_det(SCAN_CODE, ROW, COLUMN, PRESSIN, PRESSOUT, REAL_code);
input [1:0] SCAN_CODE;
input [3:0] ROW;
input PRESSIN;
output [3:0] COLUMN;
output [3:0] REAL_code;
output PRESSOUT;

reg [3:0] COLUMN;
reg [3:0] REAL_code;
reg [3:0] ROWin;

always @ (SCAN_CODE or ROW)
 begin 
   case (SCAN_CODE)
    2'b00 : COLUMN = 4'b1110;
    2'b01 : COLUMN = 4'b1101;
    2'b10 : COLUMN = 4'b1011;
    2'b11 : COLUMN = 4'b0111;
    default : COLUMN = 4'b1111;
   endcase

   ROWin = ROW;
   if (PRESSIN ==1'b1)
    begin
     if (ROWin[0]==1'b0)
	  REAL_code = {SCAN_CODE+2'b11, 2'b00};
	if (ROWin[1]==1'b0)
	  REAL_code = {SCAN_CODE+2'b11, 2'b01};
 	if (ROWin[2]==1'b0)
	  REAL_code = {SCAN_CODE+2'b11, 2'b10};
 	if (ROWin[3]==1'b0)
	  REAL_code = {SCAN_CODE+2'b11, 2'b11};
    end
 end
 assign PRESSOUT = &ROWin;
endmodule


⌨️ 快捷键说明

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