当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。

当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。,第1张

外部中断和定时器中断互补干涉,你的51单片机外部中断1和外部中断0都被使用了,不会对你使用定时器中断产生影响的,设置很简单,程序代码附后,要想是定时器中断1的优先级低于外部中断,你可以将外部中断优先级设置为高优先级,而定时器中断设置为低优先级。这样就可以了。初始化程序为:

init()

{

    TMOD=0x10;

    EX0=1;

    EX1=1;

    IT0=1;

    IT1=1;

    PX0=1;

    PX1=1;

    PT1=0;

    TR1=1;

    ET1=1;

    TH1=xxxxx;

    TL1=xxxxx;

    EA=1;

}

#include<reg51h>

#define uchar unsigned char

uchar led=0xfe;

sbit kr=P3^2;

sbit kl=P3^3;

uchar key;

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i<120;i++);

}

void ext0() interrupt 0

{

key=1;

while(kr==0);

}

void ext1() interrupt 2

{

key=2;

while(kl==0);

}

main()

{

EX0=1;

EX1=1;

IT0=1;

IT1=1;

EA=1;

while(1)

    {

    if(key==1){P1=led;led=_cror_(led,1);}

    else if(key==2){P1=led;led=_crol_(led,1);}

    else P1=0xff;

    delay(200);

    }

}

电平触发就是说只有这个信号为低电平的时候,才会发出有效信号,而边沿触发(下降沿有效)的意思是只有在发生由高电平向低电平变化的时候,此时发出的才是有效信号。假如说,你的51单片机的p32和33分别外接两个可调节高低电平的开关A和B,32是边沿触发,33是电平触发。按下A键的那一刹那,就是还没有按到底,这个过程发出的是有效信号。按下B的时候,只有按到最底部,就是实实在在的低电平的时候,才会发出有效信号。

#include<reg51h>

#define uchar unsigned char

uchar keyval=0;

sbit key=P3^2;

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i<120;i++);

}

main()

{

uchar i=0;

EX0=1;

IT0=1;

EA=1;

while(1)

    {

    switch(keyval)

        {

        case 0:

        P1=0xff<<i;;

        delay(200);

        break;

        case 1:

        P1=0xff>>i;

        delay(200);

        break;

        }

        i++;

        i%=8;

    }

}

void ext0() interrupt 0

{

keyval++;

keyval%=2;

}

流水灯:

#include<reg51h>

#include<intrinsh>

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i<120;i++);

}

main()

{

P0=0xfe;

while(1)

    {

    P0=_crol_(P0,1);

    delay(200);

    }

}

按键控制两个灯

#include<reg51h>

sbit led1=P1^0;

sbit led2=P1^1;

void ext0() interrupt 0

{

led1=~led1;

}

void ext1() interrupt 2

{

led2=~led2;

}

main()

{

EX0=1;

EX1=1;

IT0=1;

IT1=1;

EA=1;

while(1);

}

以上就是关于51单片机外部中断1和0都被使用了,但是还需要使用一个定时器中断,请问该怎么设置呢全部的内容,包括:51单片机外部中断1和0都被使用了,但是还需要使用一个定时器中断,请问该怎么设置呢、求一个程序,两个独立按键控制流水灯左右循环的程序,谢谢、当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/8861421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存