|
发表于 2020-5-17 20:15:47
|
显示全部楼层
本帖最后由 bg1trk 于 2020-5-17 20:59 编辑
可以实现,而且程序相当简单。
如果做数控,具备硬件条件的基础上,用单片机控制比用比较器简单的多,尤其是分段多的时候。甚至可以将市售的那种用单片机的数显小表头重新编程,拿出几个I/O口做继电器控制、风扇调速啥的。
当初做数控电源时用单片机控制切换,条件所限只用了2只继电器做4段切换,8段切换加几条判断语句就行了。
下面是继电器控制函数,特意加了几条注释。如果学了一点C语言的话,会发现程序非常简单,无非是几个判断语句而已:
/*********************************************************************************
* 函 数 名: JDQ_CONT
* 功能说明: 继电器控制,根据形参带入的电压值控制继电器切换
* 形 参:ADC_V
* 返 回 值: 无
* 日 期:
*********************************************************************************/
void JDQ_CONT(u16 ADC_V)
{
if(ADC_V<=510) //电压由低向高变化时,5.1V跳变。
{
JDQ_J1_L;
JDQ_J2_H;
}
else //由高向低变化时,5.0V跳变。
if(ADC_V>520 && ADC_V<=1300) //保留0.1V的滞回空间。
{
JDQ_J1_H;
JDQ_J2_H;
}
else
if(ADC_V>1330 && ADC_V<=2000) //保留0.3V的滞回空间。
{
JDQ_J1_L;
JDQ_J2_L;
}
else
if(ADC_V>2030) //保留0.3V的滞回空间。
{
JDQ_J1_H;
JDQ_J2_L;
}
}
大概工作流程是单片机通过某个具备A/D功能的I/O口(或外置ADC)将输出电压进行AD转换后赋值给一个变量,这个变量再循环往复的与程序内置的切换电压进行比较,符合某个分段条件时,就将用于继电器控制的I/O口置相应的电平。
比如说3只继电器,就挑3个I/O口设置成输出状态,某段切换对应的就是这3个I/O口的高低电平组合。
上面那个函数,意思就是电压低于5.1V时继电器J1释放、J2吸合;高于5.2V、低于13V时继电器J1吸合、J2吸合;以此类推,中间的差值就是回差。
|
评分
-
1
查看全部评分
-
|