15基于单片机STC89C52的直流电机PWM调速控制系统.docx
- 文档编号:27624439
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:11
- 大小:168.13KB
15基于单片机STC89C52的直流电机PWM调速控制系统.docx
《15基于单片机STC89C52的直流电机PWM调速控制系统.docx》由会员分享,可在线阅读,更多相关《15基于单片机STC89C52的直流电机PWM调速控制系统.docx(11页珍藏版)》请在冰豆网上搜索。
15基于单片机STC89C52的直流电机PWM调速控制系统
第一章:
前言
Pwm电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。
不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端EN1和EN2上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。
此电路中用微处理机来实现脉宽调制,通常的方法有两种:
(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。
(2)硬件实验自动产生PWM信号,不占用CPU处理的时间。
这就要用到STC89C52的在PWM模式下的计数器1,具体内容可参考相关书籍。
51单片机PWM程序
产生两个PWM,要求两个PWM波形占空都为80/256,两个波形之间要错开,不能同时为高电平!
高电平之间相差48/256,
PWM这个功能在PIC单片机上就有,但是如果你就要用51单片机的
话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1来控制占空比:
大致的的编程思路是这样的:
T0定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。
1.1前言:
直流电机的定义:
将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。
近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过PWM方式控制直流电机调速的方法就应运而生。
采取传统的调速系统主要有以下的缺陷:
模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。
而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。
并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。
随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。
1.2本设计任务:
任务:
单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:
功能主要包括:
1)直流电机的正转;
2)直流电机的反转;
3)直流电机的加速;
4)直流电机的减速;
5)直流电机的转速在数码管上显示;
6)直流电机的启动;
7)直流电机的停止;
第二章:
总体设计方案
总体设计方案的硬件部分详细框图如图一所示。
键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。
电动机的运转状态通过数码管显示出来。
电动机所处速度级以速度档级数显示。
正转时最高位显示“三”,其它三位为电机转速;反转时最高位显示“F”,其它三位为电机转速。
每次电动机启动后开始显示,停止时数码管显示出“0000”。
1、系统的硬件电路设计与分析
电动机PWM驱动模块的电路设计与实现具体电路见下图。
本电路采用的是基于PWM原理的H型桥式驱动电路。
PWM电路由复合体管组成H型桥式电路构成,四部分晶体管以对角组合分为两组:
根据两个输入端的高低电平决定晶体管的导通和截止。
4个二极管在电路中起防止晶体管产生反向电压的保护作用,防止电动机两端的电流和晶体管上的电流过大的保护作用。
在实验中的控制系统电压统一为5v电源,因此若复合管基极由控制系统直接控制,则控制电压最高为5V,再加上三极管本身压降,加到电动机两端的电压就只有4V左右,严重减弱了电动机的驱动力。
基于上述考虑,我们运用了TLP521-2光耦集成块,将控制部分与电动机的驱动部分隔离开来。
输入端各通过一个三极管增大光耦的驱动电流;电动机驱动部分通过外接12V电源驱动。
这样不仅增加了各系统模块之间的隔离度,也使驱动电流得到了大大的增强。
在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。
脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。
经实验发现,当电动机转动平稳,但加负载后,速度下降
第五章:
程序
/************头文件*********/
#include
#include
#include
/**************************/
/********自定义变量********/
#defineuintunsignedint//自定义变量
#defineucharunsignedcharchargw,sw,bw,qw;
ucharj;//定时次数,每次20msucharf=5;//计数的次数
sbitP10=P1^0;//PWM输出波形1sbitP11=P1^1;//PWM输出波形2sbitP12=P1^2;//正反转
sbitP13=P1^3;//加速sbitP14=P1^4;//减速sbitP15=P1^5;//停止sbitP16=P1^6;//启动uchark;
uchart;//脉冲加减
/**************************/*
/*********控制位定义********************/
ucharcode
smg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};//程序存储区定义字型码表
chardataled[4]={0x08,0x04,0x02,0x01};//位码uintx;//数码管显示的数值
display();//数码管显示delays();//延时函数key();
displays();
/*****************************************/
/***************主函数********************/main(void)
{
TMOD=0x51;//T0方式1定时计数T1方式1计数TH0=0xb1;//装入初值20MS
TL0=0xe0;
TH1=0x00;//计数567TL1=0x00;
TR0=1;//启动t0
TR1=1;//启动t1gw=sw=bw=qw=0;//数码管初始化P0=0xc0;
P2=1;
while
(1)//无限循环
{
display();//数码管显示key();
}
}
/*****************************************/
/***************数码管显示****************/display()
{
uchari;
gw=x%10;//求速度个位值,送到个位显示缓冲区sw=(x/10)%10;//求速度十位值,送到十位显示缓冲区bw=(x/100)%10;//求速度百位值,送到百位显示缓冲区qw=x/1000;//求速度千位值,送到千位显示缓冲区for(i=0;i<4;)
{
P2=led[i];
if(i==0)//显示个位
{
P0=smg[gw];delays();
}
elseif(i==1)//显示十位
{
P0=smg[sw];delays();
}
elseif(i==2)//显示百位
{
P0=smg[bw];delays();
}
elseif(i==3)//显示千位
{
if(k==0)//正转时显示"三"
{
P0=0x49;
delays();
}
else
{
i++;
}
}
P0=0x71;//反转时显示"F"
}
}
/*******************************************************/
/*****************延时函数*************************/delays()
{
uchari;for(i=5000;i>0;i--);
}
/************************************************/
/*********t0定时*中断函数*************/voidt0()interrupt1using2
{
TH0=0xb1;//重装t0TL0=0xe0;
f--;
if(k==0)
{
if(f elseP10=0;P11=0; } else { if(f elseP11=0;P10=0; } if(f==0) {f=5; }j++; if(j==50) {j=0; x=TH1*256+TL1;//t1方式1计数,读入计数值TH1=0x00; TL1=0x00; x++; display(); } } /****************按键扫描**************/key() { if(P12==0)//如果按下, { while(! P12)//去抖动display(); k=~k; } if(P16==0)//启动 { while(P16==0);IE=0x8a; } if(P13==0)//加速 { while(P13==0);t++; } if(t>=5)t=5; if(P14==0)//减速 { while(P14==0);t--; } if(t<1)t=1; if(P15==0)//停止 { while(P15==0); EA=0;P10=0;P11=0; } } /******************************************************/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15 基于 单片机 STC89C52 直流电机 PWM 调速 控制系统