久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1853|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機4*4矩陣鍵盤的疑問

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:973855 發(fā)表于 2022-2-23 10:04 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
/********************獨立按鍵程序*****************/
uchar key_can;         //按鍵值

void key()         //獨立按鍵程序
{
        static uchar key_new = 0;
        key_can = 20;                   //按鍵值還原
        P3 = 0x0f;
        if((P3 & 0x0f) != 0x0f)                //按鍵按下
        {
                delay_1ms(1);                     //按鍵消抖動
                if(((P3 & 0x0f) != 0x0f) && (key_new == 1))
                {                                                //確認是按鍵按下
                        key_new = 0;
                        P3 = (P3 | 0xf0);   //矩陣鍵盤掃描
                        switch(P3)
                        {
                                case 0xee:  key_can = 1;  break;  //得到按鍵值
                                case 0xde:  key_can = 4;  break;   //得到按鍵值
                                case 0xbe:  key_can = 7;  break;   //得到按鍵值
                                case 0x7e:  key_can = 10;  break;   //得到按鍵值
        
                                case 0xed:  key_can = 0;  break;  //得到按鍵值
                                case 0xdd:  key_can = 8;  break;   //得到按鍵值
                                case 0xbd:  key_can = 5;  break;   //得到按鍵值
                                case 0x7d:  key_can = 2;  break;   //得到按鍵值
        
                                case 0xeb:  key_can = 3;  break;  //得到按鍵值
                                case 0xdb:  key_can = 6;  break;   //得到按鍵值
                                case 0xbb:  key_can = 9;  break;   //得到按鍵值
                                case 0x7b:  key_can = 11;  break;   //得到按鍵值
        
                                case 0xe7:  key_can = 15;  break;  //得到按鍵值
                                case 0xd7:  key_can = 14;  break;  //得到按鍵值
                                case 0xb7:  key_can = 13;  break;   //得到按鍵值
                                case 0x77:  key_can = 12;  break;  //得到按鍵值         
                        }        
                        beep = 0;  //蜂鳴器叫一聲
                        delay_1ms(100);
                        beep = 1;
                }                        
        }
        else
                key_new = 1;        
}

這是4*4獨立按鍵矩陣鍵盤的程序,為什么這個按鍵值是1 4 7 10;0 8 5 2;這樣S形獲取按鍵值的而不是1 4 7 10 ;2 5 8 0。按照p1口的高低四位,0按鍵的兩端為p1.7和p1.1     口值也為01111101=0x7d。是程序錯了還是我理解有誤。剛開始學,有點兒疑惑,

原理.png (86.44 KB, 下載次數(shù): 43)

這是仿真原理圖

這是仿真原理圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2022-2-23 12:00 | 只看該作者
通常4*4矩陣鍵盤有16個狀態(tài),具體鍵值的含義完全由編寫者自定義。你完全可以按你希望的數(shù)字排列。
回復(fù)

使用道具 舉報

板凳
ID:973855 發(fā)表于 2022-2-23 12:04 | 只看該作者
wulin 發(fā)表于 2022-2-23 12:00
通常4*4矩陣鍵盤有16個狀態(tài),具體鍵值的含義完全由編寫者自定義。你完全可以按你希望的數(shù)字排列。

那是程序沒對是么
回復(fù)

使用道具 舉報

地板
ID:134430 發(fā)表于 2022-2-23 17:17 | 只看該作者
樓上的回答是正解!
oxee,oxde等等是鍵值,鍵值是不變的,對應(yīng)什么鍵號由自己定。你如果把  “uchar key_can;    //按鍵值” 的注釋改成  uchar key_can;  //按鍵號   就理解了。
給你一個參考uchar KeyBoard()
{
    uchar K_Num=Null;               //鍵號
    uchar KeyValue=Null;            //鍵值
    uchar Tmp1=Null,Tmp2=Null;                //臨時存儲

   。。。。。。

            switch(KeyValue)        //根據(jù)鍵值確定鍵號
            {
                case 0xbe:K_Num=0x00; break;                        
                case 0x77:K_Num=0x01; break;
                case 0xb7:K_Num=0x02; break;
                case 0xd7:K_Num=0x03; break;
                case 0x7b:K_Num=0x04; break;
                case 0xbb:K_Num=0x05; break;
                case 0xdb:K_Num=0x06; break;
                case 0x7d:K_Num=0x07; break;
                case 0xbd:K_Num=0x08; break;
                case 0xdd:K_Num=0x09; break;
                case 0xe7:K_Num=0x0a; break;
                case 0xeb:K_Num=0x0b; break;
                case 0xed:K_Num=0x0c; break;
                case 0xee:K_Num=0x0d; break;
                case 0x7e:K_Num=0x0e; break;
                case 0xde:K_Num=0x0f; break;
            }
        }
    }
    return K_Num;       //輸出鍵號   
}


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产专区在线 | 亚洲欧美国产视频 | 国产成人综合久久 | 欧美不卡视频一区发布 | 欧美一区二区三区在线观看 | 亚洲精品一区二区另类图片 | 最近中文字幕第一页 | 亚洲性视频在线 | 国产精品一区二区日韩 | 免费视频一区二区 | 日本综合在线观看 | 久久a久久 | 亚洲国产视频一区二区 | 欧美 中文字幕 | 成人精品国产一区二区4080 | h视频网站在线观看 | 日本久久久一区二区三区 | 久久国产精品久久 | 日本三级线观看 视频 | 日韩在线免费视频 | 精品在线看| 国产精品久久久久久久免费大片 | 91偷拍精品一区二区三区 | 欧美一级在线免费观看 | 青草久久免费视频 | 男人久久天堂 | 婷婷开心激情综合五月天 | 免费观看一级毛片视频 | 欧洲av在线| 欧美精品在线免费观看 | 精品动漫一区 | 久久久www| 午夜精品久久久久久久久久久久 | 天堂色综合 | 国产一区二区三区亚洲 | 亚洲综合色视频在线观看 | 欧美激情久久久 | 国产一级在线 | 欧美精品一区二区三区在线 | 国产成人午夜电影网 | 国产有码 |