单片机系统课程设计基于单片机的直流电机控制设计.doc

上传人:文库蛋蛋多 文档编号:4144553 上传时间:2023-04-07 格式:DOC 页数:33 大小:902KB
返回 下载 相关 举报
单片机系统课程设计基于单片机的直流电机控制设计.doc_第1页
第1页 / 共33页
单片机系统课程设计基于单片机的直流电机控制设计.doc_第2页
第2页 / 共33页
单片机系统课程设计基于单片机的直流电机控制设计.doc_第3页
第3页 / 共33页
单片机系统课程设计基于单片机的直流电机控制设计.doc_第4页
第4页 / 共33页
单片机系统课程设计基于单片机的直流电机控制设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

1、 单片机系统课程设计报告书题目:基于单片机的直流电机控制设计院系名称: 信息工程学院 专业名称: 电子信息工程 班 级: 信息1201B 学 号: 12341301xx 姓 名: x x 指导教师 目录绪论3一:设计主题4二:设计目的4三:设计思路4四:基本原理与总体设计图4五:直流电机单元电路设计与分析51.直流电机设计部分51.1 直流电机的驱动模块51.2 直流电机的类型简介61.3 直流电机的基本结构61.4 直流电机工作原理61.5 直流电机主要技术参数71.6直流电机PWM调速原理71.7 程序设计流程图92.直流电机的中断按键控制模块102.1 外部中断设置113. 1602LC

2、D液晶显示模块123.1 引脚分布和接口信号说明133.2 LCD液晶显示电路14六直流电机PWM控制系统的实现141.总电路功能介绍142.直流电机控制程序14七系统仿真截图28八心得体会32绪论直流电机顾名思义,将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。 近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流电机具有优良的调速特性,调速平滑、方便、调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速

3、等技术已远远不能满足现代科技的要求,这时通过PWM(脉冲宽度调制技术)方式控制直流电机调速的方法就应运而生。采取传统的调速系统主要有以下的缺陷:模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。随着我国经济和文化事业的发展,在很多场合,都要求有直流电机P

4、WM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。基于单片机的直流电机控制设计一 设计任务以单片机为控制核心的直流电机PWM调速控制系统,实现的功能主要包括:直流电机的正、反转;直流电机的加速和减速;直流电机的启动和停止;以及直流电机的转速在LCD显示屏上显示。二 设计目的综合计算机控制系统、电机与拖动及单片机原理等课程所学的理论知识设计一个单片机系统,达到学以致用,加深对所学知识的进一步理解与掌握,并且优化知识结构、丰富动手和思维

5、能力的目的。三 设计思路直流电机PWM控制系统的主要功能包括:直流电机的加速、減速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制,其间,还包括直流电机的直接清零、启动(置数)、暂停、连续等功能。该直流电机控制系统由以下电路模块组成:(1)振荡器和时钟电路:这部分电路主要由80C51单片机和一些电容、晶振组成。(2)设计输入部分:这一模块主要是利用带中断的独立式键盘来实现。(3)设计控制部分:主要由AT89C51单片机的外部中断扩展电路组成。(4)设计显示部分:包括液晶显示部分和LED数码显示部分。其中液晶显示部分由1602LCD液晶

6、显示模块组成;LED数码显示部分由七段数码显示管组成。(5)直流电机PWM控制实现部分:主要由一些二极管、电机和L289直流电机驱动模块组成。四.基本原理与总体设计框图主体电路:即直流电机PWM控制模块。这部分电路主要由80C51单片机的I/O端口、定时/计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制,其间,还包括直流电机的直接清零、启动(置数)、暂停、连续等功能。直流电机PWM调速方案设计框图如图1所示。直流电机停止控制端LCD液晶显示加速控制端直流电机驱动模块减速控制端正转控制端反转

7、控制端 P1口AT89C51单片机 P3口P2口 P1口AT89C51单片机 P3口P2口 图1 直流电机PWM调速方案设计框图方案说明:直流电机PWM调速系统以AT89C51单片机为控制核心,由命令输入模块、LCD显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序的控制下,定时不断的给直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正、反转控制;同时单片机不停的将从键盘读取的数据送到LCD显示模块中去显示,从中不仅能读取其速度,而且能知晓其转向及一些温馨提示。五 直流电机单元电路设计与分析1.直流电机设计部分1.1 直流电机的驱动模块直流电机的驱动模块主要由一

8、些二极管、电机和L298直流电机驱动模块(内含CMOSS管、三态门等)组成。1.2 直流电机的类型简介直流电机可按其结构、工作原理和用途等进行分类,其中根据直流电机的用途可分为以下几种:直流发电机(将机械能转化为直流电能)、直流电动机(将直流电能转化为机械能)、直流测速发电机(将机械信号转换为电信号)、直流伺服电动机(将控制信号转换为机械信号)。这里我们用到的主要是直流电动机。1.3 直流电机的基本结构 直流电机主要由定子、转子和结构件三部分组成。定子包括机座、主磁极、换向磁极、前、后端盖和电刷装置等几个部分;转子是直流电动机实现能量转换的枢纽,有称为“电枢”,转子外圆有槽,槽内嵌有电枢绕组,

9、绕组通过换向器和电刷引出。直流电机的结构如图2所示。图2 直流电动机结构1.4 直流电机工作原理 直流电机电路模型如图3所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的受力方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。图3 直流电动机电路模型1.5 直流电机主要技术参数直流电机的主要额定值有:额定功率:在额定电流和电压下,电机的负载能力。额定电压:长期运行的最高电压。额定电流:长期运行的最大电流。额定转速n:单位时间内的电机转动快慢。以r

10、/min为单位。励磁电流:施加到电极线圈上的电流。1.6直流电机PWM调速原理(1) 直流电机转速 直流电机的数学模型可用图4表示,由图可见电机的电枢电动势的正方向与电枢电流的方向相反,为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩及空载转军均与n相反,是制动转矩。图4 直流电机的数学模型根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式-(1.1)式1.1中,为电枢回路电阻,电枢回路串联保绕阻与电刷接触电阻的总和:是外接在电枢回路中的调节电阻。由此可得到直流电机的转速公式为:(1.2)式(1.2)中,为电动势常数,是磁通量。由式1.1和1.2得(1.3)由式

11、(1.3)中可以看出,对于一个已经制造好的电机,当励磁电压和负载转矩恒定时,它的转速由在电枢两端的电压决定,电枢电压越高,电机转速就越快,电枢电压降低到0V时,电机就停止转动:改变电枢电压的极性,电机就反转。(2) PWM电机调速原理PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目

12、的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。如图2-8所示:图5 PWM方波设电机始终接通电源时,电机转速最大为Vmax,设占空比为D= /T,则电机的平均速度为Va = Vmax * D,其中Va指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;D =/T是指占空比。由上面的公式可见,当我们改变占空比D = /T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。严格来说,平均速度Vd 与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。 对于直流电机来说,如果加在电枢两端的电压为5所示的脉动电流压(要求脉动电压

13、的周期远小于电机的惯性常数),可以看出,在T不变的情况下,改变T1和T2宽度,得到的电压将发生变化,下面对这一变化进一步推导。图6 施加在电枢两端的脉动电压 设电机接全电压U时,其转速最大为Vmax。若施加到电枢两端的脉动电压占空比为D = /T,则电枢的平均电压为: U=UD (1.4) U=KD 在假设电枢内阻转小的情况下式中K,K是常数。图6为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。图7 占空比与电机转速的关系由图看出转速与占空比D并不是完全的线性关系(途中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。 由此可见,改变施加在电枢两端电压就能

14、改变电机的转速,这就是直流电机PWM调速原理。然而考虑市场的行情,既然已有专门为电机驱动而设计的芯片,就没必要再重新来设计:选用L298芯片来构成的电路结构基本跟上图一样,由L298芯片组装的驱动模块如图8所示。所用元器件如下所示:图8 直流电机及其驱动电路1.7程序设计流程图直流电机控制系统的设计流程图如图11所示。图9 系统的设计流程图2.直流电机的中断按键控制模块2.1 外部中断设置(1)外部中断允许设置中断控制寄存器IE的EX0对应INT0,EX1对应INT1,EA为中断的总开关,若要开放外部中断,只要将IE对应的位和总开关EA置1即可。如:开放外部中断0的设置:SETB EX0SET

15、B EA开放外部中断0和1的设置:SETB EX0SETB EX1SETB EA(2)外部中断触发方式设置单片机外部中断有两种触发方式,一种是电平触发方式,另一种是脉冲触发方式,单片机外部中断触发方式与TCON的IT位有关。电平触发设置方法:CLR ITX,为低电平触发方式。脉冲触发设置方法:SETB ITX=1,为脉冲下降沿触发方式。在使用外部中的呢时,如果不进行设置,则为电平触发方式。(3) 外部优先级设置外部中断IN0、INT1的中断优先级的设置是通过设置IP寄存器实现的,IP的PX0对应INT0,PX1对应INT1。PX置1为高级中断,PX为0为低级中断。2.2 外部中断扩展方法在图1

16、0中所示的为外部中断扩展方法,设K4、K3、K2、K1为外部信号,K4代表正转信号,K4=0表示正转;K3代表反转信号,K3=0表示反转;K2代表停止信号,K2=0表示停止;K1代表挡位信号,K1初始为1,每按一次挡位加一,当加到5时在在按又回到1;一共5个挡位。 图10 外部中断扩展电路3. 1602LCD液晶显示模块3.1 引脚分布和接口信号说明(1)引脚分布1602液晶显示共有16个引脚,其引脚分布图如图11所示。图11 1602液晶显示模块引脚分布(2) 引脚功能1602引脚功能如表13所示表13 1602引脚定义及功能3.2 LCD液晶显示电路图14LCD显示电路显示程序流程图如图1

17、5所示图15 显示程序流程图3.3 整体直流电机控制设计电路图如图16所示图16整体直流电机控制设计电路六直流电机PWM控制系统的实现1.总电路功能介绍直流电机PWM调速控制系统具有加速、减速、正转、反转、停止控制功能。操作开关通过中断控制直流电机的加速、减速、正转、反转、停止控制功能,并通过LCD液晶显示。振荡、时钟电路和复位电路由80C51单片机内部给出。直流电机转动速度由LCD液晶显示。操作开关状态由液晶显示器显示。2.直流电机控制C程序#include#define uchar unsigned char #define uint unsigned intsbit PW1=P10 ;s

18、bit PW2=P11; sbit accelerate=P02 ; sbit stop=P03 ; sbit left=P04 ; sbit right=P05 ; sbit detect=P32;sbit lcdrs=P00;sbit lcden=P01;#define Da P2uint temp; /保存检测到的电平数据以便比较 uint count; /用于计数 uint aa,bb; /用于计数uint speed; /用来计算转速uint a=25000;uint t0=25000,t1=25000; /初始时占空比为50%uchar flag=1; /此标志用于选择不同的装载初

19、值uchar dflag; /左右转标志uchar sflag=1; /用来标志速度档位#define right_turn PW1=0;PW2=1#define left_turn PW1=1;PW2=0#define end_turn PW1=1;PW2=1void keyscan(); /键盘扫描void delay(uchar z);void time_init(); /定时器的初始化void write_com(uchar com); void write_data(uchar date); void lcd_init(); void display(uint rate); void

20、 int0_init(); /定时器0初始化void keyscan();/键盘扫描程序void judge_derection();void main() time_init(); /定时器的初始化 lcd_init(); /液晶初始化 int0_init(); /定时器0初始化 while(1) void time_init() TMOD=0x11; /两个定时器都设定为工作方式1 十六位定时计数器 EA=1;/开启总中断 TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; TR0=1; TH1=(65536-a)/256; TL1=(

21、65536-a)%256; ET1=1; TR1=0; void int0_init() EX0=1;/外部中断源可以申请中断 IT0=1;/外部中断源下降沿触发void timer0() interrupt 1 using 0 TH0=(65536-50000)/256; TL0=(65536-50000)%256;/装载初值 keyscan();/键盘扫描程序 aa+; if(aa=5) aa=0; temp=count*0.5*60*2*2*100/24;/计算转速,每分转多少圈 count=0; /重新开始计数脉冲数 display(temp); /把计算得的结果显示出来 void t

22、imer1() interrupt 3 using 0 if(flag) flag=0; end_turn; a=t0;/t0的大小决定着低电平延续时间 TH1=(65536-a)/256; TL1=(65536-a)%256;/重装载初值 else flag=1; /这个标志起到交替输出高低电平的作用if(dflag=0) right_turn; /右转 else left_turn; /左转a=t1; /t1的大小决定着高电平延续时间TH1=(65536-a)/256; TL1=(65536-a)%256;/重装载初值 /*外部中断*/void service_int0() interru

23、pt 0 count+; /来一个下降沿沿就计一个脉冲数 /*显示函数*/void display(uint rate) uchar wan,qian, bai,shi,ge; wan=rate/10000; qian=rate/1000%10; bai=rate/100%10; shi=rate/10%10; ge=rate%10; write_com(0x80); write_data(s); write_data(p); write_data(e); write_data(e); write_data(d); write_data( ); write_data(:); write_com

24、(0x88); write_data(0+wan); write_data(0+qian); write_data(0+bai); write_data(.); write_data(0+shi); write_data(0+ge); /*延时函数*/ void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-) ; /*写指令*/ void write_com(uchar com) lcdrs=0;Da=com;delay(1);lcden=1;delay(1);lcden=0; /*写数据*/ void write_data(uc

25、har date) lcdrs=1; Da=date;delay(1);lcden=1;delay(1);lcden=0; /*液晶初始化*/ void lcd_init() lcden=0;write_com(0x38) ; /初始化write_com(0x0c) ;/打开光标 0x0c不显示光标 0x0e光标不闪,0x0f光标闪write_com(0x01) ; /清显示write_com(0xc0);write_data(D);write_data(a);write_data(n);write_data(g);write_data(w);write_data(e);write_data(

26、i);write_com(0xc8);write_data(:);/write_data( );/write_data( ); /*键盘扫描程序*/ void keyscan() if(stop=0) TR1=0; /关闭定时器0 即可停止转动end_turn; / 停止供电write_com(0xca);write_data(0); if(left=0) TR1=1; dflag=1;/转向标志置位则左转 write_com(0xca); write_data(0+sflag); if(right=0) TR1=1; dflag=0;/转向标志复位则右转write_com(0xca);wri

27、te_data(0+sflag); if(accelerate=0) delay(10) ;/延时消抖if(accelerate=0) while(accelerate=0); /等待松手 sflag+;if(sflag=2) t0=20000; t1=30000;/占空比为百分之60 write_com(0xca); write_data(2); if(sflag=3) t0=15000; t1=35000;/占空比为百分之70 write_com(0xca); write_data(3); if(sflag=4) t0=10000; t1=40000;/占空比为百分之80 write_co

28、m(0xca); write_data(4); if(sflag=5) t0=5000; t1=45000;/占空比为百分之90 write_com(0xca); write_data(5); if(sflag=6) sflag=0; t0=25000; t1=25000; write_com(0xca); write_data(1); 七系统仿真截图LCD液晶显示电路的系统仿真与测试:在PROTEUS运行环境中首先检验LCD显示电路,添加程序,运行LCD液晶显示电路,系统若运行成功将得到如图15,此后在之前的电路基础上再拓展带中断的独立式键盘,调试成功后的电路如图16所示。图17 LCD液晶

29、显示字符初步调试图18 带中断控制的LCD液晶显示调试用带中断的按键来控制直流电机驱动模块的部分电路,若按要求调试成功,将得到图19。图19 用带中断的一档按键来控制的电动机图20 用带中断的五档按键来控制的电动机启动目标系统,按正转,然后按加速开关,我们观察到电机开始运转,每按一次加速,电机的速度都要增加,此时如果按减速,则电机的转速慢慢地减少。同样按反转转也看到同样的结果,当按停止键时,电机慢慢停下来,图21是在目的电路刚启动时未设置命令之前的状态。图22是在正转情况下的仿真结果,图23是在反转情况下的仿真结果。图21 未按键时的初始状态图22 电机正转时的状态图23 电机反转时的状态八心

30、得体会本次课程设计的直流电机速度控制系统是以低价位的单片微机AT89C51为核心的,而通过单片机来实现电机调整又有多种途径,相对于其他用硬件或者硬件与软件相结合的方法实现对电机进行调整,采用PWM软件方法来实现的调速过程具有更大的灵活性和更低的成本,它能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。通过这次设计使我掌握了基于单片机系统设计的基本方法,不仅巩固了自己所学的理论知识,还锻炼了自己的动手能力。在设计中使我对具体程序的编写过程有了更好的把握,对相应指令的内涵有了更深入的理解。在设计中遇到了很多问题,但是经过自己的不懈努力终于完成了设计,使我感到非常欣慰,也给了我更多的信心来面对今后的生活与工作。设计中也存在许多不足之处。主要体现在对所学知识不能灵活运用、举一反三,另外也缺乏系统设计的实际经验。希望今后能多多练习,弥补自己的不足。学习到理论知识与实践中的差距,理论在没有实践的进行,无法成为现实,实践在没有理论的支持也是不行的。

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号