4x4矩阵键盘设计Verilog矩阵式键盘控制,视频/代码

名称:4x4矩阵键盘设计Verilog矩阵式键盘控制

软件:Quartus

语言:Verilog

代码功能:

键盘控制电路设计,设计一个4x4矩阵式键盘控制电路,并实现按键的显示。

演示视频:4x4矩阵键盘设计Verilog矩阵式键盘控制_Verilog/VHDL资源下载

代码下载:

4x4矩阵键盘设计Verilog矩阵式键盘控制_Verilog/VHDL资源下载名称:4x4矩阵键盘设计Verilog矩阵式键盘控制(代码在文末付费下载)软件:Quartus语言:Verilog代码功能:键盘控制电路设计,设计一个4x4矩阵式键盘控制电路,并实现按键的显示。演示视频:部分代码展示module key_4x4 ( clk_500KHz,//500KHZ reset, //低电平复位L_row, //行 H_col, //列 display_licon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=192

部分代码展示

module key_4x4 
( 
clk_500KHz,//500KHZ 
reset,       //低电平复位
L_row,   //行 
H_col,   //列 
display_led8//数码管显示
); 
 
input clk_500KHz;
input reset;  
input [3:0] L_row;//行
output [3:0] H_col;//列
output [8:0] display_led8;//[7:0]:a,b,c,d,e,f,g,an0 
 
reg [3:0] H_col=4'd0; 
reg [7:0] display_led8=8'd0; 
parameter s_L_all=3'd0;
parameter s_L_row1=3'd1;
parameter s_L_row2=3'd2;
parameter s_L_row3=3'd3;
parameter s_L_row4=3'd4;
parameter s_LH=3'd5;
 
reg [2:0] state=s_L_all;  //状态标志 
reg key_flag=0;   //按键标志位 
reg [3:0] H_col_reg=4'd0;  //寄存扫描列值 
reg [3:0] L_row_reg=4'd0;//寄存扫描行值 
/************************************************************************ 
逐行扫描原理 
************************************************************************/ 
always @(posedge clk_500KHz or negedge reset) 
if(!reset)  
begin  
H_col<=4'b0000; 
H_col_reg<=4'b0000;   
L_row_reg<=4'b0000;  
state<=s_L_all; 
end 
else  
begin  
case (state) 
s_L_all:begin 
H_col[3:0]<=4'b0000; 
key_flag<=1'b0; 
if(L_row[3:0]!=4'b1111)  
begin  
state<=s_L_row1; 
H_col[3:0]<=4'b0111;//有键按下,扫描第一行 
end  
else  
state<=s_L_all; 
end  
s_L_row1:begin 
if(L_row[3:0]!=4'b1111)  
begin  
state<=s_LH;//判断是否是第一行 
end    
else   
begin  
state<=s_L_row2; 
H_col[3:0]<=4'b1011;  //扫描第二行 
end 
end  
s_L_row2:begin     
if(L_row[3:0]!=4'b1111)  
begin  
state<=s_LH;//判断是否是第二行

设计文档:

4x4矩阵键盘设计.doc

1.要求

2.键盘电路

其中H0~H3为FPGA输出,L0~L3为FPGA输入,采用行扫描法。

在上电默认情况下,L[3:0] =1111,因为上拉了3.3V,而默认情况下H[3:0]为低电平;一旦有某一个按键被按下,则对应L会拉低。因此可以通过对每一行H输出的控制,来检索是哪一个按键被按下了。

3.工程文件

4.程序代码

5.程序综合编译

6.RTL图

7.状态机图

8.仿真

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值