導航:首頁 > 操作系統 > 單片機按鍵程序

單片機按鍵程序

發布時間:2022-02-04 00:37:41

『壹』 單片機如何實現一個按鍵切換兩個程序

#include<reg51.h>
sbitkey=P1^0;
bitflag=0;
voidA(void)
{
.....
}
voidB(void)
{
......
}
main()
{
while(1)
{
if(key==0)
{
while(key==0);
flag=~flag;
}
if(flag)B();
elseA();
}
}

『貳』 51單片機最有效的按鍵處理程序

只有更好,沒有最好。只有更有效,沒有最有效。適合當前項目需要的程序就是合適的程序。針對51單片機,沒有一個按鍵程序是包打天下的。通常的按鍵掃描程序大致為:
掃描按鍵 ==>按鍵去抖(如果去抖過程中按鍵值變化了就去抖失敗,重新掃描按鍵) ==>得到有效鍵 ==》可能需要針對長按或重復按鍵要求做不同處理 ==>等待按鍵松開

『叄』 單片機按鍵短按和長按的程序

設置定時器100毫秒中斷a值自家1
設置按鍵值位變數k
設置按鍵埠k1
if (!k1)按鍵按下

delay(20);去痘
if (!k1)確認按下
a=0;計時數清0 確保長按時間精準
while(!k1)按鈕沒釋放 死循環檢測按下時間
if(a>30)達到3000毫秒
k=!k按鍵值取反 沒按前為0 長按3秒後為1 短案無效

『肆』 單片機按鍵觸發C程序

while(1)
{
if(keyflag==1) //有按下切出死循環
break;
else continue;
}
while(1)
{
..... //用戶自己的程序
}

這種方法是模擬按鍵按下啟動真正的應用程序,觸發的是自己的功能程序短。從效果上來還是可以的

『伍』 單片機按鍵程序

檢測一個按鍵:

;--------------掃描按鍵------
jb p1.0,next;沒按下,NEXT下一個
lcall t20ms;有,延遲20毫秒去抖
jb p1.0,next;還是沒按下,下一個
jnb p1.0,$;有,等它松開
...;
...;這里寫這個鍵的功能
next: 檢下一個鍵,或返回
....
;---------延遲---------
t20ms:
...
ret

『陸』 單片機C語言按鍵開關程序

#include<reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
voiddelay_ms(uint);
sbitled0=P0^0;
sbitled1=P0^1;
sbitkey1=P3^2;
sbitkey2=P3^3;
voidmain()
{
uchari=0;
ucharj=0;
while(1)
{
if(key1==0)//按鍵1
{
delay_ms(10);
if(key1==0)
{
i++;
i=i%2;
switch(i)
{
case0:led0=1;break;//關小燈
case1:led0=0;break;//開小燈
default:break;
}
}
while(!key1);
}

if(key2==0)//按鍵2
{
delay_ms(10);
if(key2==0)
{
j++;
j=j%2;
switch(j)
{
case0:led1=1;break;//關小燈
case1:led1=0;break;//開小燈
default:break;
}
}
while(!key2);
}
}
}
voiddelay_ms(uintz)//延時子程序
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

『柒』 51單片機中按鍵程序用C怎麼寫

用一個定時器,先賦值一個num,當num=20的時候,LED亮的時間是1s,當按下鍵,讓num+20(12M的晶振)在定義一個a,判斷a是否與num相等。這樣試試呢....

『捌』 51單片機獨立式按鍵程序

#include<reg52.h>
unsignedcharID;
sbitk1=P3^7;//定義按鍵埠
voiddelay()
{
TMOD=0x10;//定時器的工作方式
TH1=0xd8;
TL1=0xf0;
TR1=1;
while(!TF1);//這里錯了,是定時器1
TF1=0;
}
voidmain()
{
while(1)
{
if(k1==0)
{
delay();//去抖動
if(k1==0)//檢測按鍵確實按下,進行按鍵處理
{
ID++;
if(ID==0)
{
ID=0;
}
while(!k1);//這里錯了,多餘的加了==0
}
}
switch(ID)
{
case0:P1=0x3f;break;
case1:P1=0x06;break;
case2:P1=0x5b;break;
case3:P1=0x4f;break;
case4:P1=0x66;break;
case5:P1=0x6d;break;
case6:P1=0x7d;break;
case7:P1=0x07;break;
case8:P1=0x7f;break;
case9:P1=0x6f;break;
default:break;
}
}
}

『玖』 51單片機獨立按鍵的程序

51單片機獨立按鍵的程序獨立按鍵的程序的話,這個可以從一些一些具體的方面來進行一些查看。

『拾』 單片機一個按鍵控制一個程序

你把幾種方式寫成幾個子程序,然後主程序調用按鍵檢測,根據檢測到的鍵值調用對應的子函數即可

閱讀全文

與單片機按鍵程序相關的資料

熱點內容
oppor系列如何解除應用加密 瀏覽:599
程序員那麼可愛姜逸城初戀 瀏覽:496
modbustcp編程 瀏覽:491
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:95
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:847
x86在arm上編譯 瀏覽:8
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:187
java獲取網頁url 瀏覽:625
怎麼做解壓神器泡泡版 瀏覽:967
自己動手做一個c編譯器 瀏覽:930
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:249
java樹形演算法 瀏覽:642
通達信加鎖指標源碼怎麼看 瀏覽:755
將同名文件移動到部分同名文件夾 瀏覽:404
擺盪指標加壓力線源碼 瀏覽:916
新一代單片機特徵 瀏覽:770