#include "reg52.h"
#define const_voice_short 20 //蜂鳴器短叫的持續時間
#define const_voice_long 140 //蜂鳴器長叫的持續時間
#define const_key_time1_short1 20 //短按的按鍵去抖動延時時間
#define const_key_time_long1 400 //長按的按鍵去抖動延時時間
#define const_key_time1_short2 20
#define const_key_time_long2 400
void initial_myself();
void initial_peripheral();
void delay_long(unsigned int uidelaylong);
void t0_time();
void key_service();
void key_scan();
sbit key_sr1=p0^0;
sbit key_sr2=p0^1;
sbit key_gnd_dr=p0^4;
sbit beep_dr=p1^5;
unsigned char uckeysec=0;
unsigned int uikeytimecnt1=0; //按鍵去抖動延時計數器
unsigned char uckeylock1=0; //按鍵觸發後自鎖的變數標誌
unsigned char ucshorttouchflag1=0; //短按的觸發標誌
unsigned int uikeytimecnt2=0;
unsigned char uckeylock2=0;
unsigned char ucshorttouchflag2=0;
unsigned int uivoicecnt=0; //蜂鳴器鳴叫的持續時間計數器
void main()
}void key_scan() //按鍵掃瞄函式,放在定時中斷裡
}else if(uckeylock1==0) //有按鍵按下,且第一次被按下 }
if(key_sr2==1)
}else if(uckeylock2==0)}}
void key_service()
}void t0_time() interrupt 1
else
th0=0xf8;
tl0=0x2f;
tr0=1;
}void delay_long(unsigned int uidelaylong)
void initial_peripheral()
微控制器實現同乙個按鍵的長按3s與長按10s操作
如何實現微控制器單擊 雙擊 長按操作,可以參考別人文章 在這裡我主要將這個功能再進行擴充套件,實現按鍵的單擊 雙擊 長按3s 長按10s操作。需要修改的地方 1 預定義 define key long 3 3 注釋這行 define key long 3s 3 返回值,長按3s define key...
使用setjmp的時候,同乙個訊號只能觸發一次
linux的異常處理 基於setjmp和longjmp的執行控制方式是linux平台上c語言處理異常的標準方案,已被廣泛運用到由c語言開發的軟體系統和鏈結庫中,例如jpg解析庫,加密解密庫等等。setjmp和longjmp是以c語言標準庫函式的形式提供的,setjmp 函式能夠儲存程式當前的執行環境...
linux vnc 與server共享同乙個桌面
伺服器端 需要安裝軟體 tightvncserver 和 vnc4server,可以google,這裡就不解釋了,網上很多。我這裡是ubuntu 1.sudo apt get install tightvncserver 2.sudo apt get install vnc4server 3.vnc...