導航:首頁 > 操作系統 > 單片機鍵模數組

單片機鍵模數組

發布時間:2024-04-11 20:26:37

1. 51單片機鍵盤輸入

用不著數組。

只要增加一個數字vlaue,再讓 key 從keyscan()函數中,得到0~9,

最後如下計算到vlaue中: vlaue = vlaue * 10 + key;

以後,每得到一個按鍵數值(0~9),都執行一遍上面的算式,即可。

2. 怎麼用單片機按鍵控制循環跑馬燈

我剛好寫過一個這樣的程序,參考一下吧,希望對你有幫助
/*硬體電路連接:流水燈接在P0口, 陽極接高電平,
陰極接P0口,4個按鍵分別接P3.4,P3.5, P3.6,P3.7 ,按下時是低電平 */
#include <regx51.h>
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//左流水燈數組
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//右流水燈數組
int c[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; //逐盞點亮,逐盞滅掉數組
//************************************************************************************************************
void delay()

//延時子程序
{int i;
for(i=0;i<30000;i++);
}

//**********************************************************************************************************
void aa() //實現要求(1)的子程序(key1按下時流水燈,彈開時全滅)
{ int i=0;
while(!key1) //判斷是否有鍵按下
{P0=a[i];delay();i++;if(i==8)i=0;}//流水燈

}

//*************************************************************************************************************
void bb() // 實現要求(2)的子程序(key2按下時實現計數功能,彈開時停止計數;)
{
while(!key2){P0--;delay();if(P0==0)P0=0xff;} //判斷是否有鍵按下,按下則計數器加1

}

//*************************************************************************************************************
void cc() // 實現要求(3)的子程序(key3按下時實現逐盞點亮,逐盞滅掉)
{ int i=0;

P0=0xff ;// 發光二極體全滅
while(!key3) //判斷是否有鍵按下
{P0=c[i];delay();i++;if(i==16)i=0;}//逐盞點亮,逐盞滅掉
}

//*************************************************************************************************************
void dd() // 實現要求(4)的子程序(key4按第一次按下,左流水,第二次按下,右流水,第三次按下,熄滅)
{ int i=0,j=0,k=0,h=0;
loop:P0=0xff;
if(key4==0)
//第一次判斷是否有鍵按下
{for(i=0;i<30000;i++); //延時防抖動
if(key4==1)
//判斷按鍵是否彈起
while(1){P0=a[j];delay();j++;if(j==8)j=0; //左流水燈
if(key4==0)
//第二次判斷是否有鍵按下
{for(i=0;i<30000;i++);
//延時防抖動
if(key4==1)
//判斷按鍵是否彈起
while(1){P0=b[k];delay();k++;if(k==8)k=0; //右流水燈
if(key4==0)
//第三次判斷是否有鍵按下
{for(i=0;i<30000;i++);
//延時防抖動
if(key4==1)
//判斷按鍵是否彈起
goto loop;
//跳轉到LOOP處,即P3=0xff,此時燈全滅
}}}}}}

//****************************************************************************************************************

main()
{while(1){P0=0xff;
while(!key1)aa();

while(!key2)bb();
while(!key3)cc();

while(!key4)dd();

}}

3. c51單片機按鍵每按一次同時數碼管顯示數字加一是什麼

-x0dx0a建立孝鎮一個數組,用於存放 0-9的段碼。x0dx0aint Shuzu[]={---------};x0dx0a如果會用指針x0dx0aint *P;x0dx0aP=Shuzu; //指針指向數組!x0dx0a用外部中斷,x0dx0a每中斷一次,中斷服務程序將數組元素加一P0=Shuzu[ax++](或指針加一:P0=*P++)x0dx0a以上假設P0口驅動數碼管!x0dx0a至於數碼管使用的是共陽還是共陰,就把相對的數值存在數組中!x0dx0a-x0dx0a外部中斷0的中斷程序入口x0dx0avoid TI_0() interrupt 0x0dx0a{x0dx0a --------x0dx0a}x0dx0a都提示到這里了,下面自己該會吧?x0dx0a如果是新手的新手---想要我幫你寫全部程序--x0dx0a那至少你得把你單片機晶元型號說給我巧虧粗才能幫你!x0dx0a還有數碼管是用單片機哪個IO口!x0dx0a數碼管是怎麼空含連接的?(串/並)

4. 關於51單片機鍵盤輸入定時

給個提示,在按鍵掃描程序里,將掃描按鍵的值給一個數組table[2] 按入2個鍵 後,將table[2]的兩個元素組合成一個變數a,啟動定時器,將定時時間設為a,時間到後運行加熱器驅動程序

閱讀全文

與單片機鍵模數組相關的資料

熱點內容
java課表 瀏覽:551
如何在pdf裡面修改 瀏覽:925
橙光製作器檔案框在哪個文件夾 瀏覽:989
php如何抓取網頁數據 瀏覽:640
計數器單片機 瀏覽:964
游戲aoi演算法 瀏覽:844
phpmysqlint 瀏覽:912
怎麼從appstore商城買東西 瀏覽:184
大秀直播平台源碼 瀏覽:424
java視屏 瀏覽:934
電腦中如何給程序加密 瀏覽:240
java排序容器 瀏覽:942
職稱證書在哪個app下載 瀏覽:362
四九演算法算男女 瀏覽:659
javawindows8 瀏覽:496
2021世界程序員節 瀏覽:484
php翼支付 瀏覽:882
盈通伺服器ip地址 瀏覽:790
3des演算法的c語言實現 瀏覽:873
網上怎樣購買伺服器地址 瀏覽:815