TMOD=|0x20;//定时器1工作方式2,8位自动重装,TH1是重装值,TL1是初值 //初始化外部中断
TH1=0x00; //重载值 2^8=256 us
TL1=0x00; //初始化值
ET1=1; //开中断
TR1=1; //开定时器1
IT0 = 1; //指定外部中断0下降沿触发,INT0 (P32) //初始化定时器
EX0 = 1; //使能外部中断
EA = 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>
#include<intrinsh>
#define uchar unsigned char
uchar keyval;
uchar led1=0xfe;
uchar led2=0x00;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
void ext0() interrupt 0
{
keyval=1;
}
void ext1() interrupt 2
{
keyval=2;
}
main()
{
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
while(1)
{
if(keyval==1)
{
P0=led1;
delay(100);
led1=_corl_(led1,1);
}
if(keyval==1)
{
P0=led2;
delay(100);
led2=~led2;
}
}
}
以上就是关于单片机定时器参数全部的内容,包括:单片机定时器参数、51单片机外部中断1和0都被使用了,但是还需要使用一个定时器中断,请问该怎么设置呢、51单片机!大佬们求助啊,按下K1灯从上往下依次亮,按下K2全部灯闪烁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)