如何用单片机控制可控硅c语言程序,可控硅的斩波控制的实现--C语言源代码

//=======可控硅斩波变更定义================

typedefstruct TRIDRIVE

{

uint8 SetRPow ; //功率值

uint8 R_Dly ;//过零后延时开可控硅时间

uint8 T_Dirv ; //可控硅打开的驱动时间

}tTriDrive ;

extern tTriDrive tTriDriv ;

//----------------------

#defineSetRPow tTriDriv.SetRPow

#defineR_Dly tTriDriv.R_Dly

#defineT_Dirv tTriDriv.T_Dirv

//定义标志位

uint8 F_TRI1 ;

uint8 F_HT1 ; //开启负载标志 1为开启

//*************************************

// 函数名称:ControlHt1

// 函数功能:实现可控硅的斩波控制

// 入口参数:无

// 出口参数:无

//***************************************

void ControlMot1(void)

{

if(F_HT1) //负载工作

{

R_Dly = SetRPow; //赋功率值

T_Dirv = 25 ; //可控硅驱动时间 30U*25=750US

TIMER2_IEN_ENB ; //定时器2开中断

F_TRI1 = 1 ;

}

else

{

HT1_OFF ; //关可控硅

F_TRI1 = 0 ;

}

}

//---实例应用------

void main(void)

{

while(1)

{

ReadZ0() ;//如市电频率为50HZ 则10MS跑一次主循环

ControlMot1() ; //控制可控硅输出

}

}

//===中断服务程序=========

void interrupt server(void) //本中断30U进入一次 TIMER2

{

if(F_TRI1)

{

if(R_Dly != 0)

{

R_Dly -- ;

}

else

{

HT1_ON ;//开可控硅

F_TRI1 = 0;

}

}

else

{

if(T_Dirv != 0)

{

T_Dirv -- ;

}

else

{

HT1_OFF;//关可控硅

TIMER2_IEN_DIS ; //关定时器2中断

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值