关于矩阵键盘行扫描的一点问题,P1OUT如何进行行扫描的?

2019-03-24 09:21发布

/*******************************************
函数名称:Check_Key
功    能:扫描键盘的IO端口,获得键值
参    数:无
返回值  :无
********************************************/

/***************************************
            key_Val 对应键值
        列:[p14]  [p15]  [p16]   [p17]
             ↓     ↓     ↓     ↓
行:
[p13]→      1      2      3      4   
[p12]→      5      6      7      8   
[p11]→      9     10     11     12   
[p10]→     13     14     15     16   
***************************************/
void Check_Key(void)
{
  unsigned char row ,col,tmp1,tmp2;
  unsigned char keymap[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};//设置键盘逻辑键值

  tmp1 = 0x08;
  for(row = 0;row < 4;row++)              //行扫描
  {
    P1OUT = 0x0f;                       //P1.0~P1.3输出全1
    P1OUT -= tmp1;                      //P1.0~p1.3输出四位中有一个为0
    tmp1 >>=1;                              
    if((P1IN & 0xf0)<0xf0)              //是否P1IN的P1.4~P1.7中有一位为0
    {                       
      tmp2 = 0x10;                        // tmp2用于检测出哪一位为0  
      for(col = 0;col < 4;col++)          // 列检测
      {         
        if((P1IN & tmp2) == 0x00)       // 是否是该列,等于0为是
        {         
          Key_Val = keymap[row*4 + col];  // 获取键值
          return;                         // 退出循环
        }
        tmp2 <<= 1;                       // tmp2左移1位
      }
    }
  }      
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
xch20010
1楼-- · 2019-03-24 17:43
来人回答一下啊
数码小叶
2楼-- · 2019-03-24 18:06
 精彩回答 2  元偷偷看……
xch20010
3楼-- · 2019-03-24 22:14
数码小叶 发表于 2016-5-17 08:01
这个有啥回答的,普通的扫描键值而已啊。。。

不好意思,我不是很懂这个行扫描设置成P1OUT怎么扫描的。
for(row = 0;row < 4;row++)              //行扫描
  {
    P1OUT = 0x0f;                       //P1.0~P1.3输出全1
    P1OUT -= tmp1;                      //P1.0~p1.3输出四位中有一个为0
就这几句不懂
数码小叶
4楼-- · 2019-03-24 23:25
xch20010 发表于 2016-5-17 13:25
不好意思,我不是很懂这个行扫描设置成P1OUT怎么扫描的。
for(row = 0;row < 4;row++)              // ...

你没接触过矩阵键盘吧,就是很简单的把把行全给高电平,如果那一行的按键按下,则会被拉底啊,因为同一行有好几个,所以要给不同的值,常见的是行列扫描,反转法,你先把矩阵键盘电路搞懂

一周热门 更多>

相关问题

    相关文章