您的位置:澳门新葡8455最新网站 > 数据库管理 > 单片机矩阵

单片机矩阵

发布时间:2019-11-04 10:57编辑:数据库管理浏览(71)

    先设置Mysql全局

    疑点----单片机矩阵键盘行列反转扫描法,单片机矩阵

    学到矩阵键盘这一块对互联网外人写的C代码有些难题,希望有能观察的大咖扶持解答。

     

    矩阵键盘和单身键盘原理图:

    图片 1

    原理:对此图右边的矩阵键盘,把P3口的低二人(P3.0 ~ P3.3卡塔 尔(英语:State of Qatar)和高四个人(P3.4 ~ P3.7卡塔 尔(英语:State of Qatar)分别置1,只要有按钮被按下,那么与之相应的P3口某一位将由高电平被拉低,两次分别测得了行值和列值即鲜明了哪一个按钮被按下了。

    比如:先把低多少人赋高电平即 P3 = 0000_1111 即便 S15 被按下了,那么 P3.2 就被拉成低电平即 P3 = 0000_1011 ,那个时候再把高三个人赋高电平即 P3 = 1111_0000 ,那么 P3.5 就被拉成低电平即 P3 = 1101_0000 。最终,把五回测得的 P3 值相加 0000_1011 + 1101_0000 = 1101_1011(行列值为第三行第二列卡塔尔

    (1卡塔尔网络最分布的写法:

     1 P3 = 0x0f;      //0000 1111
     2 if ((P3 & 0x0f) != 0x0f)       //按键检测
     3 {     
     4     delay(3);       //软件消抖
     5     if ((P3 & 0x0f) != 0x0f)         //按键检测
     6     {
     7         row_value = P3 & 0x0f;      //扫描行值
     8         P3 = row_value | 0xf0;
     9         colume_value = P3 & 0xf0;       //扫描列值
    10        // while ((P3 & 0xf0) != 0xf0);        //松手检测
    11         return (row_value + colume_value);
    12     }
    13 }
    

    (2):

     P3 = 0x0f;      //0000 1111
    if ((P3 & 0x0f) != 0x0f)      //按键检测
    {     
        delay(3);       //软件消抖
        if ((P3 & 0x0f) != 0x0f)      //按键检测
        {     
            row_value = P3 & 0x0f;      //扫描行值
            P3 = 0xf0;
            colume_value = P3 & 0xf0;       //扫描列值
            //while ((P3 & 0xf0) != 0xf0);        //松手检测
            return (row_value + colume_value);
        }
    }
    

     

    (3):

    P3 = 0x0f;      //0000 1111
    if ((P3 & 0x0f) != 0x0f)         //按键检测
    {     
        delay(3);       //软件消抖
        if ((P3 & 0x0f) != 0x0f)        //按键检测
        {     
            row_value = P3;     //扫描行值
            P3 = 0xf0;
            colume_value = P3 ;     //扫描列值
            //while ((P3 & 0xf0) != 0xf0);        //松手检测
            return (row_value + colume_value);
        }
    }
    

     

    (4卡塔尔国这些切合自己所说的原理和例子:

    P3 = 0x0f;      //0000 1111
    if (P3 != 0x0f)          //按键检测
    {      
        delay(3);       //软件消抖
        if (P3 != 0x0f)        //按键检测
        {      
            value = P3;     //扫描行值
            P3 = 0xf0;
            value |= P3 ;       //扫描列值
            //while (P3 != 0xf0);     //松手检测
            return (value);
        }
    }
    

    自己早已用开拓板实地衡量了,下面那多少个都没有错。

    自身的问号:自家不掌握为啥分布写法要写 &0x0f 、 &0xf0 或者 |0xf0 那样写有什么极其的效应并未有?感到写与不写原理上都对,那何苦要写?(非常是写法 1 和写法 4 看起来差距蛮大的哟卡塔尔                     ------------------2017-06-04    22:05:02

     

     

     

     

    如有错误还请提议,如有侵犯版权还请告诉,如需转发请注脚出处!                                              

    本身博客:

     

    学到矩阵键盘这一块对英特网外人写的C代码有个别难点,希望有能见到的大腕扶持解答。...

     1 cmd下输入:
     2 
     3 mysql -uroot -p
     4 
     5 root密码
     6 
     7 use mysql;
     8 
     9 update user set host = "%" where user = "root";
    10 
    11 flush privileges;
    12 
    13 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root' PASSWORD EXPIRE NEVER;
    14 
    15 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    16 
    17 FLUSH PRIVILEGES;
    

     

    P.S.1:第9行,网络海人民广播电视台大措施是那样写的:GRANT ALL ON *.* TO 'root'@'%';  ,实测mysql8.0.12.0报错。

    P.S.2:第13行,互联网海人民广播广播台湾大学方法是那般写的:ALTER USE奥迪Q5 'root'@'localhost' IDENTIFIED BY 'password' PASSWO奇骏D EXPIRE NEVEXC90;  ,实地测量报错。

    P.S.3:语句什么意思,自行百度。

    图片 2图片 3

     图片 4图片 5

    本文由澳门新葡8455最新网站发布于数据库管理,转载请注明出处:单片机矩阵

    关键词: