差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
矩阵按键模块 [2017/05/26 11:19]
anran [小结]
矩阵按键模块 [2017/06/01 10:52]
anran [相关资料]
行 20: 行 20:
 通过上面的描述:在这一时刻只有K1、K2、K3、K4按键被按下,才会导致4根列线输出COL1=0、COL2=0、COL3=0、COL4=0,否则COL1=1、COL2=1、COL3=1、COL4=1,反之当FPGA检测到列线(COL1、COL2、COL3、COL4)中有低电平信号时,对应的K1、K2、K3、K4按键应该是被按下了。 通过上面的描述:在这一时刻只有K1、K2、K3、K4按键被按下,才会导致4根列线输出COL1=0、COL2=0、COL3=0、COL4=0,否则COL1=1、COL2=1、COL3=1、COL4=1,反之当FPGA检测到列线(COL1、COL2、COL3、COL4)中有低电平信号时,对应的K1、K2、K3、K4按键应该是被按下了。
  
-按照扫描的方式,一共分为4个时刻,分别对应4根行线中的一根拉低,4个时刻次循环,这样就完成了矩阵按键的全部扫描检测,我们在程序中以这4个时刻对应状态机的4个状态。+按照扫描的方式,一共分为4个时刻,分别对应4根行线中的一根拉低,4个时刻次循环,这样就完成了矩阵按键的全部扫描检测,我们在程序中以这4个时刻对应状态机的4个状态。
 至于循环的周期,根据我们基础教程里可知,按键抖动的不稳定时间在10ms以内,所以对同一个按键采样的周期大于10ms,这同样取20ms时间。20ms时间对应4个状态,每5分钟进行一次状态转换。 至于循环的周期,根据我们基础教程里可知,按键抖动的不稳定时间在10ms以内,所以对同一个按键采样的周期大于10ms,这同样取20ms时间。20ms时间对应4个状态,每5分钟进行一次状态转换。
 \\ \\
行 126: 行 126:
 \\  ​ \\  ​
 \\  ​ \\  ​
-====引脚分配==== + 
-------- +
-综合(synthesize)完成之后一定要配置FPGA的引脚到相应的外设,这样下载FPGA程序后才能达到我们想要的效果。 +
-\\ +
-我们使用PCLK充当程序中的clk_in,使用按键KEY1充当rst_n_in,col和row的引脚按照高低顺序分频,key_out可以分配给LED灯、三色灯、PMOD等FPGA控制输出的引脚上,通过观察或示波器测量检验设计 +
-\\ +
-{{ :​step_baseboard_v2.2_引脚分配.jpg?​1000 |}} +
-\\+
 ====小结==== ====小结====
 ------ ------
行 140: 行 134:
 如果你对Diamond软件的使用不了解,请参考这里:[[lattice_diamond的使用|Diamond的使用]]。 如果你对Diamond软件的使用不了解,请参考这里:[[lattice_diamond的使用|Diamond的使用]]。
  
- +====相关资料==== 
 +------ 
 +\\ 
 +使用[[STEP-MXO2第二代]]的矩阵按键程序: ​ 后续会有下载连接 ​ 待更新 
 +\\ 
 +使用[[STEP-MAX10]]的矩阵按键程序: ​ 后续会有下载连接 ​ 待更新 
 +\\