请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2377|回复: 0

按键矩阵

[复制链接]

1

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2019-10-2 11:49:29 | 显示全部楼层 |阅读模式
         #include "reg52.h"
         
     typedef  unsigned char u8;
     typedef  unsigned int u16;

         sbit LSA = P2^2;
         sbit LSB = P2^3;
         sbit LSC = P2^4;

        #define GPIO_KEY P1;
        #define GPIO_DIG P0;

     u8 KeyValue;

         u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
                            0x7d,0x07,0x7f,0x6f,0x77,0x7c,
                                                0x39,0x5e,0x79,0x71,0x00};
         
         void KeyDown()
         {
                u8 a=0;
                     GPIO_KEY = 0x0f;
                    if(GPIO_KEY != 0x0f)
                        {
                                delay(1000);
                                if(GPIO_KEY != 0x0f)
                                {
                                        GPIO_KEY = 0x0f;
                                        switch(GPIO_KEY)  //列
                                         {
                                                           case 0x07:  KeyValue=0;        break;
                                                           case 0x0b:  KeyValue=1;        break;
                                                           case 0x0d:  KeyValue=2;        break;
                                                           case 0x0e:  KeyValue=3;        break;
                                         }
                                         GPIO_KEY = 0xf0;
                                         switch(GPIO_KEY)  //行
                                         {
                                                           case 0x70:  KeyValue=KeyValue;           break;
                                                           case 0xb0:  KeyValue=KeyValue+4;         break;
                                                           case 0xd0:  KeyValue=KeyValue+8;         break;
                                                           case 0xe0:  KeyValue=KeyValue+12; break;
                                         }
                                         while((a<50)&&(GPIO_KEY!=0xf0))
                                         {
                                                          delay(1000);
                                                          a++;
                                         }
                                }
                        }
         }
         
         void delay(u16 i)
         {
            while(i--);
         }
         void main()
         {
                  LSA=0;
                          LSB=0;
                          LSC=0;
                         
                        while(1)
                        {
                              KeyDown();
                                  GPIO_DIG=smgduan[KeyValue];
                        }
                       
         }                  
提示:MAIN.C(23): error C141: syntax error near '!='
          MAIN.C(23): error C141: syntax error near ')'
         Target not created
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 02:54 , Processed in 0.081049 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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