| | | | | 每次进中断,都是 num++; num2++;,触发点都是变的,闪烁也就不奇怪了 |
|
|
| | | | | | | 这个num和num2用来判断延时的时间不是吗?a是设定的触发点的值,num和num2在中断里每次1ms。没懂,编程有点弱,能再仔细说说吗?感谢
|
|
|
| | | | | | | 这是我的按键程序,其中a代表延时的时间。num和num2在中断里表示是否到了a毫秒,如果到了,开始导通。
void Init_Int1()
{
EA = 1;
EX1 = 1;
IT1 = 1;
}
void Int1_Fuwu() interrupt 2
{
delay(2);
if(Int1 == 0)
{
delay(2);
if(Int1 == 0)
{
delay(2);
if(Int1 == 0)
{
Flag_Key = 1;
}
}
}
}
void Key_Function()
{
if(Flag_Key == 1 && K1 == 0)
{
Flag_Key = 0;
a ++;
if(a == 10)
{
a = 0;
}
}
if(Flag_Key == 1 && K2 == 0)
{
Flag_Key = 0;
a --;
if(a == 0)
{
a = 10;
}
}
}
|
|
|
| | | | | | | | | 用示波器看你的触发脉冲和过零时间间隔是不是固定的先,还有固定亮度闪烁吗?用个计数器做触发定时,每次过零时清零,到达设定时间中断,输出触发信号,注意要设为最高优先级。
|
|
|
| | | | | | | | | | | 您看我的触发电路,是属于RC电路触发吗?只要输出端设置高低电平就可以,还是要设置成脉冲输出的?
|
|
|
| | | | | 过零电路可以改进,两个光耦输出可以连起来,经过一个三极管反相后进入单片机。检测到过零信号后,间隔固定的时间(0.5-9.5ms)触发可控硅就 OK了。注意触发信号时间要大于20us,以保证可靠触发。用连续脉冲触发也是可以的,到9.5ms的时候关掉就行
|
|
|