基于AT89C51单片机直流电机PWM调速程序分享
- 格式:doc
- 大小:11.50 KB
- 文档页数:1
摘要本文基于对PWM控制技术和AT89C51单片机直流调速系统的研究,设计了应用于直流电动机的单片机控制的PWM电流转速双闭环直流调速系统,该系统能够实现对电机的正转、反转、急停、加速、减速的控制以及恒速调节。
论文以直流电机调速系统为控制对象,主要介绍了PWM控制技术的理论以及用单片机实现PWM 控制电机转速的基本原理,绘制出了系统的程序流程图,设计出了系统的硬件电路和软件电路,编写了KeilC51汇编语言,进行了Proteus软件的调试与仿真,仿真结果表明系统满足各项性能指标要求。
关键词:PWM技术;单片机;双闭环;直流电机;调速控制ABSTRACTBased on the study of PWM technology and DC governor system controlled by AT89C51 microprocessor control unit, that applied to DC motorspeed contml governor system which is controlled by microprocessor control unit is designed. This system can make motorspeed contml speed up or slow down or stop rapidly even rotate positively and negatively. One more thing is that DC motorspeed contml controlled by this system can adjust its rotate speed smoothly.The article mainly concentrates on the DC governor system. The theory of PWM technology and basic theory of system controlled by AT89C51 and PWM technology which adjusts the speed of DC motorspeed contml are introduced. The chat of process is drawn out, so as the circuits of system. The KeilC51 language is operated on the simulation platform debugging after it's written out. The consult indicates that the system meets all conditions which are needed.Keywords: PWM technology ;microprocessor control unit ;Double-loop ;DC motorspeed contml ;digital control目录1. 绪论................................................................1 1.1 概况................................................................1 1.2 国内外发展概况....................................................21.3 设计目的和意义....................................................22. 直流调速系统概述.................................................4 2.1 直流电机的工作原理...............................................4 2.2 直流电机的调速方法...............................................52.3 H桥电机驱动的概述...............................................83. 方案论证和选择...................................................7 3.1 稳压电源的选择...................................................10 3.2 电机调速控制模块.................................................8 3.3 PWM调速工作方式.................................................9 3.4 PWM调脉宽方式....................................................93.5 PWM软件实现方式.................................................94. 系统硬件电路设计................................................10 4.1 时钟电路..........................................................10 4.2 复位电路..........................................................11 4.3 稳压电源电路.....................................................10 4.4 信号输入电路.....................................................124.5 电机PWM驱动模块的电路..........................................175. 系统的软件设计...................................................185.2 系统软件设计分析.................................................196. 单片机系统综合调试..............................................20 6.1 PROTEUS设计与仿真平台..........................................20 6.2 PROTEUS设计与单片机传统开发过程比较..........................21 6.3 仿真结果与分析...................................................27参考文献..............................................................23附录...................................................................32附录一程序清单......................................................23附录二硬件原理图....................................................38致谢...................................................................391 绪论1.1 概况现代工业的电力拖动一般都要求局部或全部的自动化,因此必然要与各种控制元件组成的自动控制系统联系起来,而电力拖动[1]则可视为自动化电力拖动系统的简称。
基于单片机89C51产生PWM信号来控制直流电机调速程序利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。
/* =======直流电机的PWM速度控制程序======== */ /* 晶振采用11.0592M,产生的PWM的频率约为91Hz */#include#include#define uchar unsigned char#define uint unsigned intsbit en1=P1^0; /* L298的Enable A */sbit en2=P1^1; /* L298的Enable B */sbit s1=P1^2; /* L298的Input 1 */sbit s2=P1^3; /* L298的Input 2 */sbit s3=P1^4; /* L298的Input 3 */sbit s4=P1^5; /* L298的Input 4 */uchar t=0; /* 中断计数器 */uchar m1=0; /* 电机1速度值 */uchar m2=0; /* 电机2速度值 */uchar tmp1,tmp2; /* 电机当前速度值 *//* 电机控制函数 index-电机号(1,2); speed-电机速度(-100~100) */void motor(uchar index, char speed){if(speed>=-100 && speed<=100){if(index==1) /* 电机1的处理 */{m1=abs(speed); /* 取速度的绝对值 */if(speed<0) /* 速度值为负则反转 */{s1=0;s2=1;}else /* 不为负数则正转 */{s1=1;s2=0;}}if(index==2) /* 电机2的处理 */{m2=abs(speed); /* 电机2的速度控制 */ if(speed<0) /* 电机2的方向控制 */ {s3=0;s4=1;}else{s3=1;s4=0;}}}}void delay(uint j) /* 延时函数 */{for(j;j>0;j--);}void main(){uchar i;TMOD=0x02; /* 设定T0的工作模式为2 */ TH0=0x9B; /* 装入定时器的初值 */TL0=0x9B;EA=1; /* 开中断 */ET0=1; /* 定时器0允许中断 */TR0=1; /* 启动定时器0 */while(1) /* 电机实际控制演示 */{for(i=0;i<=100;i++) /* 正转加速 */{motor(1,i);motor(2,i);delay(5000);}for(i=100;i>0;i--) /* 正转减速 */{motor(1,i);motor(2,i);delay(5000);}for(i=0;i<=100;i++) /* 反转加速 */{motor(1,-i);motor(2,-i);delay(5000);}for(i=100;i>0;i--) /* 反转减速 */{motor(1,-i);motor(2,-i);delay(5000);}}}void timer0() interrupt 1 /* T0中断服务程序 */{if(t==0) /* 1个PWM周期完成后才会接受新数值 */ {tmp1=m1;tmp2=m2;}if(tif(tt++;if(t>=100) t=0; /* 1个PWM信号由100次中断产生 */ }。
第一章:前言1.1前言:直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。
近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过PWM方式控制直流电机调速的方法就应运而生。
采取传统的调速系统主要有以下的缺陷:模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。
而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。
并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。
随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。
1.2本设计任务:任务: 单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1)直流电机的正转;2)直流电机的反转;3)直流电机的加速;4)直流电机的减速;5)直流电机的速度在数码管上显示;6)直流电机的启动;7)直流电机的停止;第二章:总体设计方案1、系统的硬件电路设计与分析电动机PWM驱动模块的电路设计与实现具体电路见下图。
本电路采用的是基于PWM 原理的H型桥式驱动电路。
基于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。
基于AT89S51单片机直流电机PWM调速系统摘要本文介绍了一种基于AT89S51单片机控制的PWM直流电机电压占空比调速系统。
利用AT89S51的定时计数中断输出有一定脉宽的PWM信号,以小直流电机为对象,经过L298驱动直流电机,采用光电管测得实际转速显示在LCD上。
系统具有稳定,可靠,简单且廉价,功能强,是一个电动小车模型的完整系统。
关键词单片机;PWM直流电机调速;光电管测速51单片机以其价格低廉,开发周期短,性能稳定,效率高,功能强大等特点被广泛的应用于控制系统。
对直流电机的调速传统的思路是通过调节电枢电路电阻来改变端电压,以达到调速的目的。
但由于接入的电阻会消耗功率,这种方法的效率很低。
利用PWM(Pulse Width Modulation)控制可以消除这部分功率损耗,对于直流电机,采用PWM控制技术构成的无级调速系统,启停对直流系统无冲击,并且具有启动功率小,开关频率高,运行稳定的特点。
1系统的原理框图2PWM的原理及实现PWM是Pulse Width Modulation缩写,中文意思就是脉冲宽度调制,简称脉宽调制。
如图,我们将开关接通的时间设为T1高电平为V,断开时间设为T2低电平作为0,周期设为T,很容易得出加在电机上的平均电压即,一般固定频率在800Hz-1000Hz比较合适。
利用51单片机可以很容易产生这样的脉冲信号,51单片机内部有T0、T1两个定时计数器,这里我们只利用T0的定时功能,设定一定时间进入中断,再用一个寄存器记录进入中断的次数,从而根据我们的需要来在中断程序里面设置输出端口的0和1。
具体过程参考流程图,设N为需要的高低电平时间只比,T3为进入中断的时间,用R0记录次数,即T=(N+1)*T3。
3系统硬件的实现1)电源模块。
采用+5V稳压电源即可,也可自己做一个,先要经过桥式整流电路再通过小电容滤,最后在经过L7805芯片稳压输出。
2)单片机模块。
AT89S51中的S表示该芯片含有可串行下载功能的Flash存储器,即具有ISP可在线编程功能,这样大大方便我们烧写程序和测试。
基于AT89C51单片机的PWM电机控制(正转、反转、0-20级调速)/*******************************************************************/ /* 程序名:PWM直流电机调速*//* 晶振:11.00592 MHz CPU型号:AT89C51 *//* 直流电机的PWM波控制,可以直接的调速从0到20级的调速*//*****************************************************************/#include<reg51.h>#define TH0_TL0 (65536-1000)//设定中断的间隔时长unsigned char count0 = 50;//低电平的占空比unsigned char count1 = 0;//高电平的占空比bit Flag = 1;//电机正反转标志位,1正转,0反转sbit Key_add=P2 ^ 0; //电机减速sbit Key_dec=P2 ^ 1; //电机加速sbit Key_turn=P2 ^ 2; //电机换向sbit PWM1=P2^6;//PWM 通道1,反转脉冲sbit PWM2=P2^7;//PWM 通道2,正转脉冲unsigned char Time_delay;/************函数声明**************/void Delay(unsigned char x);void Motor_speed_high(void);void Motor_speed_low(void);void Motor_turn(void);void Timer0_init(void);/****************延时处理**********************/void Delay(unsigned char x){Time_delay = x;while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔}/*******按键处理加pwm占空比,电机加速**********/void Motor_speed_high(void)//{if(Key_add==0)Delay(10);if(Key_add==0){count0 += 5;if(count0 >= 100){count0 = 100;}}while(!Key_add);//等待键松开}}/******按键处理减pwm占空比,电机减速*****/ void Motor_speed_low(void){if(Key_dec==0){Delay(10);if(Key_dec==0){count0 -= 5;if(count0 <= 0){count0 = 0;}}while(!Key_dec );}}/************电机正反向控制**************/ void Motor_turn(void){if(Key_turn == 0){Delay(10);if(Key_turn == 0){Flag = ~Flag;}while(!Key_turn);}/***********定时器0初始化***********/void Timer0_init(void){TMOD=0x01; //定时器0工作于方式1TH0=TH0_TL0/256;TL0=TH0_TL0%256;TR0=1;ET0=1;EA=1;}/*********主函数********************/void main(void){Timer0_init();while(1){Motor_turn();Motor_speed_high();Motor_speed_low();}}/**************定时0中断处理******************/ void Timer0_int(void) interrupt 1 using 1{TR0 = 0;//设置定时器初值期间,关闭定时器TL0 = TH0_TL0 % 256;TH0 = TH0_TL0 / 256 ;//定时器装初值TR0 = 1;if(Time_delay != 0)//延时函数用{Time_delay--;}if(Flag == 1)//电机正转{PWM1 = 0;if(++count1 < count0)PWM2 = 1;}elsePWM2 = 0;if(count1 >= 100){count1=0;}}else //电机反转{PWM2 = 0;if(++count1 < count0){PWM1 = 1;}elsePWM1 = 0;if(count1 >= 100){count1=0;}}}。
课程名称:微机原理课程设计题目:基于51单片机的PWM直流电机调速直流电机脉冲宽度调制(Pulse Width Modulation-简称PWM)调速产生于20世纪70 年代中期,最早用于自动跟踪天文望远镜、自动记录仪表等的驱动,后来由于晶体管器件水平的提高及电路技术的发展, PWM 技术得到了高速发展,各式各样的脉宽调速控制器,脉宽调速模块也应运而生,许多单片机也都有了PWM输出功能。
而51单片机却没有PWM 输出功能,采用定时器配合软件的方法可以实现51单片机PWM的输出功能。
本设计就是由单片机STC89C52RC芯片,直流电机(搭建H桥电路驱动)和四位一体LED数码管为核心,辅以必要的电路,构成了一个基于51单片机PWM可调速的直流电机。
该可调直流电机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。
该可调直流电机布置合理,全部器件分布在7*9cm洞洞板上,看起来小巧精简。
采用的是单片机内部定时器产生方波并且两个P口交换输出,可以方便灵活地调速度和方向。
该可调直流电机从0到最大速度1200转每分钟一共设置了60个档次的转速,采用红光四位数码管,可以直观地显示出来(显示的是每分钟的转速)。
有红光和绿光的两个二极管作为转速指示灯。
四个控制按键就可以控制电机的转速,方向与暂停。
每按一个键,该可调电机就会实现相对应的功能,操作非常简单。
关键词:直流电机,51单片机,C语言,数码管一、设计任务与要求 (4)1.1 设计任务 (4)1.2 设计要求 (4)二、方案总体设计 (5)2.1 方案一 (5)2.2 方案二 (5)2.3 系统采用方案 (5)三、硬件设计 (7)3.1 单片机最小系统 (7)3.2 数码管显示模块 (7)3.3 系统电源 (8)3.4驱动电路 (8)3.5 整体电路 (9)四、软件设计 (10)4.1 keil软件介绍 (10)4.2 系统程序流程 (10)五、仿真与实现 (13)5.1 proteus软件介绍 (13)5.2 仿真过程 (13)5.3 实物制作与调试 (15)5.4 使用说明 (17)六、总结 (18)6.1 设计总结 (18)6.2 经验总结 (18)七、参考文献 (21)一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).四个按键分别实现改变转向,加速,减速与暂停的功能2).H桥电路驱动直流电机3).一个红光和一个绿光二级管指示电机转向4).四位数码管显示转速二、方案总体设计设计一个基于51单片机的可调直流电机。
仿真整体图如下:直流电机的调试功能仿真如下图:1、正转时,电机正转,数码管最高位显示“三”,其它三位先所给定频率,如下图:2、反转时,电机反转,数码管最高位显示“F”,其它三位先所给定频率,如下图:3、输出波形如下:4、加速分5档,波形依次如下:5、减速分5档,波形如下:程序见附件1PCB图见附件2元件清单略附件1/***************基于单片机AT89C51的直流电机PWM调速控制系统*************/ /************头文件*********/#include<reg51.h>#include<absacc.h>#include <intrins.h>/************************** //********自定义变量********/#define uint unsigned int //自定义变量#define uchar unsigned charchar gw,sw,bw,qw;uchar j; //定时次数,每次20msuchar f=5; //计数的次数sbit P10=P1^0; //PWM输出波形1sbit P11=P1^1; //PWM输出波形2sbit P12=P1^2; //正反转sbit P13=P1^3; //加速sbit P14=P1^4; //减速sbit P15=P1^5; //停止sbit P16=P1^6; //启动uchar k;uchar t; //脉冲加减/**************************/*/*********控制位定义********************/uchar code smg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};//程序存储区定义字型码表char data led[4]={0x08,0x04,0x02,0x01}; //位码uint x; //数码管显示的数值display(); //数码管显示delays(); //延时函数key();displays();/*****************************************//***************主函数********************/main (void){TMOD=0x51; //T0方式1 定时计数T1方式1计数TH0=0xb1; //装入初值 20MSTL0=0xe0;TH1=0x00; // 计数567TL1=0x00;TR0=1; //启动 t0TR1=1; //启动t1gw=sw=bw=qw=0; //数码管初始化P0=0xc0;P2=1;while(1) //无限循环{display(); //数码管显示key();}}/*****************************************//***************数码管显示****************/display(){uchar i;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();}else if(i==1) //显示十位P0=smg[sw];delays();}else if(i==2) //显示百位{P0=smg[bw];delays();}else if(i==3) //显示千位{if(k==0) //正转时显示"三"{P0=0x49;delays();}else{P0=0x71; //反转时显示"F"}}i++;}}/*******************************************************//*****************延时函数*************************/ delays(){uchar i;for(i=5000;i>0;i--);}/************************************************//*********t0定时*中断函数*************/void t0() interrupt 1 using 2{TH0=0xb1; //重装t0TL0=0xe0;f--;if(k==0){if(f<t)P10=1;P10=0;P11=0;}else{if(f<t)P11=1;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;}}/******************************************************/ 附件2:元件数量(个)元件数量(个)1 三极管8550 4光电耦合器:TLP521-2按键 5 三极管8050 5自锁按键 1 1N4007 4 At89s52 1 四位一体数码管 1 12M晶振 1 电容104 1 Led 1 直流电机 1 电阻1K 3 电容22P 2 电阻10K 1 电解电容47P/16V 274LS04 1 下载口 1。
基于MC51单片机的直流电机PWM调速系统一、本文概述随着现代电子技术的快速发展,直流电机调速系统在各种工业控制、自动化设备及智能家居等领域中得到了广泛应用。
MC51单片机作为一种功能强大、性价比高的微控制器,具有集成度高、稳定性好、控制灵活等优点,在电机控制领域具有广泛的应用前景。
本文旨在探讨基于MC51单片机的直流电机PWM(脉冲宽度调制)调速系统的设计与实现。
本文将首先介绍直流电机PWM调速的基本原理,包括PWM技术的特点及其在电机调速中的应用。
随后,将详细阐述基于MC51单片机的PWM调速系统的硬件设计,包括单片机选型、功率驱动电路、电机接口电路等关键部分的设计与搭建。
在软件设计方面,本文将介绍如何利用MC51单片机的定时器、I/O端口等资源,实现PWM信号的生成与控制,以及如何通过编程实现电机的精确调速。
本文还将对系统的调试与优化进行阐述,包括电路调试、软件调试、性能优化等方面的内容,以确保系统的稳定性和可靠性。
本文将总结基于MC51单片机的直流电机PWM调速系统的优点与应用前景,为相关领域的研究和实践提供参考和借鉴。
通过本文的研究与探讨,读者可以深入了解基于MC51单片机的直流电机PWM调速系统的设计与实现过程,掌握相关硬件与软件设计技术,为实际应用中的电机调速控制提供有效的解决方案。
二、系统总体设计在本设计中,我们将基于MC51单片机构建一个直流电机PWM(脉冲宽度调制)调速系统。
该系统的设计目标是实现直流电机的精确速度控制,以满足不同应用场景的需求。
总体设计包括硬件设计和软件设计两个部分。
硬件设计主要包括MC51单片机、直流电机、电机驱动电路、PWM 信号生成电路、电源电路以及必要的接口电路。
MC51单片机作为系统的核心控制器,负责生成PWM信号、接收用户输入以及处理相关控制逻辑。
直流电机是执行机构,通过电机驱动电路与MC51单片机相连,接收PWM信号以驱动电机转动。
PWM信号生成电路用于将MC51单片机输出的数字信号转换为模拟的PWM信号,以控制电机的转速。
基于MC51单片机的直流电机PWM调速系统一、概述随着现代工业技术的不断发展,直流电机因其良好的调速性能和控制精度,在工业自动化、机器人、航空航天等领域得到了广泛的应用。
PWM(脉宽调制)技术作为一种高效的电机调速方法,能够有效地控制直流电机的速度和方向。
本文旨在介绍一种基于MC51单片机的直流电机PWM调速系统,通过单片机实现对直流电机的精确控制。
该系统以MC51单片机为核心控制器,利用其强大的运算能力和丰富的外设接口,实现对直流电机的PWM调速控制。
系统通过采集电机的实时转速信息,结合用户设定的目标转速,利用PWM信号调整电机的输入电压,从而实现对电机转速的精确控制。
系统还具备过流、过压等保护功能,确保电机在安全可靠的环境下运行。
基于MC51单片机的直流电机PWM调速系统具有结构简单、控制精度高、响应速度快等优点,适用于各种需要精确控制直流电机转速的场合。
通过本系统的研究与应用,可以进一步提高工业自动化水平,推动相关产业的发展。
1. 直流电机PWM调速系统的研究背景与意义直流电动机作为最早出现的电动机类型,长期以来在调速控制领域占据着统治地位。
其良好的线性调速特性、简单的控制性能、高效的能量转换效率以及优异的动态特性,使得直流电动机在各种应用场景中得到了广泛的应用。
特别是在对调速性能要求较高的场合,如电力牵引、轧钢机、起重设备等,直流电动机更是发挥了不可替代的作用。
随着科学技术的不断进步和工业应用需求的日益复杂,传统的直流电机调速方式已经难以满足现代工业生产的需求。
传统的调速方法往往存在调速精度不高、调速范围有限、能耗较大等问题,严重制约了直流电动机在更多领域的应用。
为了解决这些问题,PWM(脉冲宽度调制)调速技术应运而生。
PWM技术利用微处理器的数字输出来对模拟电路进行控制,具有控制简单、灵活和动态响应好的优点。
通过将PWM技术应用于直流电机调速系统,可以实现对电机转速的精确控制,提高调速精度和调速范围,同时降低能耗,提高系统的稳定性和可靠性。
摘要随着时代的进步和科技的发展,电机调速系统在工农业生产、交通运输以及日常生活中起着越来越重要的作用,因此,对电机调速的研究有着积极的意义。
长期以来,直流电机被广泛应用于调速系统中,而且一直在调速领域占居主导地位。
本设计是基于单片机控制的PWM直流电机调速系统,系统以STC89C51单片机为核心,以130小直流电机为控制对象,以L298N为H桥驱动芯片实现电动机的转速反馈控制。
调节PWM占空比从而控制电机两端电压,以达到调速的目的。
用4*4键盘输入有关控制信号及参数,并在12864 LED上实时显示输入参数及动态转速。
系统的硬件设计部分包括按键模块、电动机驱动模块、STC89C51单片机系统、光电门测速模块、保护电路、供电电源和直流电机。
系统的软件部分包括键盘控制程序设计、显示程序设计、主控程序设计。
整个系统实现了单片机控制电机的启制动、正反转、速度调节的效果。
关键词:STC89C51单片机;直流电机;PWM;占空比AbstractWith the progress of the times and the development of science and technology, motor speed control system in the industrial and agricultural production, transportation and daily life plays an increasingly important role, therefore, the study of motor speed has a positive meaning. Long-term since, the DC motor is widely used in the control system, and has been in control field to dominate.The design is based on the single chip microcomputer control of PWM DC motor speed control system, the system uses STC89C51 single chip microcomputer as the core, with 130small DC motor as control object, with L298N H bridge driver chip to realize the motor speed feedback control. Regulation of the PWM duty cycle to control the motor voltage at both ends, so as to achieve the purpose of speed. With 4*4 keyboard input control signal and parameters, and in 12864LED real-time display input parameters and dynamic speed. System hardware design part comprises a key module, motor drive module, STC89C51 singlechip system, photoelectric door gun module, protection circuit, power supply and a DC motor. System software includes keyboard control program design, program design, main control program design. The entire system to achieve the single-chip microcomputer to control the motor start and brake, reverse, speed regulating effect.Keywords :STC89C51 single chip microcomputer;DC motor;PWM;Duty ratio目录摘要 (I)Abstract (II)1引言 (1)1.1 直流调速系统概况 (1)1.2 设计目的和意义 (2)1.3 国内外发展现状 (3)1.4 设计要求和内容 (3)2直流调速原理分析与方案确定 (4)2.1 直流PWM调速系统原理分析 (4)2.2 方案论证和选择 (6)3 系统硬件设计 (10)3.1 按键控制模块 (10)3.2 电动机驱动模块 (11)3.4 STC89C51单片机系统 (16)3.5 光电门测速模块 (17)3.6 保护电路 (18)3.7 供电电源 (18)3.8 直流电动机的说明 (18)3.9 系统总体设计电路图 (19)4 系统软件设计 (21)4.1 键盘控制程序设计 (21)4.2 显示程序设计 (23)4.3 主控程序设计 (25)5 实物的直流调速实现与调试 (29)结论 (33)参考文献 (34)致谢 (35)1引言1.1 直流调速系统概况现代工业的电力拖动一般都要求局部或全部的自动化,因此必然要与各种控制元件组成的自动控制系统联系起来,而电力拖动则可视为自动化电力拖动系统的简称。
摘要本文基于对PWM控制技术和AT89C51单片机直流调速系统的研究,设计了应用于直流电动机的单片机控制的PWM电流转速双闭环直流调速系统,该系统能够实现对电机的正转、反转、急停、加速、减速的控制以及恒速调节。
论文以直流电机调速系统为控制对象,主要介绍了PWM控制技术的理论以及用单片机实现PWM 控制电机转速的基本原理,绘制出了系统的程序流程图,设计出了系统的硬件电路和软件电路,编写了KeilC51汇编语言,进行了Proteus软件的调试与仿真,仿真结果表明系统满足各项性能指标要求。
关键词:PWM技术;单片机;双闭环;直流电机;调速控制ABSTRACTBased on the study of PWM technology and DC governor system controlled by AT89C51 microprocessor control unit, that applied to DC motorspeed contml governor system which is controlled by microprocessor control unit is designed. This system can make motorspeed contml speed up or slow down or stop rapidly even rotate positively and negatively. One more thing is that DC motorspeed contml controlled by this system can adjust its rotate speed smoothly.The article mainly concentrates on the DC governor system. The theory of PWM technology and basic theory of system controlled by AT89C51 and PWM technology which adjusts the speed of DC motorspeed contml are introduced. The chat of process is drawn out, so as the circuits of system. The KeilC51 language is operated on the simulation platform debugging after it's written out. The consult indicates that the system meets all conditions which are needed.Keywords: PWM technology ;microprocessor control unit ;Double-loop ;DC motorspeed contml ;digital control目录1. 绪论................................................................1 1.1 概况................................................................1 1.2 国内外发展概况....................................................21.3 设计目的和意义....................................................22. 直流调速系统概述.................................................4 2.1 直流电机的工作原理...............................................4 2.2 直流电机的调速方法...............................................52.3 H桥电机驱动的概述...............................................83. 方案论证和选择...................................................7 3.1 稳压电源的选择...................................................10 3.2 电机调速控制模块.................................................8 3.3 PWM调速工作方式.................................................9 3.4 PWM调脉宽方式....................................................93.5 PWM软件实现方式.................................................94. 系统硬件电路设计................................................10 4.1 时钟电路..........................................................10 4.2 复位电路..........................................................11 4.3 稳压电源电路.....................................................10 4.4 信号输入电路.....................................................124.5 电机PWM驱动模块的电路..........................................175. 系统的软件设计...................................................185.2 系统软件设计分析.................................................196. 单片机系统综合调试..............................................20 6.1 PROTEUS设计与仿真平台..........................................20 6.2 PROTEUS设计与单片机传统开发过程比较..........................21 6.3 仿真结果与分析...................................................27参考文献..............................................................23附录...................................................................32附录一程序清单......................................................23附录二硬件原理图....................................................38致谢...................................................................391 绪论1.1 概况现代工业的电力拖动一般都要求局部或全部的自动化,因此必然要与各种控制元件组成的自动控制系统联系起来,而电力拖动[1]则可视为自动化电力拖动系统的简称。
曾胜1,王兵2,胡须胜1,师浩1(1.皖江工学院 电气工程学院,安徽 马鞍山 243031;2.安徽工业大学 电气与信息工程学院,安徽 马鞍山 243000)摘要:采用SCT89C51单片机作为此次设计的控制芯片,由LCD1602液晶显示屏来展示电机的转速和占空比的相关实时数据,让用户能够更加清楚地看到电机的状态;在系统上增加按键以便于用户控制电机转速的快慢调整。
当电机通电开始运作时,LCD1602显示屏亮起,通过按键增加电机转速,液晶显示器上也会显示实时的转速数据;减速度按键使电机减速,用户可以通过正反转按键切换电机的旋转状态。
关键词:PWM电机调速;STC89C51单片机;LCD1602液晶显示屏Based on STC89C51 MCU PWM Motor Speed Regulation Zeng Sheng1, Wang Bing2, Hu Xusheng1, Shi Hao1(1�School of Electrical Engineering, Wanjiang University of Technology, Maanshan 243031, China;2� School of Electrical and Information Engineering, Anhui University of Technology,Maanshan 243000, China)Abstract: Uses STC89C51 microcontroller as the control chip of this design, and LCD1602 liquid crystal screen to display the motor speed and duty cycle related real-time data� So that users can see the state of the motor more clearly and concisely, in the system to increase the keys for users to control the speed of the motor adjustment� When the motor is energized and starts to operate, the LCD1602 display screen lights up, and the motor speed is increased by pressing the button� The LCD display will also display real-time speed data� When the motor decelerates by decelerating the button; The user can switch the rotation state of the motor through the positive and negative keys�Key Words:PWM motor speed regulation; STC89C51 MCU; LCD1602 screen0 引言直流驱动器的早期是由模拟单子控制器构成的控制设备。
仿真整体图如下:直流电机的调试功能仿真如下图:1、正转时,电机正转,数码管最高位显示“三”,其它三位先所给定频率,如下图:2、反转时,电机反转,数码管最高位显示“F”,其它三位先所给定频率,如下图:3、输出波形如下:4、加速分5档,波形依次如下:5、减速分5档,波形如下:程序见附件1PCB图见附件2元件清单略附件1/***************基于单片机AT89C51的直流电机PWM调速控制系统*************/ /************头文件*********/#include<reg51.h>#include<absacc.h>#include <intrins.h>/************************** //********自定义变量********/#define uint unsigned int //自定义变量#define uchar unsigned charchar gw,sw,bw,qw;uchar j; //定时次数,每次20msuchar f=5; //计数的次数sbit P10=P1^0; //PWM输出波形1sbit P11=P1^1; //PWM输出波形2sbit P12=P1^2; //正反转sbit P13=P1^3; //加速sbit P14=P1^4; //减速sbit P15=P1^5; //停止sbit P16=P1^6; //启动uchar k;uchar t; //脉冲加减/**************************/*/*********控制位定义********************/uchar code smg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};//程序存储区定义字型码表char data led[4]={0x08,0x04,0x02,0x01}; //位码uint x; //数码管显示的数值display(); //数码管显示delays(); //延时函数key();displays();/*****************************************//***************主函数********************/main (void){TMOD=0x51; //T0方式1 定时计数T1方式1计数TH0=0xb1; //装入初值 20MSTL0=0xe0;TH1=0x00; // 计数567TL1=0x00;TR0=1; //启动 t0TR1=1; //启动t1gw=sw=bw=qw=0; //数码管初始化P0=0xc0;P2=1;while(1) //无限循环{display(); //数码管显示key();}}/*****************************************//***************数码管显示****************/display(){uchar i;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();}else if(i==1) //显示十位P0=smg[sw];delays();}else if(i==2) //显示百位{P0=smg[bw];delays();}else if(i==3) //显示千位{if(k==0) //正转时显示"三"{P0=0x49;delays();}else{P0=0x71; //反转时显示"F"}}i++;}}/*******************************************************//*****************延时函数*************************/ delays(){uchar i;for(i=5000;i>0;i--);}/************************************************//*********t0定时*中断函数*************/void t0() interrupt 1 using 2{TH0=0xb1; //重装t0TL0=0xe0;f--;if(k==0){if(f<t)P10=1;P10=0;P11=0;}else{if(f<t)P11=1;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;}}/******************************************************/ 附件2:。
一种基于AT89C51的直流电机PWM调速系统
常心远;高继辉;刘千萌;成浩;薛晨澎;孙哲
【期刊名称】《电气工程》
【年(卷),期】2024(12)1
【摘要】直流电机调速技术是工业自动化领域中非常重要的技术之一,具有广泛的应用前景和市场需求。
本项目我们用到的微控制器是AT89C51型号单片机,并利用PWM脉冲宽度调制的方法设计出来的一个直流电机调速系统。
AT89C51单片机作为系统的核心芯片,电机驱动电路则是用到L298N来进行控制的,通过与单片机各引脚的相互连接,实现了一个用PWM来控制的直流电机调速系统。
使用proteus 8对系统进行电路的设计与仿真,并利用Keil5来进行程序的编写,最后通过proteus 8与Keil 5的联合仿真与测试从而实现电机调速系统的功能。
【总页数】7页(P12-18)
【作者】常心远;高继辉;刘千萌;成浩;薛晨澎;孙哲
【作者单位】天津农学院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于Nios Ⅱ的片上可编程系统(SOPC)实现的直流电机的PWM调速系统
2.基于单片机的直流电机PWM调速系统
3.基于物联网的直流电机PWM智能调速系
统设计4.基于STC89C51的直流电机PWM的PID调速系统5.基于ARM的直流电机PWM调速系统设计
因版权原因,仅展示原文概要,查看原文内容请购买。
基于单片机的PWM变频调速系统设计(只要肯花20财富值下载此文档,我就给你proteus仿真电路图,.hex文件和完整程序下载后加好友并注明百度课程设计文档,我就发文件压缩包,在我的百度云盘里。
)摘要:本文研究了利用at89c51单片机控制PWM信号从而实现对直流伺服电机转速进行控制的方法。
文中对PWM信号的调速原理做了详细的论述。
此外,系统中采用了芯片L298作为直流伺服电机的驱动模块,完成了在主电路中对直流电机的控制。
另外,文中介绍了Proteus的使用,并对该调速系统做了仿真。
鉴于Proteus7.1版本不能直接使用C语言进行仿真,采用了Keil生成了Hex文件,并导入到Protues工程中进行仿真。
最后,文中详细给出了电路图和c语言程序关键词:PWM调速;单片机;直流伺服电机目录第一章概述 (4)1.1 PWM调速系统的组成和功能 (4)1.1.1 PWM信号发生与调节模块 (4)1.1.2 PWM信号放大与电机驱动模块 (5)1.1.3 负载模块 (5)1.2 单片机概述 (5)1.2.1 单片机及其发展历程 (5)1.2.2 单片机的应用领域及发展趋势 (5)1.3 计算机仿真概述 (6)第二章 PWM调速技术 (7)2.1 PWM的基本原理 (7)2.1.1 PWM信号简介 (7)2.1.2 PWM调速原理 (8)2.2 系统设计方案 (9)2.2.1 系统总体设计思想 (9)2.2.2 系统总体设计框图 (9)第三章 PWM调速系统设计 (10)3.1 系统硬件设计 (10)3.1.1 主电路设计 (10)3.1.2 AT89C51单片机简介 (10)3.1.3 功率放大驱动芯片介绍 (13)3.1.4 伺服电机介绍 (14)3.2 系统软件设计 (16)3.2.1 程序流程图 (16)3.2.2 C语言程序设计 (16)3.3 PWM调速系统仿真 (19)3.3.1 系统仿真电路图 (19)3.3.2 电压输出波形 (19)第四章总结 (21)参考文献 (22)致谢 (23)第一章概述本文主要研究了利用与MCS-51兼容的at89c51单片机,通过PWM方式控制直流电机调速的方法。