51定时器用T0和T1共同控制产生精确的PWM波形例程
时间:2018-08-03 16:00:02
手机看文章
扫描二维码
随时随地手机看文章
[导读]#includesbit P1_1 = P1^1;//定时器初始化void InitTimer(void){TMOD = 0x11;EA= 1;ET0= 1;ET1= 1;//开启T0和T1的中断TH1= 0xd8;TL1= 0xf0;//定义10msTH0= 0xF8;TL0= 0x30;//定义2msTR0= 1;TR1= 1;//开启定时器0和1P
#include
sbit P1_1 = P1^1;
//定时器初始化
void InitTimer(void)
{
TMOD = 0x11;
EA= 1;
ET0= 1;
ET1= 1;//开启T0和T1的中断
TH1= 0xd8;
TL1= 0xf0;//定义10ms
TH0= 0xF8;
TL0= 0x30;//定义2ms
TR0= 1;
TR1= 1;//开启定时器0和1
P1_1 = 1;
}
//T0的中断服务程序
void T0ISR(void) interrupt 1 using 1
{
P1_1 = 0;
TR0= 0;
TH0= 0xF8;
TL0= 0x30;//定义2ms
}
//T1的中断服务程序
void T1ISR(void) interrupt 3 using 2
{
P1_1 = 1;
TR0= 1;
TH1= 0xd8;
TL1= 0xf0;//定义10ms
}
void main(void)
{
P1_1 = 0;
InitTimer();
while(1)
{
}
}





