因仑“3+1”工程特种兵精英论坛

标题: 3+1键盘驱动学习 (Mini4020 + linux) [打印本页]

作者: 我爱因仑风    时间: 2016-5-18 22:37
标题: 3+1键盘驱动学习 (Mini4020 + linux)
贴一个自己的学习笔记,希望对需要的网友有帮助。欢迎拍砖。

目录:

实验环境        
键盘的实现        
  键盘原理图:        
  键盘使用引脚资源:        
  键盘原理分析:        
驱动分析        
  一、文件中包含的函数列表        
  二、函数层次关系        
  三、各函数分析        
      1、file_operations结构体        
      2、初始化工作        
      3、当有键被按下时发生了什么        
      4、当应用程序调用了read(fd,buf,2)时发生了什么        
程序        


(原文件名:3+1键盘原理图.jpg)

键盘原理分析:

    初始化键盘时,将ROW1,ROW2,ROW3三条线输出高电平,如果有键被按下,三极管基极变为高电平,三极管导通,集电极被拉低,
产生一个下降沿,触发中断,进入中断程序。

    扫描时,输出ROW[1:3]=100,若INT0还是低电平,则是第一行有键被按下,否则输出ROW[1:3]=010,查第二行是否有键被按下,
INT0为低电平,第二行有键被按下,否则输出ROW[1:3]=001,记录行号。假设是第一行有键被按下(row=0),即输出ROW[1:3]=100,
再将管脚方向改为ROW1输出,ROW2输入,ROW3输入,保持ROW1输出高电平,此时读ROW2和ROW3,若ROW[3:2]=00,则K1被按下(col=0);
若ROW[3:2]=01,则K2被按下(col=1);若ROW[3:2]=10,则K3被按下(col=2)。计算公式keynum=row*3+col。假设K3被按下则row=0,
col=2键值应该为keynum=0*3+2=2。

点击此处下载 ourdev_594890EQA9Q7.doc(文件大小:137K) (原文件名:3+1键盘驱动学习.doc)





欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4