EX0=0; //停止测频外中断
testok=1; //置位测频完成标志
}
}
/*--------------------------------------
加热控制过〇检测函数 void pass0(void)
使用外部X1中断,寄存器组2
检测过〇点,给定时器T1赋初值
--------------------------------------*/
void pass0(void) interrupt 2 using 2
{
unsigned char code powertab[]={0xd8,0xf0,0xe2,0x63,0xe5,0x25,0xe8,0x3e,0xeb,0x16,0xed,0xda,0xf0,0xb2,0xf3,0xcb,0xf7,0x8d,0xf7,0x8d};//10个功率档位的可控硅导通角延时参数表
TH1=powertab[2*heatpower]-1;
TL1=powertab[2*heatpower+1]; //市电过零后,根据当前设置的档位给定时器T1赋延时参数
ET1=1; //允许定时器T1中断
TR1=1; //打开定时器T1
}
/*------------------------------------------
可控硅触发信号控制函数 void triaCCtrl(void)
使用定时器T1中断,寄存器组3
向可控硅送出触发信号
------------------------------------------*/
void triacctrl(void) interrupt 3 using 3
{
register unsigned char i;
triac=0; //输出可控硅导通信号
ET1=0; //关闭定时器T1中断
TR1=0; //终止定时器运行
for (i=0;i<2;i++); //延时,保证导通信号有足够的宽度
triac=1; //完成可控硅导通信号
}
上一页 [1] [2] [3] [4]
本文关键字:单片机 程序 热水器 51单片机,单片机-工控设备 - 51单片机