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

QQ登錄

只需一步,快速開始

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

請(qǐng)各位解釋一下單片機(jī)C語(yǔ)言這幾個(gè)鍵值怎么的出來(lái)的?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:138707 發(fā)表于 2022-3-1 00:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)各位解釋一下以這幾個(gè)鍵值怎么的出來(lái)的
以下是部分程序:
---
#define uchar unsigned char   
#define uint unsigned int
#define key P1   
#define dataout P3
uchar data keyword;
---
void keyscan()               //鍵盤掃描函數(shù)
{   
keyword=key&0x3f;   
if(keyword!=0x3f)   
{   
  while((key&0x3f)!=0x3f);  //等待按鍵松開   
  switch(keyword)   
  {
     case 62: {;}
     case 61: {;}

     case 59: {;}
     case 55: {;}
     case 47: {;}
     case 31: {;}
}
}
}

提問:
(1)鍵值62,61,59,55,47,31怎么得出來(lái)的;
(2) 代表哪幾個(gè)按鍵或?qū)?yīng)引腳。

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

使用道具 舉報(bào)

沙發(fā)
ID:86926 發(fā)表于 2022-3-1 08:07 | 只看該作者
本帖最后由 藍(lán)魄 于 2022-3-1 08:11 編輯

1:鍵值是十進(jìn)制數(shù),讀到的鍵值是十六進(jìn)制數(shù),建議了解下進(jìn)制轉(zhuǎn)換。2:相與0x3f即是取低6位,key定義的是P1,則是P1.0-P1.5;建議了解下C基礎(chǔ);
回復(fù)

使用道具 舉報(bào)

板凳
ID:86926 發(fā)表于 2022-3-1 08:09 | 只看該作者
2:相與0x3f即是低6位,key定義的是P1,則是P1.0-P1.5;這可是C的基礎(chǔ)哦;
回復(fù)

使用道具 舉報(bào)

地板
ID:86926 發(fā)表于 2022-3-1 08:12 | 只看該作者
1:鍵值是十進(jìn)制數(shù),讀到的IO數(shù)據(jù)口是十六進(jìn)制數(shù),建議了解下進(jìn)制轉(zhuǎn)換。
回復(fù)

使用道具 舉報(bào)

5#
ID:121859 發(fā)表于 2022-3-1 08:28 | 只看該作者
這幾個(gè)數(shù)分別對(duì)應(yīng)十六進(jìn)制:3EH,3DH,3BH,37H,2FH,1FH,在按鍵而言,分別對(duì)應(yīng)P1.0到P1.5相接的6個(gè)按鍵。
回復(fù)

使用道具 舉報(bào)

6#
ID:338503 發(fā)表于 2022-3-1 08:31 | 只看該作者
按鍵的接口是P1的低6位,如果P1的最低位按下,鍵值就是十六進(jìn)制0x3e,十進(jìn)制就是62;次低位按下鍵值就是十六進(jìn)制0x3d,十進(jìn)制就是61;依此類推,分別就是59、55、47、31.
回復(fù)

使用道具 舉報(bào)

7#
ID:8222 發(fā)表于 2022-3-1 10:50 | 只看該作者
你把它變成二進(jìn)制就能看出來(lái)了。但這鍵值有問題,判斷是6位,鍵值是5位。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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