按鍵長按短按

2022-03-31 08:14:41 字數 1181 閱讀 9912

長按是在短按的基礎上,以乙個很短的時間(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 ...