找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

單片機(jī)講義12:矩陣按鍵

查看數(shù): 14044 | 評(píng)論數(shù): 4 | 收藏 4
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2017-11-19 02:45

正文摘要:

第12講 矩陣按鍵知識(shí)點(diǎn): 1、 單片機(jī)程序的一般結(jié)構(gòu) 2、 keil 基本使用 3、 單片機(jī)識(shí)別按鍵的注意點(diǎn) 4、 識(shí)別矩陣按鍵的一種方法 一、單片機(jī)程序的一般結(jié)構(gòu) 1、前后臺(tái)結(jié)構(gòu) 前后臺(tái)結(jié)構(gòu)是最常用的結(jié)構(gòu)。所謂 ...

回復(fù)

ID:1017814 發(fā)表于 2022-4-16 15:02
我的按鍵掃描程序如下,講老大們給于評(píng)判。
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 發(fā)表于 2021-3-3 09:50
怎樣下載學(xué)習(xí)一下呢?
ID:508017 發(fā)表于 2019-5-11 19:56
給小學(xué)生培訓(xùn)的,,慚愧啊
ID:435312 發(fā)表于 2018-12-2 19:01
學(xué)習(xí)一下

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表