|
1、將8個按鍵做在一個端口上,如P1口。讀到的鍵值放于R_THIS(8位)中,上次的鍵值放于R_LAST(8位)中,初始化R_LAST=00000000B(如此首次不會造成下沿),如果R_LAST.X=1(第X鍵上次未按),R_THIS.X=0(第X鍵本次按下),則認(rèn)為:第X鍵產(chǎn)生了下沿。
2、設(shè)立一個開始鍵(如P2.0),開始鍵按下后(做一個標(biāo)記,如B_START=1),才開始掃描P1口,以防偷槍。也就是說只有當(dāng)B_START=1時,產(chǎn)生下沿的鍵才被認(rèn)為有效。
3、用下沿作為強答,而不用低電平,以防止偷槍。因為偷槍后必是低電平,不會是下降沿。
4、掃鍵用T0中斷來做,每次中斷掃鍵一次,先將R_THIS送至R_LAST(上次采樣值),再將本次采樣鍵值存于R_THIS,并作一次判斷。如果B_START=0(未開始),不掃鍵,T0中斷時間取N ms(建議N取2,=1,3,4,5也可以,時間越短越精確)
|
|