新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機中最簡單實用的按鍵程序

單片機中最簡單實用的按鍵程序

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
我想了很久才寫成的這個按鍵程序;先講講我的思路,

我的思路很簡單就是一般的按鍵不是需要去抖動延時,我想單片機夠慢的了,用什么方法不要去延時,所以我就想到在定時中斷中插入按鍵掃描程序,如果連續(xù)兩個中斷程序中都有按鍵,就可以認為有按鍵。

本文引用地址:http://butianyuan.cn/article/201611/321325.htm

但是我下面的這個程序中有個缺陷,那就是沒有加入去抖動的方法,為了縮短短程序的總長度,我就是沒有寫,這個我用在一個平時的一個小的測試部件控制程序中,去抖動沒什么實際的意義,就沒有寫!

ucharkey = 0;
ucharkey0 = 0;
ucharkey1 = 0;
ucharkey2 = 0;
ucharkey3 = 0;
ucharkey4 = 0;

//以上為全局變量


voidkey_saomiao(void)
{
//uchara = 0;

P3 = P3 | 0xF0;
nop();
key0 = P3;
key0 = key0 >> 4;
key2 = key2 | (key0 ^ key1);
key1 = key0;
key = key | (key2 & key0);
key2 = key ^ key2;
}


void time0_init(void)
{
uchar a;

a = TMOD;
a = a | 0x01;
TMOD = a;
//IE = 0x82;
TH0 = 0x10;
TL0 = 0x00;
ET0 = 1;
TR0 = 1;
EA = 1;
}

void time0_int(void) interrupt 1
{
TH0 = 0x10;
TL0 = 0x00;
TR0=1;
time_count++;
key_saomiao();
if(time_count > 20)
{
LED0 = ~LED0;
time_count = 0;
}
}



評論


技術(shù)專區(qū)

關(guān)閉