欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2506|回復: 7
打印 上一主題 下一主題
收起左側

無法讀取單片機P0口各個位的狀態

[復制鏈接]
跳轉到指定樓層
樓主

如圖:按鍵是接到P0口上面的


我這樣寫程序能讀出P0口的狀態嗎?

經過開發板測試發現,讀不出來,請高手指點一下為什么?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

8#
ID:450037 發表于 2021-10-18 10:38 | 只看該作者
xuyaqi 發表于 2021-10-16 19:27
給個參考:

void Getch ( )        //取鍵值函數

也不行,但是可以讀取出行的數據,比如,第一行,程序顯示01111111,第二行10111111,第三行11011111第四行就是11101111。但是具體哪個按鍵按下去的,它反應不出來,怎么回事啊
回復

使用道具 舉報

7#
ID:450037 發表于 2021-10-18 08:09 | 只看該作者
dzc3458 發表于 2021-10-16 18:43
這種4x4矩陣鍵盤好像不能直接讀數據,需要逐行掃描,先把掃描行置0,然后檢測按鍵,看看哪個列為0,才能判 ...

確實是不能直接讀數據,但是覺得不應該啊,為什么會讀取不了數據呢
回復

使用道具 舉報

6#
ID:450037 發表于 2021-10-18 08:06 | 只看該作者
yzwzfyz 發表于 2021-10-16 16:14
不可能讀不到,無論是0,是1,總會讀到一個值的。怎么能說讀不到呢?

就讀不了,你說奇怪不
是不是跟單片機掃描有關系
回復

使用道具 舉報

5#
ID:94031 發表于 2021-10-16 19:27 | 只看該作者
給個參考:

void Getch ( )        //取鍵值函數
{
        unsigned char X,Y,Z;
        P0=0x0f; //先對P0 置數 行掃描
        if(P0!=0x0f) //判斷是否有鍵按下
        {
                delay10ms(); //延時,軟件去干擾
                if(P0!=0x0f) //確認按鍵按下
                {
                                X=P0; //保存行掃描時有鍵按下時狀態
                                P0=0xf0; //列掃描
                                Y=P0;    //保存列掃描時有鍵按下時狀態
                                Z=X|Y; //取出鍵值
               
                                switch ( Z ) //判斷鍵值(那一個鍵按下)
                                {
                                        case 0xee: k=0; break; //對鍵值賦值
                                        case 0xed: k=1; break;
                                        case 0xeb: k=2; break;
                                        case 0xe7: k=3; break;
                                        case 0xde: k=4; break;
                                        case 0xdd: k=5; break;
                                        case 0xdb: k=6; break;
                                        case 0xd7: k=7; break;
                                        case 0xbe: k=8; break;
                                        case 0xbd: k=9; break;
                                        case 0xbb: k=10;break;
                                        case 0xb7: k=11;break;
                                        case 0x7e: k=12;break;
                                        case 0x7d: k=13;break;
                                        case 0x7b: k=14;break;
                                        case 0x77: k=15;break;
                                }
                        }
                }
}
回復

使用道具 舉報

地板
ID:419909 發表于 2021-10-16 19:03 | 只看該作者
這個讀不了的
試試下面的:
switch(P0|0x00)
回復

使用道具 舉報

板凳
ID:964308 發表于 2021-10-16 18:43 | 只看該作者
這種4x4矩陣鍵盤好像不能直接讀數據,需要逐行掃描,先把掃描行置0,然后檢測按鍵,看看哪個列為0,才能判斷第幾行第幾列,應該是這樣的
回復

使用道具 舉報

沙發
ID:123289 發表于 2021-10-16 16:14 | 只看該作者
不可能讀不到,無論是0,是1,總會讀到一個值的。怎么能說讀不到呢?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表