導航:首頁 > 操作系統 > 單片機連接8個按鍵

單片機連接8個按鍵

發布時間:2024-11-28 02:48:15

① 需要基於8051單片機的8鍵電子琴的C代碼!

首先你得編出8個鍵相應的音高和音調,分別對應信號的幅度和頻率。需要鍵盤中斷模塊,用到51的外部中斷來確定按鍵的序號,進入相應的中斷處理程序,並驅動蜂鳴器發出對應頻率的聲音。大概步驟是這樣的,具體的頻率實現就是定時器那些,得反復調試才能出來合適的聲音,c代碼網上應該很多,大同小異!

② 單片機中用矩陣鍵盤的8個按鍵分別控制8個LED,當按下時亮,鬆手時滅,用switch語句

#include<reg51.>
#define uchar unsigned char
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P1=0x0f; //發0掃描,列線輸入
if ((P2 & 0x0f) != 0x0f) //有鍵按下
{
delay(20); //延時去抖動
if ((P1&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行掃描初值
while((sccode&0x01)!=0)
{
P1=sccode;
if((P1&0x0f)!=0x0f)
{
recode=(P1&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
P0=0xff;
return 0; //無鍵按下,返回0
}

main()
{
unsigned char key;
while(1)
{
key=kbscan();
switch(key)
{
case 0x11:P0=0xfe;break;
case 0x12:P0=0xfd;break;
case 0x14:P0=0xfb;break;
case 0x18:P0=0xf7;break; //+
case 0x21:P0=0xef;break;
case 0x22:P0=0xdf;break;
case 0x24:P0=0xbf;break;
case 0x28:P0=0x7f;break; //-
default:break;
}
}
}

閱讀全文

與單片機連接8個按鍵相關的資料

熱點內容
java導入oracle資料庫 瀏覽:131
堅朗內開內倒鋁條演算法 瀏覽:256
華為閱讀新建文件夾 瀏覽:768
幻塔如何選擇伺服器 瀏覽:219
解壓先把文件壓到系統盤 瀏覽:822
access壓縮和修復資料庫 瀏覽:789
光纖交換機命令 瀏覽:511
白色桌放什麼文件夾 瀏覽:292
分治演算法思想 瀏覽:149
s曲線加減速演算法 瀏覽:400
可編程序控制器原理及應用答案 瀏覽:455
小熊編程教程 瀏覽:909
word轉換成pdf轉換器免費下載 瀏覽:609
群體智能基本演算法 瀏覽:371
可編程軟體分為哪兩種 瀏覽:341
格林什麼app可以看 瀏覽:698
飛盧app仙俠熱賣推薦怎麼樣 瀏覽:723
飛秋上傳文件到共享文件夾 瀏覽:694
伺服器的共享文件夾如何訪問 瀏覽:235
復盛螺桿壓縮機講解 瀏覽:337