基于单片机的直流电机速度控制.doc

上传人:牧羊曲112 文档编号:4958061 上传时间:2023-05-26 格式:DOC 页数:16 大小:349.50KB
返回 下载 相关 举报
基于单片机的直流电机速度控制.doc_第1页
第1页 / 共16页
基于单片机的直流电机速度控制.doc_第2页
第2页 / 共16页
基于单片机的直流电机速度控制.doc_第3页
第3页 / 共16页
基于单片机的直流电机速度控制.doc_第4页
第4页 / 共16页
基于单片机的直流电机速度控制.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《基于单片机的直流电机速度控制.doc》由会员分享,可在线阅读,更多相关《基于单片机的直流电机速度控制.doc(16页珍藏版)》请在三一办公上搜索。

1、.目 录0.前言11.用单片机控制直流电机转速的基本理论11.1 直流电机调速原理11.2 PWM基本原理及设计方案22.硬件电路的设计42.1 系统分析与硬件设计模块42.2 设计该系统所需部分器件52.3 直流电机的功能简介52.4 直流电机调速控制系统模块62.5 显示设计模块63.系统软件的设计84.系统调试和结果分析94.1仿真图形95.结论和总结11参考文献11附程序清单12 基于单片机的直流电机速度控制7段数码管显示单元谭康康 沈阳航空航天大学北方科技学院摘要:本文介绍了基于单片机的直流电机PWM调速的基本方法,直流电机调速的相关知识以及PWM调速的基本原理和实现方法。重点介绍了

2、基于MCS-51单片机的用软件生产PWM信号以及信号占空比调节的方法。对于直流电机速度控制系统的实现提供了一个有效的途径。 本次课程设计主要任务是以四位共阳数码管显示电机速度,它能间接直观的观察到电机速度的变化,用独立键盘来手动控制电机的转速,其中控制核心部分是单片机,单片机输出微弱的电流信号经过L298N驱动芯片放大从而使电机满足转速的要求。关键字:四位共阳数码管;AT89S52单片机;PWM;直流电机调速0.前言随着社会的发展,各种智能化的产品日益走入寻常百姓家。为了实现产品的便携性、低成品以及对电源的限制,小型直流电机应用相当广泛。对直流电机的速度调节,我们可以采用多种办法,本文在给出直

3、流电机调整和PWM实现方法的基础上,提供一种用单片机软件实现PWM 调速的方法。对基于MCS-51系列单片机实现直流电机调速系统进行研究和设计,能够在不同的按钮作用下分别实现直流电机的停止、加速、减速、正转、反转控制;能够实现基于MCS-51系列单片机的直流电机PWM的调速设计。本文研究的是基于MCS-51系列单片机的直流电机PWM调速系统属于微机控制领域,通过对单片机的学习和研究对自己以后从事硬件产品的开发有一定的实际指导意义。1.用单片机控制直流电机转速的基本理论1.1 直流电机调速原理根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电

4、机来说,人为机械特性方程式为: (1-1)式中, 额定电枢电压、额定磁通量;,与电机有关的常数;,电枢外加电阻、电枢内电阻;,理想空载转速、转速降。分析(1-1)式可得当分别改变、 和时,可以得到不同的转速,从而实现对速度的调节。由于=,当改变励磁电流时,可以改变磁通量的大小,从而达到变磁通调速的目的。如图1-1所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。图1-1直

5、流电动机机械特性曲线 图1-2 电枢电压“占空比”与平均电压关系1.2 PWM基本原理及设计方案1.2.1 PWM基本原理PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规

6、律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为,设占空比为=/,则电机的平均速度为: =* (1-2)式中, 电机的平均速度;电机全通电时的速度(最大);=/占空比。由公式(1-2)可见,当我们改变占空比时=/,就可以得到不同的电机平均速度 ,从而达到调速的目的。严格地讲,平均速度与占空比=/并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。1.2.2 设计方案本文主要介绍利用单片机对PWM信号的软件实现方法。MCS一51系列典型产品AT89S52具有两个定时器 和 。通过控制定时器初值和 ,从而可以实现从S52的任意输出口输出不同占空比的

7、脉冲波形。由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为,定时器计数器为位,则定时器初值与定时时间的关系为: (1-3)式中, 定时器定时初值; 一个机器周期的时钟数。随着机型的不同而不同。在应用中,应根据具体的机型给出相应的值。这样,我们可以通过设定不同的定时初值 ,从而改变占空比=/,进而达到控制电机转速的目的。2.硬件电路的设计本设计以AT89S52单片机为核心,以5个弹

8、跳按钮作为输入达到控制直流电机的停止、加速、减速、正转、反转,以四位共阳数码管显示电机速度大小。在设计中,采用PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。2.1 系统分析与硬件设计模块键盘向单片机输入相应控制指令,由单片机通过P3.0与P3.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、驱动电动机控制电路,实现电动机转向与转速的控制,电动机正转,反转,加速,减速、急停。总体设计方案的硬件部分详细框图如图2-1所示:图2-1 系统硬件框图系统整体硬件电路图如图2-2示: 图2-2 系统硬件电路图2.2 设计该系统所需部分器件AT89S52单片机、直流电

9、机、L298N、12MHZ晶振、四位共阳数码管、电容、电阻、弹跳开关等。2.3 直流电机的功能简介直流电动机具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、停止和反转;能满足生产过程自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现自动化,结构简单,可靠性高,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于单片机性能优越,具有较佳的性能价格比,所以单片机在工业过程及设备控制中得到日益广

10、泛的应用。 2.4 直流电机调速控制系统模块采用单片机构成的直流电动机数字PWM 调速系统,其控制核心主要由单片机的最小系统、电源模块(12v 5v)、电机驱动电路、按键(加速、减速、急停、正转、反转)、显示模块(四位数码管)、直流电机组成。系统采用L298N芯片作为PWM 驱动直流电动机的供电主回路。单片机通过软件处理输出PWM信号, 实现了直流电动机的速度控制,在运行中获得了良好的动静态性能。由于系统性价比高,结构简单,具有实用价值和推广价值。在介绍了基于单片机用PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现方法。重点介绍了基于AT89S52单片机的

11、用软件产生PWM信号的途径,并介绍了一种独特的通过软件定时中断实现PWM信号占空比调节的方法。对于直流电机速度控制系统的实现提供了一种有效的途径。(1)键盘识别:通过P1口的低电平输入识别不同的按键。(2)通过对单片机程序烧录实现对直流电机的停止、加速、减速、正转、反转控制。(3)数码管显示:通过P0口、P2口控制数码管来显示直流电机的速度。(4)由于单片机的驱动能力不强,驱动直流电机需要很强的电流所以必须有外围的驱动电路,因此本设计采用L298芯片放大单片机微弱的电流。控制原理:89S52单片机为核心的直流电机控制系统控制简图如图2-1所示,由软件转换成PWM 信号,并由P3.0、P3.1输

12、出,经驱动电路输出给电机,从而控制电机得电与失电。软件采用定时中断进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的预定值,从而可以控制P3.0/ P3.1输出高低电平时的占空比,进而控制电压的大小。2.5 显示设计模块7段LED数码管是利用7个LED外加一个小数点的LED组合而成的显示设备,可以显示09等10个数字和小数点,使用非常广泛。本次课设使用的是四位共阳数码管,内部的4个数码管共用a-dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,

13、所以它有4个公共端,即片选信号线,共有12个引脚。具体原理图如图示:图2-3 四位共阳数码管内部原理图图2-4 四位共阳数码管外观图 用Proteus仿真该控制系统时,四位共阳数码管显示电机反转图形如下所示:图2-5 仿真显示图形本次设计显示模块采用的是SM410564 四位共阳数码管显示,因为单片机的输出端口输出的电流小,点亮数码管的能力不大,所以需要采用三极管放大输出电流,此次三极管采用的是C9013,具体放大电路如图示: 图2-6 放大电路3.系统软件的设计利用P3口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的电平的持续时间,达到使电机正转、反转、加速、减速、停转等目的。

14、由软件编程从P3.0/P3.1管脚产生PWM 信号,经驱动电路输出给电机,从而控制电机得电与失电。软件采用延时法进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平时实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的占空比,从而可以控制P3.0/ P3.1输出高低电平时的有效值,进而控制电机的加减速。其总体流程图如图3-1示:图3-1 总体程序流程图4.系统调试和结果分析4.1仿真图形初始状态,直流电机有如图示4-1运行效果 图4-1 电机半速运转按下急停键,直流电机有图4-2的停止运行结果。 图4-2 电机

15、停转按下加速键,直流电机有图4-3的正向加速运行结果。 图4-3 电机正转加速按下减速键,直流电机有图4-4正向减速运行结果。 图4-4 电机正转减速按下反转键,直流电机有图4-5反向加速运行结果。 图4-5 电机反转加速5.结论和总结经过将近两周的努力,最终完成了该课程设计。在 Protuse和Keil c中仿真了出来,基本上实现了直流电机的停止、加速、减速和转向控制以及数码管显示。通过这次课程设计,我的学习能力和解决问题的信心都得到了提高。在课程设计的过程中,我遇到了很多困难,但在查阅了很多有关书籍、还有向老师和同学请教后终于得到了解决。通过这次课程设计,我不仅对理论有了更深一步的认识,还

16、培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。我们的课程设计之所以能基本完成,要深深地感谢我的指导老师的悉心指导和帮助。参考文献1 郭天祥. 51单片机C语言教程-入门、提高、开发、拓展全攻略 北京:电子工业出版社,20082 陈忠平. 基于Proteus的AVR单片机C语言程序设计与仿真 北京:电子工业出版社,20113 刘复华. 单片机及其应用系统. 北京:清华大学出版社,19924 马淑华. 单片机原理与接口技术. 北京:北京邮电大学出版社,2005附程序清单#include#define unchar unsigned char#define unint un

17、signed intunsigned char code dispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x84,0xff,0xbf;unsigned char dispbitcode=0xfe,0xfd,0xfb,0xf7;unsigned char dispbuf4=0,0,0,0;unsigned char dispbitcnt;unint mstcnt;unint i;unint count=0;unchar tp=0;void ledshow();void key

18、scan();void delay();void just();void turn();void motorstop();void speedup();void speeddown();void main(void) P3_0=1; P3_1=0; dispbuf0=16; TMOD=0x02 TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1) ledshow(); keyscan(); void delay() unsigned char i,j; for(i=20;i0;i-) for(j=248;j0;j-);void keyscan() u

19、nchar temp=0;P1=0xff;if(P1&0x1f)!=0x1f) delay(); if(P1&0x1f)!=0x1f) temp=P1&0x1f; switch(temp) case 0x1e: just();break; case 0x1d: turn();break; case 0x1b: motorstop();break; case 0x17: speedup();break; case 0x0f: speeddown();break; while(P1&0x1f)!=0x1f); void ledshow() /* P0=dispcodedispbufdispbitc

20、nt; P2=dispbitcodedispbitcnt; dispbitcnt+; if(dispbitcnt=4) dispbitcnt=0; */ P2=0x01;P0=dispcodedispbuf0; for(i=0;i700;i+); P2=0x02;P0=dispcodedispbuf1; for(i=0;i700;i+); P2=0x04;P0=dispcodedispbuf2; for(i=0;i700;i+); P2=0x08;P0=dispcodedispbuf3; for(i=0;i100) count=0; if(counttp) P3_7=0; else P3_7=1; count+;void just() P3_0=1; P3_1=0; dispbuf0=16;void turn() P3_0=0; P3_1=1; dispbuf0=17;void motorstop()tp=0;void speedup() if(tp99) tp=100;else tp+;void speeddown() if(tp1) tp=0;else tp-;.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号