基于stc89c51单片机控制的三相异步电机星-△降压启动控制器设计
时间: 2023-10-04 20:03:01 浏览: 52
设计思路:
本设计采用STC89C51单片机作为控制核心,实现对三相异步电机的星-△启动控制。利用单片机的IO口控制三相继电器,实现对电机的启动和停止控制。同时,采用AD转换器对电机的电流进行采样,通过单片机的模拟输入端口进行数字化处理,实现对电机的过载保护。
设计流程:
1. 确定硬件电路结构
三相异步电机星-△启动控制器的硬件电路结构如下图所示:
![image-20211209102046692](https://i.loli.net/2021/12/09/SyLpFJ7kNlDnOcV.png)
其中,K1、K2、K3为三相继电器,用于控制电机的启动和停止;R1、R2、R3为电流采样电阻,用于采集电机的电流信号;V1为电机供电电源,U、V、W为电机三相输入端口。
2. 程序设计
程序设计分为三个部分:启动控制、停止控制、过载保护。其中,启动控制和停止控制通过单片机的IO口对三相继电器进行控制,实现对电机的启动和停止控制;过载保护通过AD转换器采样电机的电流信号,通过单片机的模拟输入端口进行数字化处理,实现对电机的过载保护。
启动控制:
```c
void start_motor()
{
P2 &= 0xf8; //P2.0-P2.2清零,用于控制三相继电器
P2 |= 0x01; //P2.0置1,控制K1继电器闭合,使U相与电源相连
delay(1000); //延时1s,使电机加速到稳定运行状态
P2 &= 0xf8; //P2.0-P2.2清零
P2 |= 0x02; //P2.1置1,控制K2继电器闭合,使V相与电源相连
delay(1000); //延时1s,使电机加速到稳定运行状态
P2 &= 0xf8; //P2.0-P2.2清零
P2 |= 0x04; //P2.2置1,控制K3继电器闭合,使W相与电源相连
delay(1000); //延时1s,使电机加速到稳定运行状态
}
```
停止控制:
```c
void stop_motor()
{
P2 &= 0xf8; //P2.0-P2.2清零,用于控制三相继电器
P2 |= 0x04; //P2.2置1,控制K3继电器闭合,使W相断开
delay(1000); //延时1s,使电机减速到停止状态
P2 &= 0xf8; //P2.0-P2.2清零
P2 |= 0x02; //P2.1置1,控制K2继电器闭合,使V相断开
delay(1000); //延时1s,使电机减速到停止状态
P2 &= 0xf8; //P2.0-P2.2清零
P2 |= 0x01; //P2.0置1,控制K1继电器闭合,使U相断开
delay(1000); //延时1s,使电机减速到停止状态
}
```
过载保护:
```c
void overload_protect()
{
while(1)
{
ADC_CONTR = 0x98; //启动AD转换器
while(!(ADC_CONTR & 0x20)); //等待转换完成
if(ADC_RES > 0x80) //判断电机电流是否超过额定电流
{
stop_motor(); //停止电机运行
break;
}
}
}
```
3. 编写测试程序
编写测试程序,包括启动电机、停止电机、过载保护等功能。
```c
#include<STC89C5X.h>
void delay(unsigned int count) //延时函数
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
void start_motor(); //启动电机
void stop_motor(); //停止电机
void overload_protect(); //过载保护
void main()
{
while(1)
{
start_motor(); //启动电机
delay(5000); //延时5s
overload_protect(); //过载保护
delay(5000); //延时5s
stop_motor(); //停止电机
delay(5000); //延时5s
}
}
```
4. 烧录程序
将程序烧录进STC89C51单片机中,连接电路,即可进行测试。
总结:
本设计通过STC89C51单片机控制三相继电器,实现对三相异步电机的星-△启动控制。同时,通过AD转换器采样电机的电流信号,实现对电机的过载保护。该设计具有结构简单、功能实用、可靠性高等特点,适用于三相异步电机的启动控制和过载保护。