基于单片机的PWM变频调速设计。
基于51系列单片机的直流电机PWM调速系统设计

基于51系列单片机的直流电机PWM调速系统设计
随着社会的发展,直流电机作为机械设备中重要的驱动件,已经被越来越多的应用起来,而PWM(脉冲宽度调制)技术是控制直流电机转速的有效方法。
本文介绍了一种基于
51系列单片机的直流电机PWM调速系统设计,该调速系统可以实现对直流电机的转速调节。
首先,本文详细描述了该调速系统的硬件结构,包括51系列单片机控制器,PWM模块,旋转编码器,按键,LED指示灯,直流电机等构成组件。
其中,51系列单片机控制器负责
信号的采集和处理,PWM模块负责调节直流电机的转速,旋转编码器负责实时测量直流电
机的转速,按键和LED指示灯则用于进行键盘操作和系统状态指示。
接着,本文提出了该系统的主要程序流程设计。
首先,通过旋转编码器获取当前直流
电机的转速,并经过51系列单片机的实时校准,作为调节直流电机的转速的PWM信号的
参考值。
然后,通过按键输入参考值,调节PWM模块的输出比例,从而调节直流电机的转速。
最后,将调节结果通过LED指示灯反馈出来,用于系统状态的指示。
整个调速系统的设计都在51系列单片机上完成,功能完善。
基于单片机的直流电机PWM调速控制(设计)

毕业设计(论文)任务书
专业班级姓名
一、课题名称:基于单片机的直流电机PWM调速控制
二、主要技术指标:(1)利用单片机实现对直流电机的调速控制,调速方式采用脉宽调制
技术(PWM)。
(2)直流电机在单片机的控制下能够实现启动、停止动作(3)利用AD转换
模块(ADC0809)通过单片机实现直流电机的无极调速。
(4)单片机采用AT89C51,直流电
机的电源电压为12V。
三、工作内容和要求:(1)通过网络和图书管完成单片机、直流电机及AD转换模块相关
资料收集(2)单片机的工作原理及应用(3)直流电机的工作原理及调速方法(4)完成调
速系统的硬件设计包括单片机、直流电机及直流电机驱动器的选型和硬件接线。
(5)完成调
速系统软件的设计,要求完成控制程序的流程图和汇编语言程序设计。
四、主要参考文献:1._赵德安单片机原理与应用[M] 机械工业出版社 2004 196-201
2.岳东海直流电机PWM无级调速控制系统设计[J] 价值工程 2010(2)135-136 ________________________________________________ _ ______
学生(签名)年月日
指导教师(签名)年月日
教研室主任(签名)年月日
系主任(签名)年月日。
基于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。
基于单片机的PWM直流电机调速系统设计

基于单片机的PWM直流电机调速系统设计摘要本文主要介绍基于单片机的PWM直流电机调速系统的设计和实现方法。
该系统通过利用单片机控制器控制电机的启动、停止、正转和反转等操作,同时实现对电机速度的调节。
在电机工作时,单片机通过PWM技术控制电机的电压和电流,从而达到调节电机转速的效果。
系统设计思路为了实现电机的调速功能,本系统采用基于单片机控制器和PWM技术的电机驱动控制方案。
系统整体分为硬件和软件两个部分,硬件部分主要包括电机、电路组成和控制器,而软件部分则是单片机程序设计。
电路组成系统电路主要由电源、单片机控制器、电机驱动模块和电机组成。
其中,电源主要用于系统供电,单片机控制器主要用于控制电机驱动模块的输出,电机驱动模块负责将单片机控制器输出的PWM信号转换为直流电机可控的电流。
单片机程序设计系统中需要对单片机进行程序设计,以实现对电机的启动、停止、正转和反转等操作,同时实现电机的调节功能。
程序设计主要包括以下几个部分:1.系统初始化:包括系统时钟初始化、输入输出口初始化以及中断配置等。
2.电机控制:控制电机的启动、停止、正转和反转等操作。
3.电机调速:利用PWM技术实现对电机的调节功能。
4.数据处理:对输入的调节参数进行处理,然后转换成PWM占空比输出到电机。
PWM技术原理PWM技术是通过控制模拟信号的占空比,来达到模拟信号的数字化的目的。
具体而言,通过控制PWM信号的占空比,从而实现对电机输出电压和电流的控制,从而达到对电机转速的调节。
系统实现步骤本系统的实现步骤主要包括以下几个部分:电机接线首先,需要根据电机的参数和工作电压要求,正确接线电机。
接线时需要注意电机正反转的问题,以及电路的安全性问题。
程序编写根据我们的设计思路,需要编写相应的单片机程序。
程序编写包括系统初始化、电机控制、电机调速和数据处理等部分。
编写程序时需要考虑到各参数变化的初始值和变化范围,以及程序的鲁棒性和可调节性。
系统调试在程序编写完成后,需要对整个系统进行调试。
课程设计基于单片机的直流电机pwm调速

目录1系统的方案设计 (1)1.1方案的分析 (1)1.2方案的制定 (2)2硬件的设计 (3)2.1单片机主电路的设计 (3)2.2数码管显示部分 (3)2.3L298N调制电动机电路 (5)2.4单片机驱动L298N模块 (6)3 软件设计 (7)3.1操作键盘设计 (7)3.2转速显示设计 (8)3.3PMW调制 (9)4 仿真截图 (10)4.1电机的正转工作状态 (10)4.2电机的反转工作状态 (11)5设计的体会 (12)参考文献资料 (13)附录 (14)仿真图 (14)原程序代码 (15)1系统的方案设计1.1方案的分析本课题以单片机为控制核心,用PMW控制技术实现对直流电机的速度及转向进行控制。
从而实现在数码管上显示当前转速,分别用按键进行加、减速及正反转控制。
单片机的选取:按单片机机器字长可分为:4位(很少用),8位,16位,32位。
按单片机内核可分为:MCS51、A VR、PIC、MSP、HT、ARM等等。
按单片机厂家分就更多了,MCS51内核的厂家就有多种:如SST、Atmel、STC、winbond等。
由于8位单片机的广泛应用场合及其不错的性性,一直受到小型电路解决方案的首选芯片,本方案采用ATMEL公司的AT89C51芯片做为驱动电机的核心电路模块,其性能足以扩展控制一个电机,而且该单片机支持在线编程并提供上千次的擦写功能。
并以低廉的价格普及于当今市场中。
数码管的选取,数码管分为单个数码管和多个数码管集成在一起。
由于考虑到电机转速能够达到很高,采用多个数码管集成在一起的比较省线,通过扫描动态显示数码管能够节省I./O接口,采用这种方式比较适合。
关于PMW波,PWM(Pulse Width Modulation)——脉冲宽度调制,简称脉宽调制,是一种最初用语无线电通信的信号调制技术,后来在控制领域中(比如电机调速)也得到了很好的应用,于是形成了独特的PWM控制技术。
PWM控制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在功率控制与变换的许多领域中。
基于51单片机的PWM直流电机调速

基于51单片机的PWM直流电机调速在现代社会,PWM直流电机已经成为各类机械设备不可或缺的动力源。
为了更好地控制电机的转速和输出功率,我们需要进行PWM调速操作。
本文将简要介绍如何基于51单片机实现PWM直流电机的调速。
一、PWM调速原理PWM调速是一种通过改变电机供电电压的占空比来调整电机转速和功率的方法。
当一个周期内高电平所占的时间比较短时,电机得到的平均电流和平均转矩也相应减小,电机的速度和功率也随之降低。
反之,当高电平所占的时间比较长时,电机得到的平均电流和平均转矩也相应增大,电机的速度和功率也随之提高。
因此,通过改变PWM信号的高电平占空比,可以实现直流电机的调速、调功等功能,极大地提高了电机的效率和可控性。
二、硬件电路搭建根据上述PWM调速原理,我们需要搭建一个控制板,将51单片机的PWM输出与直流电机相连。
具体电路如下:1、选择合适的电源供电,一般为12V/24V直流电源。
2、使用L298N模块作为直流电机驱动模块,将模块的电源接到电源供电上,将模块的IN1和IN2引脚分别接到51单片机的P1^0和P1^1引脚上,将直流电机的正负极分别接到模块的OUT1和OUT2引脚上。
3、将51单片机的P1^2引脚连接到一个脉冲宽度计波形滤波器(LCF)的输入端,并将输出端接到L298N模块的ENA引脚上。
4、调整脉冲宽度计波形滤波器的参数,以达到合理的PWM输出波形。
5、建立一个按键,将按键的一端接到51单片机的P3^2引脚上,将另一端接到单片机的地端。
6、根据需要进行其他接线。
三、软件程序设计根据上述硬件电路,我们需要进行相应的软件程序设计,以实现基于51单片机的PWM 直流电机调速。
以下是程序设计的主要步骤:1、在程序中定义需要使用的IO口。
2、调用定时器初始化程序,设置定时器的时钟频率、计数器值和工作方式等参数。
3、编写一个PWM输出函数,实现对PWM信号的输出。
4、编写一个ADC采样函数,读取ADC转换器的值,并根据采样值输出一定的PWM信号。
基于单片机的PWM直流电机调速系统设计

基于单片机的 PWM直流电机调速系统设计摘要:本文以单片机STC12C5A60S2为核心,结合L298N专用驱动集成电路,通过产生的PWM波控制电机的转速,采用霍尔传感器检测电机转速并通过液晶显示电机实时转速。
最后采用 Keil和 Proteus对整个系统进行设计、编程以及仿真。
关键词:单片机;PWM调速;液晶显示;霍尔传感器;直流电机。
1.引言目前常用的电动机主要有交流电动机和直流电动机,直流电动机因为具有良好的调速性能,以及良好的起、制动性能而被广泛应用在电力拖动系统中。
而调速性能是指电动机在一定的负载条件下,可以根据实际需要,对电动机的转速进行人为的调节。
直流电动机可以在重负载的情况下,实现无级调速,并且调速范围较宽。
直流电动机转速公式:注:为转速、为电枢电压、为电枢电流、为电枢回路总电阻、为励磁磁通、为由电机结构决定的电动势常数。
通过上式可以看出,电动机转速的调节方法主要有以下三种:改变电枢供电电压;改变励磁磁通;调节电枢回路电阻。
以上三种调速方式,以调节电枢供电电压的方式是最好的,它可以实现宽范围的无极平滑调速。
2.PWM调节上面提到对于直流电动机的调速最好的方式是改变供电电压的方式,改变供电电压可以采用V-M调速系统和直流脉宽调速系统,而直流脉宽调速系统相对V-M调速系统具有开关频率高,电流容易连续,谐波少,电机损耗及发热都较小。
PWM调速的原理就是通过把恒定的直流电压调制成高度一定,宽度可变的脉冲电压序列,进而改变平均输出电压从而达到调节转速的目的,实质就是通过控制功率管如电力MOSFET,IGBT等的开关时间进而改变加在电机上的电压占空比就可以改变电机的平均电压。
功率管输入电压以及电机电枢电压的关系如下。
假设加在电动机两端的电压为,通过控制功率管的通断使得输出电压变成了一系列脉冲电压,其平均值计算公式为:,其中为占空比,通过改变占空比就可以改变的值,进而改变电动机转速。
3.调速系统硬件设计本设计采用单片机STC12C5A60S2产生的PWM脉冲波调节输出电压的大小,系统原理框图如图1所示。
基于51单片机的直流电机PWM调速控制系统设计

基于51单片机的直流电机PWM调速控制系统设计I摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。
本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。
另外,本系统中使用了霍尔元件对直流电机的转速进行测量,经过处理后,将测量值送到液晶显示出来。
关键词:PWM信号,霍尔元件,液晶显示,直流电动机II目录目录 (III)1 引言 (1)1.1 课题背景 (1)1.1.2 开发背景 (1)1.1.3 选题意义 (2)1.2 研究方法及调速原理 (2)1.2.1 直流调速系统实现方式 (4)1.2.2 控制程序的设计 (5)2 系统硬件电路的设计 (6)2.1 系统总体设计框图及单片机系统的设计 (6)2.2 STC89C51单片机简介 (6)2.2.1 STC89C51单片机的组成 (6)2.2.2 CPU及部分部件的作用和功能 (6)2.2.3 STC89C51单片机引脚图 (7)2.2.4 STC89C51引脚功能 (7)3 PWM信号发生电路设计 (10)3.1 PWM的基本原理 (10)3.2 系统的硬件电路设计与分析 (10)3.3 H桥的驱动电路设计方案 (11)5 主电路设计 (13)5.1 单片机最小系统 (13)5.2 液晶电路 (13)5.2.1 LCD 1602功能介绍 (14)5.2.2 LCD 1602性能参数 (15)5.2.3 LCD 1602与单片机连接 (17)5.2.4 LCD 1602的显示与控制命令 (18)5.3 按键电路 (19)5.4 霍尔元件电路 (20)III5.4.1 A3144霍尔开关的工作原理及应用说明 (21)5.4.2 霍尔传感器测量原理 (22)6 系统功能调试 (23)总结 (24)致谢 (25)参考文献 (26)IV1 引言1.1 课题背景1.1.2 开发背景在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的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方式控制直流电机调速的方法。
冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。
PWM控制技术就是以该结论为理论基础,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。
按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
PWM控制的基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。
直到进入上世纪80年代,随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。
随着电力电子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM控制技术获得了空前的发展。
到目前为止,已经出现了多种PWM控制技术。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。
本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。
文章中采用了C程序来控制单片机,产生PWM信号。
并自动调节PWM信号的占空比。
将信号输入L298驱动芯片从而达到控制直流伺服电机的效果。
该程序能使电机先正转加速再正转减速到0然后反转加速再减速到0.而电机采用的是价格低廉的直流有刷电机。
另使用一个反应灵敏的数字电压表观察直流伺服电机两端的电压。
最后还给出仿真方法和相关仿真图形。
本次试验的目的是通过本次课程设计,让学生巩固所学的电力拖动自动控制系统的相关内容,加深对控制理论在电力拖动调速系统中应用的理解,并学会将所学的知识应用到实际中,达到在应用中掌握知识的目的。
本课程设计的任务要求跟内容是选用合适的功率器件驱动电路,设计一个基于单片机的PWM变频调速系统,调速系统能够进行平滑的速度调节,具有较宽的调速范围、系统性能良好、能实现正反转。
1.1 PWM调速系统的组成和功能1.1.1 PWM信号发生与调节模块作为一个PWM调速系统,首要的是需要产生PWM信号。
PWM的产生方法有很多,包括纯硬件电路产生方法和采用基于可编程器件的软件实现方法。
本文采用单片机编程生成PWM信号,PWM占空比的调节也采用软件实现。
1.1.2 PWM信号放大与电机驱动模块由单片机产生的PWM信号很微弱,PWM信号产生后并不能直接驱动电机等负载模块,而需要使用专门的电路对该PWM信号进行放大和处理,使其能驱动电机。
本文采用专门的驱动芯片对电机进行驱动。
1.1.3 负载模块PWM信号经过处理后,可用于驱动电机等负载,电机作为电信号转化为机械动力的装置在调速系统中必不可少。
该文采用的是廉价的低电压驱动的直流有刷电机。
1.2 单片机概述1.2.1 单片机及其发展历程单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)、随机存取数据存储器(RAM)、只读程序存储器(ROM)、输入输出电路(I/O口)、可能还包括定时计数器、串行通信口(SCI)、显示驱动电路(LCD或LED驱动电路)、脉宽调制电路(PWM)、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统[3]。
这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
所以,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机诞生于20世纪70年代,自1971年美国Intel公司制造出第一块4位微处理器以来,其发展十分迅猛,到目前为止,大致可分为以下几个阶段。
(1)4位单片机(1971—1974):如Intel4004;(2)低档8位单片机(1974—1978): 如Intel公司的8084,Mostek公司的3870等;(3)高档8位单片机(1978—1982): 如Intel公司的8051、Motorola公司的Z8和NEC公司的MPD7800等产品;(4)16位单片机(1982—1990):如Mostek公司的68200、Intel公司的8096等;(5)新一代单片机(90年代以来):如NEC公司的MPD7800,Mitsubishi公司的M37700,Reckwell公司R6500/21、R65C29,Intel公司的8044、UPI—452等。
1.2.2 单片机的应用领域及发展趋势随着单片机的发展,其应用领域越来越广,大致有:智能仪器仪表、工业控制、家用电器、计算机网络和通信、医用设备等领域,此外,单片机在工商、金融、科研、教育、国防航空航天等领域都有着十分广泛的用途。
世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有[5]:(1)低功耗CMOS化;(2)微型单片化;(3)主流与多品种共存。
1.3 计算机仿真概述计算机仿真不仅在没有具体硬件环境的条件下模拟出具体硬件环境,以判断系统的可行性,而且在设计的系统出错时,不至于损害具体硬件环境[6]。
因此,采用系统仿真是非常必要的。
当前能够用于计算机仿真学习单片机的软件也已日趋成熟,比如Keil都出了8.0以上版本,Proteus也出了7.0以上版本,而各种集成开发环境更是层出不穷,极大地方便了学生通过计算机仿真学习单片机。
尤其是当前最热的几种8位和16位单片机,比如:51系列、AVR系列、PIC系列,仿真学习的条件最为成熟。
甚至32位的ARM单片机也能通过计算机仿真来进行学习。
所以,当前计算机仿真学习单片机的条件已经成熟,应该抓住这个机会,积极地利用它,并为学习单片机服务。
第二章PWM调速技术2.1 PWM的基本原理2.1.1 PWM信号简介脉宽调制(PWM:Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中[1]。
如图2.1所示,PWM是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直图2.1 模拟电平的PWM数字编码流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。
让信号保持为数字形式可将噪声影响降到最小。
噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。
从模拟信号转向PWM可以极大地延长通信距离。
在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
PWM控制技术一直是变频技术的核心技术之一。
1964年 A.Schonung和H.stemmler首先提出把这项通讯技术应用到交流传动中,从此为交流传动的推广应用开辟了新的局面。
从最初采用模拟电路完成三角调制波和参考正弦波比较,产生正弦脉宽调制SPWM信号以控制功率器件的开关开始,到目前采用全数字化方案,完成优化的实时在线的PWM信号输出,可以说直到目前为止,PWM在各种应用场合仍在主导地位,并一直是人们研究的热点。
由于PWM可以同时实现变频变压反抑制谐波的特点。
由此在交流传动及至其它能量变换系统中得到广泛应用。
PWM控制技术大致可以为为三类,正弦PWM(包括电压,电流或磁通的正弦为目标的各种PWM方案,多重PWM也应归于此类),优化PWM及随机PWM。
正弦PWM已为人们所熟知,而旨在改善输出电压、电流波形,降低电源系统谐波的多重PWM技术在大功率变频器中有其独特的优势(如ABB ACS1000系列和美国ROBICON公司的完美无谐波系列等);而优化PWM所追求的则是实现电流谐波畸变率(THD)最小,电压利用率最高,效率最优,及转矩脉动最小以及其它特定优化目标。