- #include <REG52.h>
-
-
sbit key_1=P3^2;
-
sbit key_2=P3^3;
-
//num為1延遲1ms,軟件防抖延遲20ms
-
void Delay(unsigned int num)
-
{
-
unsigned int i,j;
-
for(i=0;i<num;i++)
-
for(j=0;j<1827;j++)
-
;
-
}
-
-
void interrupt_init()
-
{
-
IE=1<<7|1|1<<2;//第1,3,8位為1
-
TCON=1|1<<2;//第1,3位為1,負(fù)邊沿觸發(fā)
-
}
-
-
void out1() interrupt 0 using 1
-
{
-
Delay(2);//延遲20ms
-
if(key_1==0);
-
{
-
P0=0xf0;
-
}
-
}
-
-
void out2() interrupt 2 using 1
-
{
-
Delay(2);
-
if(key_2==0);
-
{
-
P0=0x0f;
-
}
-
}
-
-
int main()
-
{
-
interrupt_init();
-
while(1)
-
;
-
}
定時器中斷時候,需要處理TMOD設(shè)置相關(guān)方式,TCON設(shè)置TR為1,允許計時,IE中設(shè)置EA和ET
外部中斷時候,需要設(shè)置TCON中的IT為相應(yīng)位,設(shè)置中斷觸發(fā)方式,TCON中的IE0和IE1是中斷請求標(biāo)志,由硬件置1和0
然后設(shè)置IE中的EA和EX