《自-基于单片机的直流电机控制系统设计》由会员分享,可在线阅读,更多相关《自-基于单片机的直流电机控制系统设计(24页珍藏版)》请在金锄头文库上搜索。
1、基于单片机的直流电机控制系统设计摘 要以AT89C51单片机为核心,应用PWM技术对直流电机的速度进行精确调节,并测量出电动机的转速,通过模数转换系统,使用LCD液晶显示器精确的显示电动机的转速。本次课程设计的目的是更加熟练掌握单片机的工作原理及实际应用,特别是单片机的编程语言,数模转换系统,PWM调节脉冲及LCD液晶显示器的工作原理。关键字 :AT89C51单片机;转速控制;直流电机目录1引言12 设计思路23 硬件部分的设计33.1硬件设计总体思路33.2单片机控制直流电机部分的硬件设计34 电机驱动模块的电路设计54.1 单片机与直流电机接口部分54.2各部分硬件结合原理及构造55 软件
2、程序设计6 5.1系统软件设计的总体概述6 5.2系统各部分软件设计的思路66 系统的调试与现象分析97课设总结11参考文献12附录I13附录II211引言本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。 20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的兼容产
3、品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。2设计思路 直流电机
4、PWM控制系统的主要功能包括:直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制。其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。该直流电机系统由以下电路模块组成:振荡器和时钟电路:这部分电路主要由80C51单片机和一些电容、晶振组成。设计输入部分:这一模块主要是利用带中断的独立式键盘来实现。设计控制部分:主要由80C51单片机的外部中断扩展电路组成。设计显示部分:包括液晶显示部分和LED数码显示部分。液晶显示部分由LCD液晶显示模块组成;LED数码显示部分由七段数码显示管组成。直流电机PWM控制实现部
5、分:主要由一些二极管、电机和L298直流电机驱动模块组成。3 硬件部分的设计3.1硬件设计总体思路根据本次课程设计的具体要求为,使用LCD显示出直流电机的转速,由题目可以分析出,这个题目实际是由多个部分组成的。第一个部分用单片机控制直流电机的转速,并且应提供直流电机驱动、测速电路,使用单片机驱动直流电机,测量直流电机的转速,控制直流电机稳定运行在一个范围内。第二个部分使用LCD显示系统显示出直流电机的具体转速,并且单片机控制的电机实际转速与液晶显示器显示出的转速应该时时对应。其三,本系统应该具有数模和模数转换的部分,因为这个模数转换部分在这个系统中是不可缺少的,单片机控制的直流电机转速,在实际
6、中无论是对电机控制的信号,还是电机输出的信号都应该是数字信号,因为只有数字信号才能被单片机所识别,而最重要的是,单片机控制的直流电机输出的转速的信号只有是数字信号时才能被液晶显LCD模块所识别,并最终准确的显示出直流电机的转速。调速系统的硬件设计原理方框图如下图3-1所示, 以AT89C51单片机为控制核心,包括测速电路、PWM波形发生器和PWM功放电路以及LCD显示部分。图3.1 硬件设计方框图3.2单片机控制直流电机部分的硬件设计 直流电动机结构由定子和转子两大部分组成。转子主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换
7、向器和风扇等组成。直流电动机的结构是由直流电源、直流电机、控制开关和调速器组成。直流发电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。感应电动势的方向按右手定则确定其工作原理不外乎就是用直流电源作为能量来驱动电机旋转。通过对三极管的截止与导通进行控制,使其起到开、关和调速的作用。具体的操作为当直流电动机接上直流电源时,使用电位器旋转按钮控制三极管集极的电压。如下图直流电机控制原理。当三极管的集极电压小于死区电压时三极管截止,则电动机不转动;当集极电压大于死区电压而小于饱和电压时三极管处于放大状态,随着集极电压改变,从而改变了直
8、流电动机两端的压降也就改变了电机的转速。具体原理为集极的电压大小不一样,三极管的电压放大倍数也不一样从而起到调速作用改变直流电动机的旋转速度。对于直流电机来说,如果加在电枢两端的电压脉动电流压(要求脉动电压的周期远小于电机的惯性常数),可以看出,在T不变的情况下,改变T1和T2宽度,得到的电压将发生变化。图3.2为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。图3.2 占空比与电机转速的关系由图看出转速与占空比D并不是完全速的线性关系(图中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。由此可见,改变施加在电枢两端电压就能改变电机的转速成,这就是直流电机
9、PWM调速原理。4电机驱动模块的电路设计4.1 单片机与直流电机接口部分由于本系统主要由主控开关,电机励磁电路、调速电路、测速电路、整流滤波电路、平波电抗器、制动电路组成,系统采用闭环PI 调节器控制。当开关闭合后,交流电经晶闸管调速电路控制后,又经过桥式整流、滤波、平波电抗器后,获得脉冲小、连续的直流电提供给电机,同时,交流电通过励磁电路使电机获得励磁,开始工作。调节速度经过调节变阻器进行,当变阻器阻值变化时,单片机输出的控制角也相应变化,晶闸管导通角随之变化,进而由主电路输出电压调节电机转速,同时测速电路输出电压也相应变化,经PI 调节器作用后,电机在设定的速度范围内稳定运转。本次课设可以
10、先在电脑上进行模拟仿真这样就能提高设计的效率以及电路的可行性。而且在仿真的过程中非常方便进行电路修改又可以达到很好的效果。因此通过使用Protues对硬件电路精心设计并对该电路进行仿真调试,用脉冲形式代替光电耦合管测取转速,再与单片机进行通信连接,可如下图所示。4.2各部分硬件结合原理及构造其电路原理图如下电路原理图5 软件程序设计5.1系统软件设计的总体概述软件部分可由1个主程序、3个中断子程序和1个P ID算法子程序组成。主程序是一个循环程序,其主要思路是,先设定好速度初始值,这个初始值与测速电路送来的值相比较得到一个误差值,然后用P ID 算法输出控制系数给PWM发生电路改变波形的占空比
11、,进而控制电机的转速。其程序流程图如图4-1所示。 图4.1 软件总体设计流程图5.2系统各部分软件设计的思路PWM软件实现方式:方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。键盘向单片机输入相应控制指令,由单片机通过P2.0与P2.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制
12、。电动机的运转状态通过LED显示出来。电动机所处速度级以速度档级数显示。正转时数字向右移动,反转时数字向左移动。移动速度分7档,快慢与电动机所处速度级快慢一一对应。每次电动机启动后开始计时,停止时LED显示出本次运转所用时间,时间精确到0.1s。在本次课设所用程序中需要使用到速度测取和计算问题。因此为了能更加准确测得直流电动机的旋转速度,特意运用了我们所了解数字测速法来换算速度。在此对在这几种测速方法进行比较。这样就可以得到此次课程设计所要选择的最佳方案。本系统编程部分工作采用汇编语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽
13、控制和LCD显示等部分的设计。PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:void delay(unsigned char dlylevel) int i=50*dlylevel; while(-i);此函数为带参数DLYLEVEL,约产生DLYLEVEL*400us的延时,因此一个脉冲周期可以由高电平持续时间系数hlt和低电平持续时间系数llt组成,本设计中采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hlt/(hlt+llt),因此要实现定频调宽的调速方式,只需通过程序改变全局变量hlt,llt的值,该子程序流程图如图四。中断处理子程序:采
14、用中断方式,按下键,单片机P3.2脚产生一负跳沿,响应该中断处理程序,完成延时去抖动、键码识别、按键功能执行。调速档、持续加/减速:调速档通过(0-6)共七档固定占空比,即相应档位相应改变hlt,llt的值,以实现调速档位的实现。而要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少1%占空比(即hlt+/-;llt-/+),其程序流程图如图五。显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个LED管要显示的值。显示子程序为一带参子程序,参数为显示缓存的数组名,通过for(i=0;i8;i+)方式对每位加上位选码,送到P0口并进
15、行一两毫秒延时。该显示子程序只对各个LED管分别点亮一次,因此在运行过程中,每秒执行的次数不应低于每秒24次。定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值3CB0H可定时50ms,即系统时钟精度可达0.05s。当50ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。 对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:dodispbuffbcd_p=bechange%10; /dispbuff为显示缓冲区数组 bcd_p+;while(bechange/=10) /disp_p为数组指针软件设计中的特点:对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至