基于51单片机控制直流电机的设计
基于C51单片机直流电机测速仪设计

基于C51单片机直流电机测速仪设计摘要:电机的转速是各类电机运行过程中的一个重要监测量,测速装置在电机调速系统中占有非常重要的地位,特别是数字式测速仪在工业电机测速方面有独到的优势。
本文介绍了一种基于C51单片机的光电传感器转速测量系统的设计。
系统采用对射式光电传感器产生与齿轮相对应的脉冲信号,使用AT89C51单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过LCD实时显示电机的转速值。
经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。
仿真实验表明本系统满足设计要求,并且结构简单、实用。
整个直流电机测速系统在降低测速仪成本,提高测速稳定性及可靠性等方面有一定的应用价值。
关键词:转速测量;光电传感器;单片机Based On C51 SCM Single DC Motor Speedometer DesignABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.Keywords: Speed measurement; Photoelectric; Single chip micyoco目录1 绪论 (1)1.1 数字式转速测量系统的发展背景 (1)1.2 转速测量在国民经济中的应用 (1)1.3主要研究内容 (2)1.4 设计的目的和意义 (2)2 转速测量系统的原理 (4)2.1 转速测量原理 (4)2.2 转速测量计算方法 (5)3转速测量系统设计方案 (7)3.1 直流电机转速测量方法 (7)3.2 设计任务及方案 (8)4 直流电机测速系统设计 (9)4.1 单片机AT89C51介绍 (9)4.2 转速信号采集 (14)4.2 转速信号处理电路设计 (16)4.4 最小系统的设计 (17)4.4.1复位电路 (17)4.4.2 晶振电路 (20)4.5 显示部分设计 (20)5 直流测速系统仿真 (24)5.1 直流测速系统仿真 (24)5.1.1单片机最小系统仿真 (25)5.1.2 数码管显示仿真 (25)5.2 主程序流程设计 (26)5.2.1 主程序流程设计 (26)5.2.2 定时器的初始化 (27)5.3 实际电路实验 (28)参考文献 (30)致谢 (31)1 绪论1.1 数字式转速测量系统的发展背景在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开旋转设备,形形色色的电机在不同领域发挥着很重要的作用。
基于51单片机红外遥控电机课程设计说明书

课程实训报告课程名称:单片机与接口技术实训题目:红外控制直流电机正反转任务书一、实训任务设计一款基于AT89C51单片机用红外遥控控制电机的正反转加减速。
二、设计要求1. 基本要求1).用无线模块控制电机的正反转加减速,实现自动化控制。
2).通过对AT89C51单片机的编程,实现直流电机的正反转,加减速。
3).写出详细的设计报告。
4).给出全部电路和源程序。
2. 发挥部分1).可通过PC机,对系统编程,实现直流电机转速的快慢。
摘要随着科技的不断进步,人们进入了无线电时代,它为我们的生活带来了极大的方便。
像现在的移动电话,无线网络,无线鼠标,无线键盘等都已经融入了我们的生活当中。
从我们身边的电子产品就可以看出我们已经进入了无线电时代。
本设计就是一款基于AT89C51的用无线模块控制的电机的正反转以及它的加减速。
这非常适应于在工厂使用,特别是在工业控制中。
可以想象,机器在工厂运转时,我们只需要用无线遥控来控制电机的转速以及它的转向,这样我们就可以在远处来控制了,用不着再跑到电机的旁边来控制开关,为工厂生产带来了极大的方便。
软件上采用C51编程,主要编写了主程序,直流电机驱动程序,中断程序延时程序等。
经过调试,实现了对电机的控制。
关键词:AT89C51 L298 PWM 直流电机无线模块目录第一章绪论 (5)1.1 概述 (5)1.2 设计目的 (5)1.3 设计任务和内容 (5)第二章总体设计及核心器件简介 (7)2.1总体设计 (7)2.2 AT89C51 (7)2.3 L298 (9)引脚介绍: (10)2.4 伺服电机介绍 (11)2.5 PT2262/PT2272 (12)第三章单元电路模块设计 (17)3.1 复位电路 (17)3.2时钟电路 (18)3.3电机驱动电路图 (18)3.4PWM调速系统设计 (19)第四章软件编程设计 (21)4.1 设计思想 (21)4.2 流程图 (21)4.3源程序 (22)第五章设计心得和存在问题 (26)第一章绪论1.1 概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
51单片机PID控制直流电机实验报告

iError = sptr->SetPoint - NextPoint; //计算增加量
iIncpid = sptr->Proportion * iError //E[k]项
- sptr->Integral * sptr->LastError //E[k-1]项
+ sptr->Derivative * sptr->PrevError; //E[k-2]项
static PID *sptr = &sPID;
void IncPIDInit()
{
sptr->SumError = 0;
sptr->LastError =0; //Error[-1]
sptr->PrevError =0; //Error[-2]
sptr->Proportion =0.5; //比例系数
sptr->Integral =0.3; //积分系数
sptr->Derivative = 0.3; //微分系数
sptr->SetPoint =sudu_lilun; Nhomakorabea}
51单片机直流无刷电机控制.

基于MCS-51单片机控制直流无刷电动机学号:3100501044班级:电气1002姓名:王辉军摘要直流无刷电机是同步电机的一种,由电动机本体、位置传感器和电子开关线路三部分组成。
其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。
电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响:N=120.f / P。
在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。
直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。
也就是说直流无刷电机能够在额定负载范围内当负载变化时仍可以控制电机转子维持一定的转速。
MCS-51单片机是美国英特尔公司生产的一系列单片机的总称,是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入输出接口电路、定时计算器、串行通信口、脉宽调制电路、A/D转换器等电路集成到一块半导体硅片上,这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
本论文将介绍基于MCS-51单片机控制直流无刷电动机的设计,它可以实现控制直流无刷电动机的启动、停止、急停、正反转、加减速等功能。
关键词:单片机,直流无刷电动机,控制系统直流无刷电动机是在直流电动机的基础之上发展而来的,它是步进电动机的一种,继承了直流电动机的启动转矩大、调速性能好等特点克服了需要换向器的缺点在交通工具、家用电器及中小功率工业市场占有重要的地位。
直流无刷电动机不仅在电动自行车、电动摩托车、电动汽车上有着广泛的应用,而且在新一代的空调机、洗衣机、电冰箱、吸尘器,空气净化器等家用电器中也有逐步采用的趋势,尤其是随着微电子技术的发展,直流无刷电动机逐渐占有原来异步电动机变频调速的领域,这就使得直流无刷电动机的应用范围越来越广。
基于51单片机的直流电机转速PI控制

… …
图 xx 电路原理图
上图中 LED 数码管显示中的 74LS164 芯片的引脚及功能如下所述:
芯片引脚功能对照表
符号 SA、SB Q0~Q7 CP(CLK) VCC GND /MR(/CLR)
功能 串行数据输入端 并行数据输出端 时钟输入端(上升沿有效) 电源正(5V) 接地 清零端(低电平有效)
直流电机 PI 转速控制—基于 51 单片机
1.项目系统组成
本项目由 STC89C52RC 单片机最小系统,12MHZ 晶振。直流电机驱动电路、直流电机(5V)、光电测 速电路以及数码管显示电路组成。详细器件见下文电路图。
2.直流电机转速控制电路原理
直流调速的方法有多种,本文是基于 PWM(脉冲宽度调制)技术,改变直流电机等效电枢电压,以此 在一定范围实现直流电机的调速。
void timer1() interrupt 3 {
TR1=0; TH1=pwmh; TL1=pwml; PWM1=0;
//T1 中断响应函数
//关闭定时器 T1 //T1 重置初值 //T1 重置初值,改变 PWM 占空比 //输出低电平
}
void PID_pwm()
{
unsigned int speed=0,pwm=0,pwmhh=0,pwmll=0; speed=10*pulse; //脉冲数换算为转速(转/分)speed=60*pulse*1000/(12*50*10)
综上所述,要想电机正转,则需要 PWM1=1,同时 PWM2=0;要想电机反转,则需要 PWM2=1,同时 PWM1=0;要想电机停止,则需要 PWM1=1,同时 PWM2=1,或者 PWM1=0,同时 PWM2=0。
用单片机控制直流电机-终结版

用单片机控制直流电机摘要本设计以AT89C51单片机为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。
在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
一、设计方案比较与分析:1、电机调速控制模块:方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。
但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用由达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。
2、PWM调速工作方式:方案一:双极性工作制。
双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。
方案二:单极性工作制。
单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。
由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。
3、PWM调脉宽方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。
我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。
基于C51单片机步进电机综合控制实验

重庆工商大学计算机与信息工程学院学院《单片机原理及应用》课程实验报告实验名称:步进电机综合控制实验实验班级:2010级自动化专业班级:2010级自动化三班指导老师:文远熔组员:陶园2010133330 王路2010133344江洋2010133335陈娅2010133326张琴芳2010133317张丹2010133320(组长)一、摘要:本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。
步进电机驱动芯片采用ULN2003,ULN2003具有大电流、高电压,外电路简单等优点。
利用ZLG7290模块驱动LED数码管显示速度设定值。
通过这个单片机控制系统的设计来掌握步进电机的工作原理和驱动过程以及LED显示原理和ZLG7290模块的使用方法,用LED数码管显示实验要求的状态结果,设计电路的硬件接线图和实现上述要求的程序。
关键词:51单片机步进电机ZLG7290 ULN2003二、设计内容与要求:1、任务介绍:实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。
所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。
2、每套设计文档应包括:系统原理说明、程序框图、电路原理图和程序清单。
三、实验器件介绍及原理:本实验采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。
在单片机环境下,用ULN2003驱动芯片驱动步进电机,用ZLG7290芯片作用下的按键控制步进电机的运行,从而达到实验要求。
其控制框图(图一)为:图一:控制框图1、系统硬件介绍1.1步进电机1.1.1相关的技术指标:a、相数:指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机,本实验用的是四相步进电机。
电机相数不同,其步距角也不同。
b、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。
本实验程序运行前要先测量步进电机的步距角。
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 ,均为正值,即电动机只能在某一方向调速,称为不可逆调速。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以实现的功能是:
按下左转键则开始向左转动
按下右转键则向右转动
按下停止键则开始逐渐停止转动
按下调速键一次则会加速一档
按下调速键二次则会加速二档
按下调速键三次则会加速三档
按下调速键四次则会加速四档
按下调速键五次则会回到最初速度重新记档位
设计思路:
直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。
直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。
程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。
用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM信号,由见51单片机的局限性与AVR单片机的优势。
原理图
详细程序:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit 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 定时器0
TH0=(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;
}
}
}
}。