普中开源电子分享网

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

51单片机的矩阵按键程序之static变量

[复制链接]

1

主题

2

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-2-10 17:02:08 | 显示全部楼层 |阅读模式
1金钱
在普中51单片机视频中学到了矩阵按键,其中有一段程序对与static变量的使用很费解。
代码如下:
u8 key_matrix_flip_scan(void)//线翻转方式扫描  
{       
         static u8 key_value=0;
        KEY_MATRIX_PORT=0x0f; //行为0,测试列
        if(KEY_MATRIX_PORT!=0x0f)
        {
                delay(1000);
                //测试列
                if(KEY_MATRIX_PORT!=0x0f)
                {
                        KEY_MATRIX_PORT=0x0f;
                        switch(KEY_MATRIX_PORT)
                        {
                                case 0x07:key_value=1;break;//第几列
                                case 0x0b:key_value=2;break;
                                case 0x0d:key_value=3;break;
                                case 0x0e:key_value=4;break;
                        }
                        //测试行
                        KEY_MATRIX_PORT=0xf0;
                        switch(KEY_MATRIX_PORT)
                        {
                                case 0x70:key_value=key_value;break;//第一行按键的键值
                                case 0xb0:key_value=key_value+4;break;
                                case 0xd0:key_value=key_value+8;break;
                                case 0xe0:key_value=key_value+12;break;
                        }
                        while (KEY_MATRIX_PORT!=0xf0);//松手检测
                }               
        }
        else
                 key_value=0;
        return key_value;       
}
void main()
{
        u8 key=0;
        while(1)   
        {       
                 key=key_matrix_flip_scan();
                if(key!=0)
                {                                  
                SMG_A_DP_PORT=gsmg_code[key-1];        //数组下标要减一
            }
          }
}

上面标红处的static的作用是什么?有什么意义,实验发现去掉了之后按键显示1-F也能正常运行。但视频讲解说失去static会出错。求解惑。
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有0人回答

回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-19 13:05 , Processed in 0.082575 second(s), 29 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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