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

QQ登錄

只需一步,快速開始

帖子
查看: 2346|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

關(guān)于矩陣鍵盤的問(wèn)題,請(qǐng)教各位大佬

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:209101 發(fā)表于 2017-9-20 21:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近做一個(gè)項(xiàng)目,用到矩陣鍵盤,本以為這是整個(gè)項(xiàng)目中最簡(jiǎn)單的,結(jié)果沒想到是一個(gè)BUG,請(qǐng)問(wèn)如何判斷按鍵按了幾次,比如,按下S1進(jìn)入設(shè)置界面,輸入1234,再按下S1,設(shè)置成功并保存,再按下S1退出設(shè)置界面。我試過(guò)給一個(gè)變量a,按一次+1,然后用if判斷,結(jié)果不可行,各位大佬遇過(guò)這問(wèn)題嗎?有沒有好一點(diǎn)的思路,跪拜各位大佬!��!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2017-9-21 06:35 | 只看該作者
unsigned char key_scan()//4*4矩陣鍵盤掃描函數(shù)
{
        //略
}

void key_service()                //按鍵服務(wù)程序
{
        static unsigned char  count=0;//計(jì)數(shù)變量       
        key=key_scan();                //讀取鍵值
        switch(key)
        {
                case 0xee:                 //設(shè)置鍵鍵值
                {
                        count++;
                        switch(count)
                        {
                                case 1:
                                //任務(wù)1
                                break;
                                case 2:
                                //任務(wù)2
                                break;
                                case 3:
                                //任務(wù)3
                                count=0;
                                break;
                        }
                }               
                key=0;                        //執(zhí)行完任務(wù)清0
                break;

                case 0xde:
                //任務(wù)
                key=0;                        //執(zhí)行完任務(wù)清0
                break;
                ......
                ......
                ......
                ......
                case 0x77:
                //任務(wù)
                key=0;                        //執(zhí)行完任務(wù)清0
                break;

                default:
                break;
        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:235082 發(fā)表于 2017-9-23 13:58 | 只看該作者
設(shè)置一個(gè)標(biāo)志變量,為0時(shí)且有鍵按下,致1并執(zhí)行內(nèi)容;為1時(shí)不執(zhí)行;當(dāng)所有鍵彈起重新致0
回復(fù)

使用道具 舉報(bào)

地板
ID:235170 發(fā)表于 2017-9-23 21:16 | 只看該作者
估計(jì)問(wèn)題是出在按鍵的掃描和識(shí)別上
回復(fù)

使用道具 舉報(bào)

5#
ID:111634 發(fā)表于 2017-9-24 12:50 | 只看該作者
你錯(cuò)啦!應(yīng)該是先理解才有好思路,而不是先有好思路,不要舍本求末。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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