找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机讲义12:矩阵按键

查看数: 14128 | 评论数: 4 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-11-19 02:45

正文摘要:

第12讲 矩阵按键知识点: 1、 单片机程序的一般结构 2、 keil 基本使用 3、 单片机识别按键的注意点 4、 识别矩阵按键的一种方法 一、单片机程序的一般结构 1、前后台结构 前后台结构是最常用的结构。所谓 ...

回复

ID:1017814 发表于 2022-4-16 15:02
我的按键扫描程序如下,讲老大们给于评判。
unsigned char key_scan()
{
        hang1=0;
        hang2=1;
        hang3=1;
        hang4=1;
        if(lie1==0)                                //right         15
        {
                 key_delay();
                if(lie1==0)
                {
                   return 'R'+'\0';
                }
                while(lie1==0);
        }
        if(lie2==0)                                   //up                14
        {
                 key_delay();
                if(lie2==0)
                {
                   return 'U'+'\0';
                }
                while(lie2==0);
        }
        if(lie3==0)                                //down           13
        {
                 key_delay();
                if(lie3==0)
                {
                   return 'D'+'\0';
                }
                while(lie3==0);
        }
        if(lie4==0)                                        //left           12
        {
                 key_delay();
                if(lie4==0)
                {
                   return 'L'+'\0';
                }
                while(lie4==0);
        }
        hang1=1;
        hang2=0;
        hang3=1;
        hang4=1;
        if(lie1==0)                                //ok
        {
                 key_delay();
                if(lie1==0)
                {
                   return 'Y'+'\0';
                }
                while(lie1==0);
        }
        if(lie2==0)                                   //9
        {
                 key_delay();
                if(lie2==0)
                {
                   return 9;
                }
                while(lie2==0);
        }
        if(lie3==0)                                //3
        {
                 key_delay();
                if(lie3==0)
                {
                   return 3;
                }
                while(lie3==0);
        }
        if(lie4==0)                                        //6
        {
                 key_delay();
                if(lie4==0)
                {
                   return 6;
                }
                while(lie4==0);
        }
        hang1=1;
        hang2=1;
        hang3=0;
        hang4=1;
        if(lie1==0)                                //0
        {
                 key_delay();
                if(lie1==0)
                {
                   return 0;
                }
                while(lie1==0);
        }
        if(lie2==0)                                   //8
        {
                 key_delay();
                if(lie2==0)
                {
                   return 8;
                }
                while(lie2==0);
        }
        if(lie3==0)                                //2
        {
                 key_delay();
                if(lie3==0)
                {
                   return 2;
                }
                while(lie3==0);
        }
        if(lie4==0)                                        //5
        {
                 key_delay();
                if(lie4==0)
                {
                   return 5;
                }
                while(lie4==0);
        }
        hang1=1;
        hang2=1;
        hang3=1;
        hang4=0;
        if(lie1==0)                                //ESC
        {
                 key_delay();
                if(lie1==0)
                {
                   return 'N'+'\0';
                }
                while(lie1==0);
        }
        if(lie2==0)                                   //7
        {
                 key_delay();
                if(lie2==0)
                {
                   return 7;
                }
                while(lie2==0);
        }
        if(lie3==0)                                //1
        {
                 key_delay();
                if(lie3==0)
                {
                   return 1;
                }
                while(lie3==0);
        }
        if(lie4==0)                                        //4
        {
                 key_delay();
                if(lie4==0)
                {
                   return 4;
                }
                while(lie4==0);
        }
        return 0xff;                   
}
ID:887908 发表于 2021-3-3 09:50
怎样下载学习一下呢?
ID:508017 发表于 2019-5-11 19:56
给小学生培训的,,惭愧啊
ID:435312 发表于 2018-12-2 19:01
学习一下

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

Powered by 单片机教程网

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