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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

哪位高手幫我看看這個(gè)4*4矩陣鍵掃描函數(shù)謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:15792 發(fā)表于 2009-7-31 17:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
 

4*4矩陣鍵掃描函數(shù),我有一句話不明白,

麻哪位給我解釋一下多謝

Uchar kbscan(void)

Uchar sccode,recode

P1=0xf0

If(p1&0xf0)!=0xf0

{sccode=0xfe

While((sccode&0x10)!=0)這句是什么意思???

{p1=sccode;

If((p1&0xf0)!=0xf0)

{recode=(p1&0xf0)|0xf0)

Return((~sccode)+(~recode))

}

Else

Sccode=(sccode<<1)|0x01}}}return(0)}

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

使用道具 舉報(bào)

沙發(fā)
ID:12258 發(fā)表于 2009-7-31 22:56 | 只看該作者

這一句放在這里的意思是:當(dāng)sccode.4=1時(shí),執(zhí)行while的內(nèi)嵌語句,當(dāng)sccode.4=0時(shí),結(jié)束循環(huán)!

回復(fù)

使用道具 舉報(bào)

板凳
ID:15792 發(fā)表于 2009-8-1 10:40 | 只看該作者

謝謝剛才的回答,p1.0-p1.3是行掃描輸出線p1.4-p1.7是列檢測輸入線,將第一行置0,列線也為0這個(gè)條件怎么判斷,sccode。4是列線判斷它有什么用

回復(fù)

使用道具 舉報(bào)

地板
ID:12258 發(fā)表于 2009-8-1 17:35 | 只看該作者

將第一行置0,則相當(dāng)于第一行所有按鍵的公共端接地,這時(shí)你就可以通過檢測P1.4-P1.7的信號來確定是第一行的哪個(gè)按鍵按下。sccode.4應(yīng)該是對應(yīng)與P1.4的吧,
判斷他可以確定它所對應(yīng)的按鍵是否按下,如果sccode.4=0,則按鍵按下!

回復(fù)

使用道具 舉報(bào)

5#
ID:15792 發(fā)表于 2009-8-5 10:22 | 只看該作者
p1.4是第一列呀,而且是是固定的,那另外三列如何檢測呢?我想把列信號輸入來比對,是這個(gè)意思吧它的p1。4我不明白難道它是列信號嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:12258 發(fā)表于 2009-8-5 21:28 | 只看該作者

你讀取P1口的信號,按下相應(yīng)的按鍵應(yīng)該只有一個(gè)值與之相對應(yīng)!譬如:你置第一行為0,如果你按下的按鍵是P1.4所接的按鍵,那么,P1口的數(shù)值應(yīng)該是01110111即0x77。
如果你要檢測第一列其他行的按鍵,那么你只要將對應(yīng)行置0即可!別忘了,每一次只能有一行為0,這樣行與列的交點(diǎn)就只有一個(gè),那個(gè)點(diǎn)就是你要檢測的按鍵!
P1.0-P1.3是需要你來設(shè)置的位,它代表你選通的行;而P1.4-P1.7就是你用來檢測按鍵用的位,它代表你所按下的按鍵所在的列!
知道按鍵在第幾行第幾列了,你不就知道是哪個(gè)按鍵了嗎。。

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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