按住乙個獨立按鍵不鬆手的連續步進觸發

2022-07-17 20:06:13 字數 1804 閱讀 5764

#include "reg52.h"

#define const_voice_short 40

#define const_key_time1 20

#define const_key_time2 20

/*如何知道1秒鐘需要多少個定時中斷?

其實前面程式已經說過了,在這再囉嗦一下。

這裡需要先編寫一小段程式進行測試,得到測試的結果後再按比例修正。

比例:第一步:在程式**上先寫入1秒鐘大概需要200個中斷。

第二步:基於以上1秒鐘的基準,編寫乙個60秒的簡單測試程式(如果編

寫超過60秒的時間,這個精度還會更高)。比如,編寫乙個用蜂鳴器的

聲音來識別計時的起始和終止的測試程式。

第三步:把程式燒錄到微控制器後,上電開始測試,手上同步開啟手機裡的

秒錶。假設微控制器僅僅跑了27秒。

第四步:最終得到1秒鐘需要的定時中斷次數是:const_time_1s=(200*60)/27=444

*/#define const_time_0_25s 111 秒的時間需要的定時中斷次數

#define const_time_1s 444  //1秒鐘的時間需要的定時中斷次數

void initial_myself();

void initial_peripheral();

void delay_long(unsigned int uidelaylong);

void t0_time();

void key_service();

void key_scan();

void led_run();

sbit key_sr1=p0^0;

sbit key_sr2=p0^1;

sbit key_gnd_dr=p0^4;

sbit beep_dr=p1^5;

sbit led_dr=p3^5;

unsigned char uckeysec=0;

unsigned int uikeytimecnt1=0; //按鍵去抖動延時計數器 

unsigned int uikeyctntycnt1=0; //按鍵連續觸發的時間間隔延時計數器

unsigned char uckeylock1=0;  //按鍵觸發後自鎖的變數標誌

unsigned int uikeytimecnt2=0;

unsigned int uikeyctntycnt2=0;

unsigned char uckeylock2=0;

unsigned int uivoicecnt=0;

unsigned int uisetnumber=0;  //設定的資料

void main()

}void led_run()

void key_scan()

else if(uckeylock1==0) //有按鍵按下,且被第一次按下

}else if(uikeytimecnt1const_time_0_25s)  //按住沒鬆手,每0.25秒觸發一次

}if(key_sr2==1)

else if(uckeylock2==0)

}else if(uikeytimecnt2const_time_0_25s)}}

void key_service()

}void t0_time() interrupt 1

else

th0=0xf8;

tl0=0x2f;

tr0=1;

}void delay_long(unsigned int uidelaylong)

void initial_peripheral()

按住乙個按鍵不鬆手的加速勻速觸發

實現功能 兩個獨立按鍵s1和s2,s1作為加鍵,s2作為減鍵。每按一次s1鍵,則被設定引數uisetnumber自加1.如果按住s1鍵不鬆手超過1秒,被設定引數uisetnumber以不斷邊塊的時間間隔往上自加1,這個為加速觸發的功能,直到到達極限,則以固定的速度加1,這個過程叫勻速。s5作為減法按...

pyqt實現乙個按住拖動有效果的按鈕

看到有些部落格上有這種樣式的好看背景彩蛋,因此自己打算用qt去實現一下。這個樣式的實現主要基於控制項的重繪。由於我的 過長,在此我只貼一下核心 def paintevent self,qevent global x,y print 重繪中 x,y 0,0 painter qpainter self ...

乙個按鍵程式的思考

2017.07.26 程式筆記 今天思考乙個關於按鍵的程式 結構體如下 if pc get key key ture 思考了一下,這個可以作為電堆按鍵檢測的乙個大體的框架,結合基本的按鍵處理程式,就可以實現功能if 0 io keyenter 如果有鍵按下了 else while 0 io keye...