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

📄 key.v

📁 这是一个凌阳单片机控制的红外键盘的控制程序
💻 V
字号:
module KEY(KeyPulse,CLK,KeyCode);
input KeyPulse;
input CLK;
output [41:0] KeyCode;

reg [41:0] KeyCode;
reg [41:0] KeyCodeTemp;
reg [18:0] Count;
reg [5:0] SquNumber;
reg [1:0] Sign;

wire Pulse;

ChangeEdge a(CLK,KeyPulse,Pulse);

always	@(posedge CLK)
begin
	if(Pulse)
	begin
		Count <= 19'd0;
		if(Sign==0)//第一次进入
		begin
			Sign <= Sign+2'd1;
		end
		else//第一次进入后就将SIGN给你个恒大于0的数
		begin
			Sign <= 2'd1;
		end
		if(Sign>0)
		begin
			if(Count<100000)//为用户码或者数据码
			begin
				SquNumber <= SquNumber+6'd1;
				KeyCodeTemp <= KeyCodeTemp >> 1;
				
				if(Count<15000)//为0
				begin
					KeyCodeTemp[41] <= 1'b0;
				end
				else//为1
				begin
					KeyCodeTemp[41] <= 1'b1;	
				end
				
				if(SquNumber==41)//解码完毕
				begin
					SquNumber   <= 6'd0;
					KeyCode     <= KeyCodeTemp;
					KeyCodeTemp <= 42'd0;
					Sign <= 2'd0;
				end
				else//正在检测
				begin
				end
			end//if(Count<100000)
			else//为引导码
			begin
				SquNumber <= 6'd0;
			end	
		end//if(Sign>0)
		else
		begin
		end			
	end//if(Pulse)
	else//PULSE为低,即处于2个下降沿,计数测时间
	begin
		Count <= Count+19'd1;
	end	
end//always

endmodule										   					 

⌨️ 快捷键说明

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