中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單的定時器實現按鍵消抖,還望大家多指點!

發布時間:2020-04-02 19:38:32 來源:網絡 閱讀:876 作者:陽子8527 欄目:開發技術
/********************************
	按獨立按鍵使數碼管加1
********************************/
 #include <reg52.h>

 #define uchar unsigned char
 
 sbit KEY = P1 ^ 0;											 //定義獨立按鍵
 bit KEYSTA = 1;											 //按鍵的初始狀態
 uchar code DispCode[] = {0xc0,0xf9,0xa4,0xb0,				 //共陽數碼管
                          0x99,0x92,0x82,0xf8,
                          0x80,0x90,0x88,0x83,
                          0xc6,0xa1,0x86,0x8e};
void Timer0Init();											//定時器初始化函數
void KeyProcess();											//按鍵處理函數

void main()
{
	Timer0Init();
	KeyProcess();
}

void Timer0Init()
{
	TMOD |= 0x01;
	TH0 = 0xF8;			  //定時2MS
	TL0 = 0xCD;
	EA =1;
	ET0 = 1;
	TR0 = 1;
}
void KeyProcess()
{
	bit lasttime = 1;						 //定義前一次按鍵值,初始化為1;
	uchar count = 0;						 //計數值初始化為0;
	KEY = 0x01;								 //按鍵初始化;
	P0 =  DispCode[count];					 //數碼管初始化;
	while(1)
	{
		if (KEYSTA != lasttime)				 //如果“當前按鍵狀態”與“前一次按鍵狀態”不同,說明按鍵有動作;
		{
			if (lasttime == 1)				 //如果按鍵有動作了,那么前一次按鍵狀態為“彈起”(lasttime == 1),說明按鍵按下時,會響應動作;
			{
				count++;
				if (count >= 16)			 //計數加到16清零,只用一個共陽數碼管;
				{
					count = 0;
				}
				P0 =  DispCode[count];		 //共陽數碼管顯示相應的值;
			}
			lasttime = KEYSTA;				 //如果按鍵有動作,就更新前一次按鍵的值;
		}
	}
}

void Timer0IRQ() interrupt 1				//2MS中斷一次
{
	static keybuf = 0xFF;					//定義一個靜態按鍵緩存變量,且值為FF;主要是暫存按鍵狀態;
	TH0 = 0xF8;			                    //重新寫入初值;
	TL0 = 0xCD;
	
	keybuf = (keybuf << 1) | KEY;		    //左移一位,使當前的按鍵狀態移到按鍵緩存中;
	if (keybuf == 0)						//如果移8次,按鍵狀態都為0,說明按鍵真正按下;
	{
		KEYSTA = 0;						    //確定按鍵狀態為按鍵;
	}
	else if (keybuf == 0xFF)				//如果移8次,按鍵狀態都為1,說明按鍵未按下
	{
		KEYSTA = 1;
	}
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘南县| 玛纳斯县| 尉氏县| 平果县| 霸州市| 广平县| 深泽县| 任丘市| 湘潭市| 石景山区| 鹤山市| 育儿| 甘南县| 确山县| 邯郸市| 绍兴市| 阳东县| 凌云县| 南丹县| 仁化县| 墨脱县| 湾仔区| 宁晋县| 和田县| 武威市| 庆阳市| 海丰县| 彭泽县| 松江区| 陇西县| 武宣县| 青龙| 丰都县| 泗阳县| 双辽市| 双鸭山市| 横山县| 阿拉善盟| 独山县| 延边| 伊金霍洛旗|