ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:513.15KB ,
资源ID:9194809      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9194809.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计完整版《PWM直流电动机调速控制系统》.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计完整版《PWM直流电动机调速控制系统》.docx

1、单片机课程设计完整版PWM直流电动机调速控制系统单片机原理及应用课程设计报告设计题目: 学 院: 专 业: 班 级: 学 号: 学生: 指导教师: 年 月 日设计题目:PWM直流电机调速系统本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒的方波脉冲个数

2、进行计数,计算出电机的速度,实现了直流电机的反馈控制。 关键词:直流电机调速;定时中断;电动机;PWM波形;LED显示器;51单片机1 设计要求及主要技术指标: 基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。 1.1 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 (2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。 (3)设计一个4个按键的键盘。K1:“启动/停止”。K2:“正转/反转”。K3:“加速”。K4:“减速”。 (4)手动控制。在键盘上设置两个按键-直流电动机加速和直流电

3、动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变。 (5)*测量并在LED显示器上显示电动机转速(rpm). (6)实现数字PID调速功能。 1.2 主要技术指标(1)参考L298说明书,在系统中扩展直流电动机控制驱动电路。 (2)使用定时器产生可控PWM波,定时时间建议为250us。 (3)编写键盘控制程序,实现转向控制,并通过调整PWM波占空比,实现调速; (4)参考Protuse仿真效果图:图(1) 图(1)2 设计过程本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平

4、台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。本设计以控制驱动电路L298为核心,L298是SGS公司的产品,部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机

5、的停转。 本设计以AT89C52单片机为核心,如下图(2),AT89C52是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图(2) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同

6、时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速围可以大大提高。直流电机的速度控制方案如图(3)所示。驱动电路调节器直流电机测速装置转速设定值偏差转速输出 + -直流电机速度控制方案 图(3)一、 以下是直流电机调速3种控制方式选择:1、电阻网络或数字电位器:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。2、继电器:采用继电器对电动机的开或关进行控制。这个方案的优点是

7、电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。3 、H桥组成的高电压大电流双全桥式驱动芯片:L298N是SGS公司的产品,部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。桥型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。 兼于上述三种方案调速特性优良、调整平滑、调速围广、过载能力大,因此本设计采用方案三。二、以下是PWM脉宽的3种调制方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。采

8、用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。 最后再以键盘作为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。三、驱动电路设计单片机输出的电机控制PWM信号接在ENA端口,IN1和IN2端口控制电机正反转,通过一个非门实现。对应的OUT1和OUT2输出接在直流电机两端。如图(4)所示。 图(4)2.1 题目分析 在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软

9、件设计在控制系统设计中占重要地位。键盘向单片机输入相应控制指令,由单片机通过P3.7输出与转速相应的PWM脉冲,另一口输出高电平,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。电动机所处速度级以速度档级数表示。速度分4档,快慢与电动机所处速度级快慢一一对应。在程序过软件产生PWM,送出预设占空比的PWM波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。2.2 整体构思本系统采用AT89C51作为控制核心,用按钮来调节电机转速和数码管来显示设定转速和测量转速。由上述提供的

10、方案和最后选择结果,则用H桥组成的高电压大电流双全桥式驱动芯片L298作为本系统的驱动电路和用带有测速计的电机模型来取得电机的实际转速。如图(5)所示。驱动电路直流电机测速计按 钮LED数码管显示单元上位机AT89C51单片机 直流电机控制系统总体框图(5)软件主要由3部分组成:主程序、键盘扫描程序、中断处理程序。主程序流程如图(6)所示。图(6) 主程序流程图 2.3 具体实现定时中断处理程序实现采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值0xFF9C可定时100us。当100us定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次

11、赋值。 PWM脉宽控制实现 一个脉冲周期可以由高电平持续时间系数c16TimeH和低电平持续时间系数c16TimeL组成,本设计中采用的脉冲频率为10000Hz,可得c16TimeH+c16TimeL=65536,占空比为c16TimeH/(c16TimeH+c16TimeL),因此要实现定频调宽的调速方式,只需通过程序改变全局变量c16TimeH,c16TimeL的值。其程序流程框如图(7): 图(7)3 元件说明及相关计算3.1 元件说明: 电动机:选择电动机参数:额定电压:6V 额定转速:6000rpm 减速比:1:46.7空载转速:128rpm 10ms/转单片机选择: AT89C52

12、是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。主要性能参数: 与MCS-51产品指令和引脚完全兼容8k字节可重擦写Flash闪速存储器1000次擦写周期 全静态操作:0Hz24MHz三级加密程序存储器2568字节部RAM32个可编程IO口线3个16位定时计数

13、器8个中断源可编程串行UART通道低功耗空闲和掉电模式功能特性概述: AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节部RAM,32个IO口线,3个16位定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。L298电机驱动: L298是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准

14、TTL逻辑电平,驱动电感负载(诸如继电器、线圈、DC和步进电机)。L298提供两个使能输入端,可以在不依赖于输入信号的情况下,使能或禁用L298器件。LED显示屏PROTEUS设计与仿真平台3.2 相关计算:在程序过软件产生PWM,送出预设占空比的PWM波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。设PWM周期为T,高电平时间为TH,低电平时间为TL,电压为VCC,则输出电压的平均值为:UAV =VCC*TH/(TH+TL)=VCC*TH/T=aVCC,当VCC固定时,其电压

15、值取决于PWM波形的占空比a,而PWM的占空比由单片机软件部用于控制PWM输出的寄存器值决定。PWM脉宽控制实现 一个脉冲周期可以由高电平持续时间系数c16TimeH和低电平持续时间系数c16TimeL组成,本设计中采用的脉冲频率为10000Hz,可得c16TimeH+c16TimeL=65536,占空比为c16TimeH/(c16TimeH+c16TimeL),因此要实现定频调宽的调速方式,只需通过程序改变全局变量c16TimeH,c16TimeL的值。4 调试过程4.1 调试过程:1、初始状态,未调试之前,仿真图如下图(8)。 图(8)2、启动仿真后,手动控制。在键盘上设置两个按键-直流电

16、动机加速和直流电动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变。LED显示屏上显示电机转速的设定值和电机转速实际值。如下图(9)图(10)图(11)所示。 图(9)启动仿真后 图(10)加速调节电机转速 图(11)减速调节电机转速3、示波器显示PWM方波,状态(电机高速挡反转),显示如下图(12)。 图(12)4、示波器显示PWM方波,状态(电机高速挡反转),显示如下图(13)。 图(13)5、电机实际转速获取:在Proteus中只有一种直流电机集成了测速传感器,在搜索栏里搜索motor-encoder,即可得到这种电机模型。本设计中设置电机转一圈发出60个脉冲。根据实际

17、运转情况及结合所编写程序,确定转速公式为:V=N*15;V:速度 R/min N:每秒采样的脉冲个数 如右图所示,为带测速功能的直流电机模型4.2 遇到问题及解决措施:问题一:打开仿真软件读取程序时出现如下图所示的黄色条幅? 当你在测量时仿真必须停止。也就是说,你想用探针等工具测量参数时,要停止仿真,即,在非仿真状态下,先放好探针等工具,再仿真。问题二:运行程序时,仿真软件底部出现如下图黄色字符? 经过上网查阅资料,给出的答案是电路中GND网络中存在逻辑竞争冲突,检查一下每个接地点是否存在接线错误。或者是逻争征用,是程序里边那里赋值有误。问题三:部分源程序不懂,无法进行仿真,直流电机调速3种控

18、制方式选择? 通过上网查阅资料和图书馆借阅图书得到的资料,程序得到了完善基本上达到了设计目的。实现通过单片机对直流电机的控制,通过合理的设备选型、参数设置和软件设计,提高了直流电机调速运行的可靠性。直流电机调速方式的选择详见2.1。5 心得体会经过十天的学习,工作中,通过查阅相关资料了解了PWM直流电机调速系统,加深了对直流电机调速控制系统的认识,熟悉了单片机在控制系统中的运用。并且在所学知识的基础上,利用已有的直流调速系统设计,尝试了自己的一些研究。并且,使我将原来所学的知识系统化,理论化,实用化。对如何使用已有知识及获取相关资料方面的能力又有了提高。过而能改,善莫大焉。在课程设计过程中,我

19、们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师、同学们的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 这次的课程设计给我很多专业知识以及专业技能上的提升,同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程

20、设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了(PID仿真ISSI)的连线方法;以及如何提高电路的性能等等,掌握部分程序的编写和仿真,通过查询资料,也了解PWM直流电机调速了系统。参考文献1广弟等.单片机基础M.航空航天,2001.2王东峰等.单片机C语言应用100例M.电子工业,2009.3海宴.51单片机原理及应用M.航空航天大学,2010.4守义等.单片机技术基础M.电子科技大学,2007.5钟富昭等.8051单片机典型模块设计与应用M.人民邮电,2007.6平等.单片机入门与开发M.机械工业,2008. 7 伯石.电力拖动自动控制系统M.:机械工业,2003.8 钟富

21、昭.8051单片机典型模块设计与应用M.:人民邮电,20079 靖武.单片机系统的PROTEUS设计与仿真M.:电子工业,200710 恢先.单片机原理及应用M.:人民邮电,200611 孟庆涛.图解电子控制电路M.:人民邮电,200612 维成.单片机原理与应用及C51程序设计M.:清华大学,200613 周润景.基于PROTEUS 的电路及单片机系统设计与仿真M.:航空航天,200614 光飞.单片机课程设计实例指导M.:航空航天,200415 杜坤梅.电机控制技术M.:工业大学,200216 广第.单片机基础(修订版)M.:航空航天大学,200117 光东.单片微型计算机原理与接口技术(

22、第二版)M.武昌:华中科技大学,199918 何耀三.电气传动的微机控制M.:大学,199719 薛钧义.MCS-51/96系列单片微型计算机及其应用M.:交通大学,199720 志强 胡辉.单片机应用系统设计实践指南.自编教材附录一:电路原理图附录二:程序清单#include#include#define uchar unsigned char #define uint unsigned int#define THC0 0xf9#define TLC0 0x0f /2msunsigned char code Duan=0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0

23、x07,0x7F,0x6F;/共阴极数码管,0-9段码表unsigned char Data_Buffer8=0,0,0,0,0,0,0,0; / 显示缓冲 uchar i=0;sbit AddSpeed=P11;sbit SubSpeed=P12;sbit PWM_FC=P10;int e ,e1 ,e2 ;/pid 偏差float uk ,uk1 ,duk ;/pid输出值float Kp=10,Ki=12,Kd=1.6;/pid控制系数 10,12,1.5int out=0;uint SpeedSet=380;uintt=0;uint Inpluse=0,num=0;/脉冲计数uint

24、PWMTime=100;/脉冲宽度unsigned char arry;void SendString(uint ch);void PIDControl();void SystemInit();void delay(uchar x);void PWMOUT();void SetSpeed();void SegRefre();/*主函数*/void main() SystemInit(); while(1) SetSpeed(); /按键设定速度 SegRefre(); /数码管显示刷新 PWMOUT(); /输出PWM void PIDControl() /pid偏差计算 e=SpeedSet

25、-num; /误差=设定值-1s采集的脉冲值 duk=(Kp*(e-e1)+Ki*e+Kd*(e-2*e1+e2)/50; /增量式PID公式 /50 是对 duk进行缩小处理 uk=uk1+duk; out=(int)uk; /输出为占空比 if(out1000) out=1000; else if(out0;i-) for(j=50;j0;j-);void PWMOUT() /输出PWM脉冲 if(cnt1000)t=0; void SystemInit() TMOD=0X21; TH0=THC0; TL0=TLC0; TH1=0xC0; TL1=0XC0; ET1=1; ET0=1; T

26、R0=1; TR1=1; EX0=1; /中断0用来测量转速 IT0=1; EA=1; e =0; /初始化 差值 e1=0; e2=0;void SetSpeed() if(AddSpeed=0) delay(200); /消抖处理 if(AddSpeed=0) SpeedSet+=10; if(SpeedSet1500) SpeedSet=1500; if(SubSpeed=0) delay(200); if(SubSpeed=0) SpeedSet-=10; if(SpeedSet8) Bit=0; P0=0xff; P2=DuanData_BufferBit; /显示段码 switch

27、(Bit) /数码管位选 case 0:P0=0X7F;break; case 1:P0=0XBF;break; case 2:P0=0XDF;break; case 3:P0=0XEF;break; case 4:P0=0XF7;break; case 5:P0=0XFB;break; case 6:P0=0XFD;break; case 7:P0=0XFE;break; if(time100) time=0; num=Inpluse*5; /算得1s采集的脉冲数 Inpluse=0; PIDControl(); /调用PID算法,输出PWM void timer_1() interrupt 3 cnt+; /cnt越大占空比越高

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2