51单片机控制无刷直流电机程序资料讲解

合集下载

基于51单片机的直流电机控制

基于51单片机的直流电机控制

51 单片机的直流电机控制一、试验器件选择1、控制芯片的作用主要是与L289相连接驱动直流电机,以及与八位数码管相连显示。

(1)、AT89C51是一种带4K自己FLASH存储器的低压、高性能CMOS8为微处理器。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失真存储制造技术制造,与工业标准的MCS-51指令集和输出关键相兼容。

由于将多功能8位CPU和闪存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性奥高且廉价的方案。

(2)、AT89C51引脚图如下:2、电机驱动芯片(1)、电机驱动芯片选择L298。

其主要功能是作为单片机与直流电机中间的过度链接,单片机输出的信号通过L298加载到直流电机上驱动直流电机运行。

(2)、主要工作原理:1、15脚分别是两个H 桥的电流反馈脚,不用时可以直接接地;2、3为一对输出端口, 13、14为一对输出端口; 4为驱动电压输入,最小值必须比输入的低电平高 2; 5、7一对输入端口,10、12 —对输入端口,TTL 电平兼容 6、11使能端,低电平禁止输出; 8、9分别为接地和逻辑电源3、直流电机。

在protues 中选择motor-encoder 直流电机,引脚图如下:上方左右的两个引脚在点击运转时输出频 率相同的方波,但是在相位上相差 90,而且在正转和反转是相反,因此可以根据这两个引 脚的输出情况判断点击的转向。

上方中间的引脚每当电机转一圈就输出一个正脉冲, 可以据此册数点击的转速。

左 右两个引脚是电机的电压输入端。

4、74HC74 。

当D 触发器的D 和CLK 输入端分别接电机上方的左右两个输出其引脚图如下:U213VS0UT1 0UT2OUT3 VCC IN1IN2 IN3 IN4 ENA ENB 10 12770UT4GNDL298SENSA SENSB端口时可以根据D触发器的输出情况判断点击的转速。

51单片机控制直流电机

51单片机控制直流电机
This project is a speed governing system of the pulse width of DC motor controlled by microcontroller AT89S52 and L298.Making the use of the chip of AT89S52 ,I design a controlling system of DC motor of low cost.It can simplify the system structure reduce system cost,strengthen system performance and meet more needs from more applications.And the system can control the corotation,reversal,scraming,accelerating and slowdown of motors and display the duty ratio of PWM on LCD in real time.
图1-1 直流电动机电路模型
1.2单片机及微处理器控制系统的发展
单片微型计算机的诞生是计算机发展史上的一个新的里程碑。近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。

一个基于51单片机控制直流电机的设计

一个基于51单片机控制直流电机的设计

今天做的一个基于51单片机控制直流电机的设计2010-09-12 18:47可以实现的功能是:按下左转键则开始向左转动按下右转键则向右转动按下停止键则开始逐渐停止转动按下调速键一次则会加速一档按下调速键二次则会加速二档按下调速键三次则会加速三档按下调速键四次则会加速四档按下调速键五次则会回到最初速度重新记档位设计思路:直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。

直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。

程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。

用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM 信号,由见51单片机的局限性与AVR单片机的优势。

原理图详细程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P2^0 ;sbit PW2=P2^1 ; //控制电机的两个输入sbit accelerate=P2^2 ; //调速按键sbit stop=P2^3 ; //停止按键sbit left=P2^4 ; //左转按键sbit right=P2^5 ; //右转按键#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转uint t0=25000,t1=25000; //初始时占空比为50%uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hz uchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar count; //用来标志速度档位void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void adjust_speed(); //通过调整占空比来调整速度void main(){time_init(); //定时器的初始化while(1){keyscan(); //不断扫描键盘程序,以便及时作出相应的响应}}void timer0() interrupt 1 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}else{flag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}}void time_init(){TMOD=0x01; //工作方式寄存器软件起动定时器定时器功能方式1 定时器0TH0=(65536-a)/256;TL0=(65536-a)%256; //装载初值ET0=1; //开启定时器中断使能EA=1; // 开启总中断TR0=0;}void delay(uchar z) //在12M下延时z毫秒{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void keyscan(){if(stop==0){TR0=0; //关闭定时器0 即可停止转动end_turn;}if(left==0){TR0=1;dflag=1; //转向标志置位则左转}if(right==0){TR0=1;dflag=0; //转向标志复位则右转}if(accelerate==0){delay(5) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手count++;if(count==1){t0=20000;t1=30000; //占空比为百分之60}if(count==2){t0=15000;t1=35000; //占空比为百分之70 }if(count==3){t0=10000;t1=40000; //占空比为百分之80 }if(count==4){t0=5000;t1=45000; //占空比为百分之90 }if(count==5){count=0;}}}}。

51单片机直流无刷电机控制

51单片机直流无刷电机控制

基于MCS-51单片机控制直流无刷电动机学号:3100501044班级:电气1002:王辉军摘要直流无刷电机是同步电机的一种,由电动机本体、位置传感器和电子开关线路三部分组成。

其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。

电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响:N=120.f / P。

在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。

直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。

也就是说直流无刷电机能够在额定负载围当负载变化时仍可以控制电机转子维持一定的转速。

MCS-51单片机是美国英特尔公司生产的一系列单片机的总称,是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入输出接口电路、定时计算器、串行通信口、脉宽调制电路、A/D转换器等电路集成到一块半导体硅片上,这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

本论文将介绍基于MCS-51单片机控制直流无刷电动机的设计,它可以实现控制直流无刷电动机的启动、停止、急停、正反转、加减速等功能。

关键词:单片机,直流无刷电动机,控制系统直流无刷电动机是在直流电动机的基础之上发展而来的,它是步进电动机的一种,继承了直流电动机的启动转矩大、调速性能好等特点克服了需要换向器的缺点在交通工具、家用电器及中小功率工业市场占有重要的地位。

直流无刷电动机不仅在电动自行车、电动摩托车、电动汽车上有着广泛的应用,而且在新一代的空调机、洗衣机、电冰箱、吸尘器,空气净化器等家用电器中也有逐步采用的趋势,尤其是随着微电子技术的发展,直流无刷电动机逐渐占有原来异步电动机变频调速的领域,这就使得直流无刷电动机的应用围越来越广。

基于51单片机的直流电机控制系统设计

基于51单片机的直流电机控制系统设计

摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。

控制系统主要是以8051单片机为核心组成的控制系统,本系统中的电机转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此,由MCU内部的可编程计数器阵列输出PWM波,以调整电机两端电压与控制波形的占空比,从而实现调速。

目录第一章:设计任务 (1)第二章:总体设计方案 (2)第三章系统硬件电路设计 (2)第四章系统的软件设计 (3)第五章:程序 (5)第六章:PCB图 (5)第七章:元件清单 (5)第八章:参考文献 (5)第九章:心得体会 (6)第一章:设计任务任务: 单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1)直流电机的正转;2)直流电机的反转;3)直流电机的加速;4)直流电机的减速;5)直流电机的转速在数码管上显示;6)直流电机的启动;7)直流电机的停止;第二章:总体设计方案总体设计方案的硬件部分详细框图如图一所示。

键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过ULN2003芯片控制电路,实现电动机转向与转速的控制。

电动机的运转状态通过数码管显示出来。

电动机所处速度级以速度档级数显示。

正转时最高位显示“三”,其它三位为电机转速;反转时最高位显示“F”,其它三位为电机转速。

每次电动机启动后开始显示,停止时数码管显示出“0000”。

第三章系统硬件电路设计整体框图如下本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等部分的设计。

单片机资源分配如下表:①PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:/*****************延时函数*************************/delays(){uchar i;for(i=5000;i>0;i--);}②键盘中断处理子程序:采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。

51单片机直流无刷电机控制.

51单片机直流无刷电机控制.

基于MCS-51单片机控制直流无刷电动机学号:3100501044班级:电气1002姓名:王辉军摘要直流无刷电机是同步电机的一种,由电动机本体、位置传感器和电子开关线路三部分组成。

其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。

电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响:N=120.f / P。

在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。

直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。

也就是说直流无刷电机能够在额定负载范围内当负载变化时仍可以控制电机转子维持一定的转速。

MCS-51单片机是美国英特尔公司生产的一系列单片机的总称,是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入输出接口电路、定时计算器、串行通信口、脉宽调制电路、A/D转换器等电路集成到一块半导体硅片上,这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

本论文将介绍基于MCS-51单片机控制直流无刷电动机的设计,它可以实现控制直流无刷电动机的启动、停止、急停、正反转、加减速等功能。

关键词:单片机,直流无刷电动机,控制系统直流无刷电动机是在直流电动机的基础之上发展而来的,它是步进电动机的一种,继承了直流电动机的启动转矩大、调速性能好等特点克服了需要换向器的缺点在交通工具、家用电器及中小功率工业市场占有重要的地位。

直流无刷电动机不仅在电动自行车、电动摩托车、电动汽车上有着广泛的应用,而且在新一代的空调机、洗衣机、电冰箱、吸尘器,空气净化器等家用电器中也有逐步采用的趋势,尤其是随着微电子技术的发展,直流无刷电动机逐渐占有原来异步电动机变频调速的领域,这就使得直流无刷电动机的应用范围越来越广。

基于51单片机的无刷直流电动机控制器设计说明

基于51单片机的无刷直流电动机控制器设计说明
基于51单片机的无刷直流电动机控制器设计
系 别:机电与自动化学院
专 业 班:电气工程及其自动化0702班
姓 名:
学 号:
指导教师:
2010年5月
基于51单片机的无刷直流电动机
控制器设计
TheDesign ofBrushless DCMotorControllerBased on MCS-51Singlechip
绪 论
传统的直流电机一直在电机驱动系统中占据主导地位,但由于其本身固有的机械换向器和电刷导致电机容量有限、噪音大和可靠性不高,因而迫使人们探索低噪音、高效率并且大容量的驱动电机。随着电力电子技术和微控制技术的迅猛发展而成熟起来的直流无刷电机体积小、重量轻、效率高、噪音低、容量大且可靠性高,从而极有希望代替传统的直流电机成为电机驱动系统的主流。
摘 要
近年来,无刷直流电动机愈来愈多地在很多领域得到应用,它除了保持有刷直流电动优越的起动性能和调速性能以外,其最大的特点,就是没有换向器和电刷组成的机械接触结构,因而具有寿命长、噪声低、运行可靠、维护简便等一系列优点,且由于其转速不受机械换向的限制,可在宽广的范围内平滑地调速。例如在电动自行车上应用无刷直流电动机来取代原来的有刷直流电动机,由于采用了电子无接触式换向,不仅延长了电机的使用寿命,而且调速方便,易于控制,运行平稳。
Recently,brushless DC motor has been applied in many area.Besides the good performance of startup and speed control,its remarkable characteristic is that there is no commutator and brush。So the brushless DC motor has some advantages such as long life,low noise,reliable operation and easy maintenance.Its speed Can be regulated in a large range smoothly because of no limitation of mechanical commutator.For the electric bicycle,the motor with brush has been replaced by the brushless one.Due to the commutation without touch,the life of motor is prolonged and the motor is easy to be controlled.

基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)

基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)

基于C51单片机的直流电机PWM调速控制--SQ这是最近一阶段自己学习所获,现分享与大家。

这里采用A T89C52单片机做主控制芯片,实现两路直流电机的PWM调速控制,另外还可以实现转向、显示运行时间、显示档位等注:考虑小直流电机自身因素,调速范围仅设有四级电路原理图:C语言程序源代码:/******************** 硬件资源分配*********************/数码管:显示电机状态(启停、正反、速度)、运行时间、是否转弯按键:K4 启动/暂停K3 正反转/转弯允许K2 加速/左转/运行时间清零K1 减速/右转/停止定时器:T0 数码管动态显示,输出PWMT1 运行时间记录********************************************************//*******主程序文件PWM.c******/#include <reg52.h>#include "Afx.h"#include "Config.c"#define CIRCLE 5 //脉冲周期//按键定义uchar key,key_tmp=0, _key_tmp=0;//显示定义uchar LedState=0xF0; //LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d[4]={0xe0,0xd0,0xb0,0x70}; //分别选通1、2、3、4位uchar dispbuf[4]={0,0,0,0}; //待显示数组uchar dispbitcnt=0; //选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; //分、秒、1%秒//程序运行状态标志bit MotState=0; //电机启停标志bit DirState=0; //方向标志0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;//其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; //脉宽uint Widcnt=1;uint Dispcnt;//函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void K1(void);void disp( uchar H, uchar n );void main(void){P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; //T0,1ms定时初值TH1=0xDB;TL1=0xFF; //T1,10ms定时初值TR0=1;Widcnt=1;while(1){key_scan();switch(key){case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:break;}key=0;DisBuf();LWidth=LSpeed;RWidth=RSpeed;}}//按键扫描**模拟触发器防抖void key_scan(void){key_tmp=(~P3)&0xf0;if(key_tmp&&!_key_tmp) //有键按下{key=(~P3)&0xf0;}_key_tmp=key_tmp ;}//按键功能处理/逻辑控制void K4(void){if(State4==-1){State4=1;TR1=1;dispbuf[3]=1;LedState=0x00; //打开LEDMotState=1; //打开电机LSpeed=1;RSpeed=1; //初速设为1}else if(State4==1){State4=0;TR1=0;MotState=0; //关闭电机}else if(State4==0){MotState=1;if(State3==0){State4=1;TR1=1;}else if(State3==1){LSpeed=2;RSpeed=2;}}}void K3(void){if(State4==1)DirState=!DirState;if(State4==0){if(State3==0){State3=1; //可以转向标志1可以,0不可以TR1=1;dispbuf[3]=9;MotState=1;LSpeed=2;RSpeed=2;}else if(State3==1){State3=0;TR1=0;dispbuf[3]=0;MotState=0;}}}void K2(void){if(State4==1&&LSpeed<4&&RSpeed<4){LSpeed++;RSpeed++;}else if(State4==0){if(State3==0){//State4=-1;//LedState=0xF0;MotState=0;Sec=0;Min=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=0;LSpeed=2;RSpeed++;}}}void K1(void){if(State4==1&&LSpeed>1&&RSpeed>1){LSpeed--;RSpeed--;}else if(State4==0){if(State3==0){State4=-1;LedState=0xF0;MotState=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=1;LSpeed++;RSpeed=2;}}}//显示预处理void DisBuf(void){if(RTime_cnt==100){Sec++;RTime_cnt=0;}if(Sec==60){Min++;Sec=0;}if(State4==1){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;if(!DirState) //正转dispbuf[3]=LSpeed;if(DirState) //反转dispbuf[3]=LSpeed+4;}if(State4==0){if(State3==0){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;dispbuf[3]=0;}if(State3==1){dispbuf[0]=RSpeed;dispbuf[1]=LSpeed;dispbuf[2]=Min;dispbuf[3]=9;}}}//LED驱动void disp( uchar H, uchar n ){P1=n;P1|=LedState ;P1|=LED_code_d[H];}//T0中断**显示/方波输出void Time_0() interrupt 1{TH0=0xFC;TL0=0x66;Widcnt++;Dispcnt++;//电机驱动/方波输出if(Widcnt>CIRCLE){Widcnt=1;}if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;elseLMot_P=DirState&&MotState;LMot_M=DirState&&MotState;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;elseRMot_P=DirState&&MotState;RMot_M=DirState&&MotState;//显示if(Dispcnt==5){disp(dispbitcnt,dispbuf[dispbitcnt]);dispbitcnt++;if(dispbitcnt==4){dispbitcnt=0;}Dispcnt=0;}}//T1中断**运行时间void Time_1() interrupt 3{TH1=0xDB;TL1=0xFF;RTime_cnt++;}/******配置文件Afx.h******/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/******IO配置文件Config.c******/#ifndef _Config_#define _Config_#include "Afx.h"#include <reg52.h>//显示定义sbit led=P3^2;//电机引脚定义sbit LMot_P=P2^2; sbit LMot_M=P2^3; sbit RMot_P=P2^0; sbit RMot_M=P2^1;#endif。

51单片机控制直流电机设计

51单片机控制直流电机设计

单片机控制小功率直流电机一. 设计要求:用单片机控制直流电机加速、减速、正反转和停止。

二. 设计方案分析1、方案设计:直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。

直流电机的驱动电路要有过流保护作用,可用二极管来实现,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。

程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。

设计中用到的元件:STC89C52、晶振(12MHz)、小按键、三极管、二极管、电容、电阻等。

2、背景知识介绍:直流电机调速原理本设计的主要思想为利用PWM控制占空比从而达到改变电机速度。

下面为PWM控制原理;图1为PWM降压斩波器的原理电路及输出电压波形。

在图1a中,假定晶体管V1先导通T1,秒(忽略V1的管压降,这期间电源电压Ud全部加到电枢上),然后关断T2秒(这期间电枢端电压为零)。

如此反复,则电枢端电压波形如图1b中所示。

电动机电枢端电压Ua为其平均值。

图1 PWM降压斩波器原理电路及输出电压波形a) 原理图 b)输出电压波形 1112a d d d T T U U U U T T Tα===+ (3) 式(3)中1112T T T T Tα==+ (4)α为一个周期T 中,晶体管V1导通时间的比率,称为负载率或占空比。

使用下面三种方法中的任何一种,都可以改变α的值,从而达到调压的目的:(1)定宽调频法:T1保持一定,使T2在0~∞范围内变化;(2)调宽调频法:T2保持一定,使T1在0~∞范围内变化(3)定频调宽法:T1+T2=T 保持一定,使T ,在0~T 范围内变化。

不管哪种方法,α的变化范围均为0≤α≤l ,因而电枢电压平均值Ua 的调节范围为0~Ud ,均为正值,即电动机只能在某一方向调速,称为不可逆调速。

基于51单片机的无刷直流电动机的控制设计解读

基于51单片机的无刷直流电动机的控制设计解读

基于51单片机的无刷直流电动机控制器设计系别:机电与自动化学院专业班:电气工程及其自动化0702班姓名:学号:指导教师:2011年6月基于51单片机的无刷直流电动机控制器设计The Design of Brushless DC Motor Controller Based on MCS-51 Singlechip摘要近年来,无刷直流电动机愈来愈多地在很多领域得到应用,它除了保持有刷直流电动优越的起动性能和调速性能以外,其最大的特点,就是没有换向器和电刷组成的机械接触结构,因而具有寿命长、噪声低、运行可靠、维护简便等一系列优点,且由于其转速不受机械换向的限制,可在宽广的范围内平滑地调速。

例如在电动自行车上应用无刷直流电动机来取代原来的有刷直流电动机,由于采用了电子无接触式换向,不仅延长了电机的使用寿命,而且调速方便,易于控制,运行平稳。

本文以无刷直流电机为研究对象,以无刷直流电机控制系统为控制目标,以PWM为控制设计技术,采用MCS-51系列单片机为主控芯片,文章主要研究无刷直流电动机的调速功能,实现电动机的起动、制动、正/反转换向,加/减速,并对无刷直流电动机的运行状态进行监视和报警。

文章研究包含硬件和软件两个方面,硬件方面实现的功能有:电源设计、调速控制设计、驱动电路设计、过热保护电路设计、短路保护电路设计和转速显示设计等部分;软件方面实现的功能有,电路复位模块的设计、按键控制模块的设计、功能模块的设计、电动机判停模块的设计、IPS下载模块的设计和速度显示模块的设计等部分。

文章介绍了无刷直流的功能硬件图和程序结构流程,介绍了利用MCS-51单片机和控制芯片来控制无刷直流电动机速度的方法,并在电动机运行异常时发出警报。

本课题经过理论分析和系统调试,控制系统性能稳定,可靠性佳,实现了既定的功能,达到了设计指标的要求。

关键词:无刷直流电动机 MCS-51单片机调速控制AbstractRecently,brushless DC motor has been applied in many area.Besides the good performance of startup and speed control,its remarkable characteristic is that there is no commutator and brush。

MCS51单片机控制直流无刷电机程序

MCS51单片机控制直流无刷电机程序

;*************************************************;MCS51单片机控制直流无刷电机程序;*************************************************org 00hajmp startorg 30h;**********检测键盘状态的程序****************START:mov p0,#0ffh ;置p0为输入口,将P0口置为1,用于检查按键是否按下jnb p0.0,QIDONG ;按键S2按下,p0.0为0,进入启动(正转)程序jnb p0.1,FANZHUAN ;按键S3按下,p0.1为0,进入反转程序jnb p0.2,JITING ;按键S4按下,p0.2为0,进入急停程序jnb p0.3,JIASU ;按键S5按下,p0.3为0,进入加速程序jnb p0.4,JIANSU ;按键S6按下,p0.4为0,进入减速程序jnb p0.5,TINGZHI ;按键S7按下,P0.5为0,进入停止程序ajmp start;************启动程序,默认为顺时针转动,转速为2000RPM*********** QIDONG:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.0,QILJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序QI:clr p0.6 ;p0.6接电机R/S端,将其清零表示电机可以运行setb p0.7 ;p0.7接DIR端,为1,则与COM端断开,电机正转mov p2,#0Bh ;p2.0接CH1,p2.1接CH2,p2.2接CH3,将速度设定为2000RPM lcall XIANSHI ;显示设定速度LJMP START ;执行完启动程序后,回到检测按键状态程序;***************反转程序,也即逆时针转动***************** FANZHUAN:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.1,FANLJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序FAN:clr p2.3 ;接通BRK端,使电机急停lcall PANTING ;调用判停程序,能从判停程序中返回,说明机已停setb p2.3 ;断开BRK端,解除急停状态clr p0.7 ;接通DIR端,使电机逆时针转动lcall XIANSHI ;显示设定速度LJMP START ;执行完启动程序后,回到检测按键状态程序;*****************急停程序*********************JITING:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.2,JILJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序JI:clr p2.3 ;接通BRK端,使电机急停lcall PANTING ;调用判停程序,若能从中返回,说明电机已停LJMP START ;执行完启动程序后,回到检测按键状态程序;***************加速程序,每按一次键,加速500rpm**************** JIASU:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.3,JIALJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序JIA:mov a,p2 ;将p2的值复制到累加器a中anl a,#07h ;取ch3ch2ch1的值,并放到累加器a中jz START ;若a中值为0,则速度已经最大,不再加速,回到检测按键状态程序mov r0,p2dec r0mov p2,r0 ;加速500rpm(参考电机驱动器说明中的多段速度选择部分)lcall XIANSHI ;显示设定的速度LJMP START ;执行完启动程序后,回到检测按键状态程序;********************减速程序,每按一次键,减速500rpm**************** JIANSU:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.4,JIANLJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序JIAN:mov a,p2anl a,#07h ;取ch3ch2ch1的值cjne a,#07h,JS ;若a中数值为07h,则速度已为0,ljmp START ;若速度为0,则程序回到开始程序,不再减速,以防出错JS:mov a,P2inc amov P2,a ;减速500rpm(参考电机驱动器说明中的多段速度选择部分)lcall XIANSHI ;显示设定的速度ljmp START ;执行完启动程序后,回到检测按键状态程序;********************停止程序***********************TINGZHI:LCALL YANSHI ;调用延时子程序,目的:软件消除按键抖动JNB P0.5,TINGLJMP START ;软件消抖后,若p0.0为1,则认为按键未按下,回到检测按键状态程序TING:setb p0.6 ;p0.6接R/S端,为1,则与COM端断开lcall PANTING ;调用判停程序,若能从中返回,说明电机已停LJMP START ;执行完启动程序后,回到检测按键状态程序;*****************延时10ms,这是一个子程序,功能是延时10毫秒************* YANSHI:mov a,#0 ;对累加器a置零,延时用y:mov r1,#00h ;对寄存器r1置零,延时用inc r1cjne r1,#0ffh,y ;延时1msinc acjne a,#10,y ;延时10×1=10msret;*******判停程序,这是一个子程序,若能从判停程序中返回,则说明电机已停******** PANTING:jnb p2.4,yanshi250ms ;若speed端为0,则进入延时程序ajmp PANTING ;若speed端为1,则返回PANTING,等待speed端出现0电平yanshi250ms:clr p2.6 ;允许对计数器置数mov p3,#08h ;对计数器置入数8setb p2.6 ;计数器开始计数mov a,#0 ;对累加器a置零,延时用y250:mov r1,#00h ;对寄存器r1置零,延时用inc r1jb p2.5,PANTING ;若期間Tc为1,则电机未停,返回PANTING,继续判断cjne r1,#0ffh,y250 ;延时1msinc acjne a,#250,y250 ;延时250ms,ret;若至延时结束Tc一直不改变状态,则说明speed端口无脉冲输出,认为电机停转,程序;返回。

基于51单片机的直流电机控制

基于51单片机的直流电机控制

基于51单片机的直流电机控制一、试验器件选择1、控制芯片的作用主要是与L289相连接驱动直流电机,以及与八位数码管相连显示。

(1)、AT89C51是一种带4K自己FLASH存储器的低压、高性能CMOS8为微处理器。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失真存储制造技术制造,与工业标准的MCS-51指令集和输出关键相兼容。

由于将多功能8位CPU和闪存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性奥高且廉价的方案。

(2)、AT89C51引脚图如下:2、电机驱动芯片(1)、电机驱动芯片选择L298。

其主要功能是作为单片机与直流电机中间的过度链接,单片机输出的信号通过L298加载到直流电机上驱动直流电机运行。

其引脚图如下:(2)、主要工作原理:1、15脚分别是两个H桥的电流反馈脚,不用时可以直接接地;2、3为一对输出端口,13、14为一对输出端口;4为驱动电压输入,最小值必须比输入的低电平高2;5、7一对输入端口,10、12一对输入端口,TTL电平兼容6、11使能端,低电平禁止输出;8、9分别为接地和逻辑电源3、直流电机。

在protues中选择motor-encoder直流电机,引脚图如下:上方左右的两个引脚在点击运转时输出频率相同的方波,但是在相位上相差90 ,而且在正转和反转是相反,因此可以根据这两个引脚的输出情况判断点击的转向。

上方中间的引脚每当电机转一圈就输出一个正脉冲,可以据此册数点击的转速。

左右两个引脚是电机的电压输入端。

4、74HC74。

当D触发器的D和CLK输入端分别接电机上方的左右两个输出端口时可以根据D触发器的输出情况判断点击的转速。

5、八位数码管。

用以显示。

二、系统硬件设计连接1、系统的器件连接图如下:2、单片机与数码管通过P0口和P2口相连,其中P2口选择点亮哪一个数码管,P0口则控制被点亮的数码管显示的数据。

基于51单片机无位置传感器无刷直流电动机的控制_图文.

基于51单片机无位置传感器无刷直流电动机的控制_图文.

电气传动产品与技术PRODUCT & TECHNOLOGY超精密加工是获得高形状精度、表面精度和完整性的必要手段。

其中,金刚石刀具超精密切削是超精密加工技术的一个重要组成部分。

为了高质高效地获得金刚石研磨质量,其必须要有稳定高速运行的主轴系统。

无位置传感器无刷直流电动机系统, 它采用了精密轴承和电动机相结合的办法,即把主轴、轴承、电动机等结构集成到一起,并去除位置传感器和传动机构,因此使得电动机结构紧凑,有利于实现小型化和精密化的要求。

使用这种主轴系统能获得较高的稳定性和最高的转速。

但无位置传感器的无刷直流电动机的控制方法复杂,TB6537和 TA84005的出现,简化了控制电路设计,对它们的组合使用可以实现反电势检测、过电流保护,以及电动机驱动。

51系列单片机是一款通用型的单片机,相对于专用的电动机芯片和电动机控制电路板而言,熟悉它的开发人员多,在此基础上进行二次开发的周期相对要短。

同时它对外设功能(A D C、D A C、可编程增益放大器、PCA 及内部振荡器等进行了高度集成。

为设计小体积,低功耗,高可靠,高性能的应用系统提供了极大的方便。

TB6537和 TA84005原理图1.TB6537内部框图TB6537是一种无位置传感器无刷直流电动机的专用控制芯片,有 DIP 和 SSOP 两种封装。

工作电压为 5V,PWM 的频率为 16kHz。

TB6537芯片易于与单片机接口。

可以实现 P W M 控制和正反转控制,可以选择 H _P W M -L _P W M 控制方式和 H _P W M -L _O N 控制方式,可选择超前脚设置和重叠通电功能,内部有过电流保护功能。

2.TA84005内部框图TA84005是一款小功率三相无刷直流电动机驱动芯片。

它内置电压检测电路,具有过流检测、过热检测功能。

TA84005推荐工作参数为:逻辑电源电压 V cc =5 V;电动机电源电压 VM=10~22V,峰值电压为 25V;输出电流为 Io=0.5A;斩波频率为 20kHz。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档