打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一种简单的单片机矩阵键盘的程序
https://jingyan.baidu.com/article/49ad8bce69fa285835d8fa4f.html

通过计算法来实现单片机的4*4矩阵键盘.程序比较简捷。

方法/步骤

  1. unsigned char Keycan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线

    {

      unsigned char rcode, ccode;

      P1 = 0xF0;      // 发全0行扫描码,列线输入

      if((P1&0xF0) != 0xF0) // 若有键按下

      {

        delay();// 延时去抖动 

        if((P1&0xF0) != 0xF0)

        {  rcode = 0xFE;         // 逐行扫描初值

        while((rcode&0x10) != 0)

        {

           P1 = rcode;         // 输出行扫描码

        if((P1&0xF0) != 0xF0) // 本行有键按下

        {

           ccode = (P1&0xF0)|0x0F;

           do{;}while((P1&0xF0) != 0xF0); //等待键释放

           return ((~rcode) + (~ccode)); // 返回键编码

        }

        else

        rcode = (rcode<<1)|0x01; // 行扫描码左移一位

        }

     }

      }  

      return 0; // 无键按下,返回值为0

    }

  2. void KeyDispaly(unsigned char key)

    {

       switch(key)

       {

       case 0x11: display(0); break;

       case 0x21: display(1); break;

       case 0x41: display(2); break;

       case 0x81: display(3); break;

       case 0x12: display(4); break;

       case 0x22: display(5); break;

       case 0x42: display(6); break;

       case 0x82: display(7); break;

       case 0x14: display(8); break;

       case 0x24: display(9); break;

       case 0x44: display(10); break;

       case 0x84: display(11); break;

       case 0x18: display(12); break;

       case 0x28: display(13); break;

       case 0x48: display(14); break;

       case 0x88: display(15); break;

       default: break;

       }

    }

  3. 3

    如果Keyscan放在主函数里,得到按键编码的变量,必须也放在主函数里。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数码管显示矩阵键盘扫描值
51单片机矩形键盘控制数码管显示0-F,以及LED灯的亮灭
【新提醒】基于proteus的51单片机仿真实例八十二、4X4矩阵键盘应用实例
矩阵键盘C语言程序+电路图(51单片机)
凔海笔记之单片机(五):给按键编个码
51单片机矩阵键盘扫描程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服