長按是在短按的基礎上,以乙個很短的時間(10ms)再次判斷按鍵是否片於按下狀態,當達到一定的時間(1s)後,按鍵還處於按下狀態,說明是長按狀態,結合上一節的短按,下面實現乙個從0-99的累加,短按時一次加1,長按後,進入快速累加的過程,同時使用了定時器來定時重新整理數碼管,在display的處理上就和之前的不同,原來在display裡通過迴圈重新整理每個數碼管的顯示,現在放到了定時器定時觸發的事件裡,設定定時時間為2ms,這2ms只負責重新整理共陰極的8位數碼的一位,所以需要在定時事件裡處理每次重新整理不同位置的數碼管。
#include sbit keyadd = p0^0;sbit led = p0^1
;sbit latch1=p2^2;//
段鎖存sbit latch2=p2^3;//
位鎖存unsigned
char code duanma[10]=;//
顯示段碼值0~9
unsigned char code weima=;//
位碼unsigned char tempdata[8]; //
儲存顯示值
unsigned char vt = 0
;void delay(unsigned int
t);void display(unsigned char
index);
void inittime0(void
);void main(void
) }}
vextend = 0; //
設定初值,為下一次長按做準備
if (numadd == 99
) numadd = 0
;
else
numadd++;
tempdata[
0] = duanma[numadd / 10
];
tempdata[
1] = duanma[numadd % 10
]; }}}
}void delay(unsigned int
t)void display(unsigned char
index)
void inittime0(void
)void myinterrept(void) interrupt 1
stm32按鍵 長按 短按 函式 一
在stm32工程中,長按和短按的 書寫,呼叫的讀取按鍵狀態的底層函式。封裝成的按鍵函式 下面是函式的標頭檔案,和.c檔案的 使用定時器來掃瞄按鍵。define key on 1 define key off 0 define key null 0 define key short 1 define ...
簡易按鍵消抖(使用ADC,短按 長按)
按鍵是非常常用的小外設,要麼配上外部中斷,要麼直接接i o口掃瞄狀態,我這邊因為埠不夠就用了adc功能。先講短按 每個按鍵對應不同的電壓值,沒有按鍵按下時adc輸入通道接的是5v,按下之後我設計了以下幾種情況 1.sw1 0v 2.sw2 2.5v 3.sw3 3.3v 4.sw4 3.8v 理論上...
STM32獨立按鍵之長按 短按
內容如題 1.獨立按鍵 軟體消抖 晶元引腳初始化為上拉輸入 define key l state ll gpio isinputpinset key l port,key l pin define key r state ll gpio isinputpinset key r port,key r ...