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

單片機按鍵處理程序

發布時間:2023-02-14 10:06:17

⑴ 80C51單片機怎麼用按鍵選擇兩個不同的程序

如果要使用按鍵選擇兩個不同的程序,可以採用如下方法:
1、在80C51單片機的程序中定義兩個不同的子程序,分別處理兩個不同的功能。
2、在80C51單片機的程序中定義一個循環,用於監聽按鍵的輸入。
3、在循環中,通過讀取按鍵的狀態來判斷用戶按下了哪個按鍵。
4、如果用戶按下了第一個按鍵,就調用第一個子程序;如果用戶按下了第二個按鍵,就調用第二個子程序。
5、在子程序中實現具體的功能代碼。
以上就是使用按鍵選擇兩個不同的程序的基本流程。

⑵ 簡述單片機獨立按鍵的任務分為幾步,分別是什麼

5步。分別是判斷按鍵是否按下,延時消抖,再次判斷按鍵是否按下,等待按鍵抬起,執行預定語句。
一種是普通io口,一種是中彈的形式,普通io口是按下按鍵觸發按鍵子程序案件,指程序經過一段時間的,比如20~50毫秒的延時再次毒案件,如果按鍵值還是會按下,那麼就延時等待按鍵抬起按鍵,抬起後執行按鍵程序,然後返回中彈也是一樣的,按下按鍵之後進入中段讀按鍵狀態,是否還是為按一下是按一下等待延時再讀等待,然後等待案件採取後執行相應的代碼,然後退出總代。

⑶ 51單片機中按鍵程序用C怎麼寫

這個太簡單了吧,記住寫程序定時器要一直跑,建立一個時基,像個手錶的時間一樣要一直跑,即有time_125us,time_1ms,time_100ms,time_1s,time_1min,time_1hour等時間變數建立時基一直走。其它程序可以分時掃描也可以輪流掃描,不能停留死等,像電腦里的程序一樣表面看起來各個程序是一直運行的,即各個程序中不能有delay_1ms之類的函數,如果要定時應該申請一個變數在時基里處理,如等待2s可以這么寫
if(step==0){
time=2,time_100ms=0,step=1;}
if((step==1)&&(time==0)){//2s到
//等待2s後要執行的代碼
}
在時基時每1s把time減1,減到0為止即if(time)time--;
對按鍵的寫法一般用採集的方法如按鍵後IO為低
if(!IO){
//低電平,有按鍵
key_time++;
if((key_time==100)&&(!key_flag)){
//已經賦值了就不再賦值了
key_flag=1;
key_flag_bak=1;
}
else{
//無按鍵
key_time=0;
key_flag_bak=0;
}
if(key_flag&&(!key_flag_bak)){
//有按鍵並松開,即松開響應
time=2;
//亮2s
key_flag=0;//把鍵值清0
}
if(time){
LED_ON;//燈亮
}
else
LED_OFF;

⑷ 51單片機如何用一個按鍵控制一段程序的運行與停止

1、創建項目文件。

6、當按下一個按鍵時,關閉燈,整個程序運行,再按一次,程序停止。

⑸ 單片機按鍵觸發C程序

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

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

⑹ 單片機應用系統的鍵盤處理程序主要包括哪幾部分內容

輸出,輸入,復位。
1、單片系統的鍵盤程序包括輸出,由鍵盤進行敲擊字母輸出。
2、輸入是通過打完的字通過顯示器進行輸入。
3、復位是將錯誤的地方進行刪除復位。

⑺ 單片機設置一個按鍵重啟主程序

首先在程序的開頭加入一句定義,sfr SAP = 0xe7;
SAP 是名稱,可以隨意改寫
之後在外部中斷或程序內添加一個按鍵檢測的語句
例如
if(K1==0)//如果按鍵被按下
{
YS(20);//延時去抖
if(K1==0)//如果是有效按鍵觸發
{
SAP=0x60;//執行軟復位
}
}
此按鍵處理語句即可實現單片機的軟復位操作
至於sfr SAP = 0xe7;這一條語句可以放在#include<reg52.h>頭文件下面
#include<reg52.h>
sfr SAP = 0xe7
sbit K1=P3^3;//按鍵
至於這兩個地址0x60和0xe7代表什麼,我也查閱了很多資料

⑻ 單片機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單片機匯編語言編程獨立按鍵

四個按鍵,定義如下:

KEY1 BIT P3.0
KEY2 BIT P3.1
KEY3 BIT P3.2
KEY4 BIT P3.3

按鍵處理程序:
;-----------------------------------
READ_KEY:

JB KEY1, K2
CALL DELAY
JB KEY1, K2
JNB KEY1, $

PUSH ACC
INC 75H
MOV A, 75H
CJNE A, #10, ZINT01
MOV 75H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K2: JB KEY2, K3
CALL DELAY
JB KEY2, K3
JNB KEY2, $

PUSH ACC
INC 76H
MOV A, 76H
CJNE A, #10, ZINT01
MOV 76H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K3: JB KEY3, K4
CALL DELAY
JB KEY3, K4
JNB KEY3, $

PUSH ACC
DEC 75H
MOV A, 75H
CJNE A, #255, ZINT03
MOV 75H, #9
ZINT03:
POP ACC

JMP K_EXIT
;---------------
K4: JB KEY4, K_EXIT
CALL DELAY
JB KEY4, K_EXIT
JNB KEY4, $

PUSH ACC
DEC 76H
MOV A, 76H
CJNE A, #255, ZINT04
MOV 76H, #9
ZINT04:
POP ACC

K_EXIT:
RET
;---------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
;-----------------------------------

⑽ 單片機按鍵程序

檢測一個按鍵:

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

閱讀全文

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

熱點內容
解壓文件蘋果手機rar 瀏覽:145
centos開機命令行模式 瀏覽:695
遍歷所有listpython 瀏覽:660
力控加密文件夾 瀏覽:515
如何更改移動伺服器密碼 瀏覽:686
蘋果8p手機加密 瀏覽:749
ipad建文件夾怎麼弄 瀏覽:833
iphone13對wap3加密 瀏覽:555
pdf文件打開失敗 瀏覽:913
dubbo怎麼調用不同伺服器介面 瀏覽:40
全能解壓王app歷史版本 瀏覽:75
優先隊列與拓撲排序演算法 瀏覽:281
pdf轉換formacbook 瀏覽:871
pdf文件內容怎麼編輯 瀏覽:48
134壓縮機排氣溫度多少 瀏覽:256
unity等待編譯後 瀏覽:806
黑鯊手機鎖屏視頻在哪個文件夾 瀏覽:781
wow地圖解壓後怎麼壓縮 瀏覽:823
有pdf卻打不開 瀏覽:462
七星彩軟體app怎麼下載 瀏覽:219