『壹』 單片機如何實現一個按鍵切換兩個程序
#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單片機獨立按鍵的程序獨立按鍵的程序的話,這個可以從一些一些具體的方面來進行一些查看。
『拾』 單片機一個按鍵控制一個程序
你把幾種方式寫成幾個子程序,然後主程序調用按鍵檢測,根據檢測到的鍵值調用對應的子函數即可