找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1126|回复: 2
打印 上一主题 下一主题
收起左侧

矩阵键盘

[复制链接]
跳转到指定楼层
楼主
ID:414859 发表于 2018-10-24 20:21 来自触屏版 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#include<STC15.H>
#define GPIO_DIG P0
#define GPIO_KEY P2
unsigned char code DSY_BUF[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char KeyValue;
void KeyDown();
void delayms(unsigned char z )
{
           unsigned char i,j;
           for(i=z;i>0;i--)
           for(j=115;j>0;j--);
}
void main()
{
          while(1)
  {
          KeyDown();
    GPIO_DIG =~DSY_BUF[KeyValue];
        }
}
void KeyDown(void)
{
        char a = 0;
        GPIO_KEY=0x0f;
        if(GPIO_KEY!=0x0f)
        {
                delayms(10);
                if(GPIO_KEY!=0x0f)
                {
                        GPIO_KEY=0x0f;
                        switch(GPIO_KEY)
                {
      case(0X0e):KeyValue=0;break;  
      case(0X0d):KeyValue=4;break;  
      case(0X0b):KeyValue=8;break;  
      case(0X07):KeyValue=12;break;
                }
                        GPIO_KEY=0xf0;
                        switch(GPIO_KEY)
                        {
     case(0Xe0):        KeyValue=KeyValue+0;break;
     case(0Xd0):        KeyValue=KeyValue+1;break;
     case(0Xb0):  KeyValue=KeyValue+2;break;
     case(0X70):        KeyValue=KeyValue+3;break;
                        }      
       while((a<50) && (GPIO_KEY!=0xf0))
                        {
                        delayms(10);
                  a++;
                        }
                }       
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-10-25 00:50 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

板凳
ID:414859 发表于 2018-10-25 08:19 来自触屏版 | 只看该作者
P0口接静态显示数码管的排针,P2口接矩阵键盘的排针。

S81025-080218(1).jpg (63.28 KB, 下载次数: 41)

S81025-080218(1).jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表