標(biāo)題: 單片機(jī)矩陣按鍵程序問題 [打印本頁]

作者: hxy52zero    時(shí)間: 2024-10-28 20:52
標(biāo)題: 單片機(jī)矩陣按鍵程序問題
[attach]331772[/attach]這兩個(gè)函數(shù)是控制晉中51實(shí)驗(yàn)板的矩陣按鍵的,但是左邊的jiance函數(shù)在執(zhí)行下面的主函數(shù)時(shí)無論按什么鍵都是4個(gè)重復(fù)的數(shù)字,
而右邊的MatrixKey函數(shù)就可以(例如:按下1顯示0001,再按下2顯示0012.....)
下面是主函數(shù),那個(gè)壓縮包里面就是源文件

有人可以幫忙看看嗎?
搞一下午了




新建文件夾.zip

11.74 KB, 下載次數(shù): 11


作者: qinlu123    時(shí)間: 2024-10-29 08:03
不行得話你直接用我的程序算了,驗(yàn)證好多年了穩(wěn)定可靠功能多
作者: hxy52zero    時(shí)間: 2024-10-29 09:35
qinlu123 發(fā)表于 2024-10-29 08:03
不行得話你直接用我的程序算了,驗(yàn)證好多年了穩(wěn)定可靠功能多

其實(shí)我就是想知道是什么原因?qū)е碌?br />
作者: glinfei    時(shí)間: 2024-10-29 10:30
我沒看全啊,就是想問問這個(gè)函數(shù) int jiance() 為啥返回INT 型數(shù)據(jù)
作者: qinlu123    時(shí)間: 2024-10-29 10:36
hxy52zero 發(fā)表于 2024-10-29 09:35
其實(shí)我就是想知道是什么原因?qū)е碌?/blockquote>

你是咋理解^這個(gè)運(yùn)算符的,你這個(gè)矩陣鍵盤掃描算法t1和t2應(yīng)該是或的關(guān)系為啥要用異或呢
作者: qinlu123    時(shí)間: 2024-10-29 10:52
用異或也是可以的在這里效果和或一樣。你的8個(gè)IO都加上拉電阻了嗎
作者: hxy52zero    時(shí)間: 2024-10-29 11:16
glinfei 發(fā)表于 2024-10-29 10:30
我沒看全啊,就是想問問這個(gè)函數(shù) int jiance() 為啥返回INT 型數(shù)據(jù)

給它定義的不是int嗎?
作者: lkc8210    時(shí)間: 2024-10-29 11:30
4個(gè)重復(fù)的數(shù)字是按什么鍵?出現(xiàn)哪4個(gè)?
作者: hxy52zero    時(shí)間: 2024-10-29 11:40
qinlu123 發(fā)表于 2024-10-29 10:36
你是咋理解^這個(gè)運(yùn)算符的,你這個(gè)矩陣鍵盤掃描算法t1和t2應(yīng)該是或的關(guān)系為啥要用異或呢

開始是用的或,也檢查了幾遍,但是行不通,然后用異或就行得通了,所以用的異或
作者: hxy52zero    時(shí)間: 2024-10-29 11:52
qinlu123 發(fā)表于 2024-10-29 10:52
用異或也是可以的在這里效果和或一樣。你的8個(gè)IO都加上拉電阻了嗎

都加上了,我看的原理圖
作者: hxy52zero    時(shí)間: 2024-10-29 15:04
lkc8210 發(fā)表于 2024-10-29 11:30
4個(gè)重復(fù)的數(shù)字是按什么鍵?出現(xiàn)哪4個(gè)?

就是按什么鍵,這個(gè)鍵對(duì)應(yīng)的數(shù)字重復(fù)4次
作者: lkc8210    時(shí)間: 2024-10-29 15:36
hxy52zero 發(fā)表于 2024-10-29 15:04
就是按什么鍵,這個(gè)鍵對(duì)應(yīng)的數(shù)字重復(fù)4次

因?yàn)槟銢]有松手檢測啊,MatrixKey()有while(P1_x==0);


作者: qinlu123    時(shí)間: 2024-10-29 16:59
lkc8210 發(fā)表于 2024-10-29 15:36
因?yàn)槟銢]有松手檢測啊,MatrixKey()有while(P1_x==0);

按道理將他這程序按鍵一直按下可以檢測到的,我上學(xué)那會(huì)也這么做過行得通
作者: hxy52zero    時(shí)間: 2024-10-29 17:00
lkc8210 發(fā)表于 2024-10-29 15:36
因?yàn)槟銢]有松手檢測啊,MatrixKey()有while(P1_x==0);

原來是這樣,等下去試試




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1