直流电机控制Word文档下载推荐.docx
《直流电机控制Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《直流电机控制Word文档下载推荐.docx(54页珍藏版)》请在冰豆网上搜索。
![直流电机控制Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/25/e35f64eb-a931-43ed-9ba1-f1e89f99ec12/e35f64eb-a931-43ed-9ba1-f1e89f99ec121.gif)
附录37
1.系统总程序清单37
第1章绪论
1.1课题的背景及其意义
当今,自动化控制系统已经在各行各业得到了广泛的应用和发展,而直流驱动控制作为电气传动的主流在现代化生产中起着主要作用。
长期以来,直流电动机因其转速调节比较灵活,方法简单,易于大范围平滑调速,控制性能好等特点,一直在传动领域占有统治地位。
它广泛应用于数控机床、工业机器人等工厂自动化设备中。
随着现代化生产规模的不断扩大,各个行业对直流电机的需求愈益增大,并对其性能提出了更高的要求。
为此,研究并制造高性能、高可靠性的直流电机控制系统有着十分重要的现实意义。
本文设计开发了一套基于单片机的直流电机多速控制器,作为其配套的试验装置。
论文根据系统的要求完成了整体方案设计和系统选型,针对所设计的控制方案对控制系统的软、硬件设计作了详细论述。
硬件部分先作了整体设计,然后介绍了以AT89S51单片机为核心的硬件构成,对调速电路、测量电路、闭环检测电路和显示电路等作了详细阐述;
软件部分采用模块化设计思想,编制了各个模块的流程图。
论述了软件的设计思想和方法;
实现了对直流电动机转动参数的设置、启动、停止、加速、减速、正转、反转和显示等功能。
利用AT89S51芯片进行低成本直流电动机控制系统的设计,能够简化系统构成、降低系统成本、增强系统性能、满足更多应用场合的需要。
针对直流电机运行环境恶劣、干扰严重的特点,从系统的硬件设计、软件设计等多方面进行抗干扰的综合考虑,并利用多种软件和硬件技术来提高和改善系统的抗干扰能力,有效地提高了系统的可靠性和实用性。
运行结果表明,系统实现了电机的高精度多速度控制,达到了性能指标要求。
1.2课题研究的内容及要求
本设计将介绍一种基于单片机的直流电机转速控制系统。
该系统采用以单片机为核心,产生PWM(脉宽调制)信号;
通过H桥驱动电路来控制直流电机的启动、速度、暂停以及方向的变化;
并且采用键盘作为输入,加减改变PWM信号数据;
通过LCD液晶显示屏显示电动机的转速。
对电动机的控制可分为简单控制和复杂控制两种,简单控制是对电动机进行启动、制动、正反转控制和顺序控制,复杂控制是对电动机的转速转速、转角、转矩、电压、电流等物理量进行控制。
本次设计可以作为简单控制向复杂控制的过度,实现直流电机启动、制动、正反转控制和顺序控制外,还要进行转速控制。
为以后复杂控制做为基础学习。
主要内容如下
1.通过键盘设定步进电机的转速及方向
2.接通电源后LCD液晶屏第一行用英文显示“电动机运行状态”的字样,第二行显示出电动机当前用行状态。
3.电动机运行状态用过键盘来控制。
4.其中四只按键来控制电机正传、反转、停止和暂停,另外四只按键分别来控制电机速度每分钟加、减5转或每分钟加、减1转。
5.所有运行状态在LCD液晶屏上都会显示出来。
1.3课题的研究方案
一、设计方案比较与分析:
1、电机调速控制模块:
方案一:
采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。
但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般电动机的电阻很小,但电流很大;
分压不仅会降低效率,而且实现很困难。
方案二:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:
采用由达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;
H型电路保证了可以简单地实现转速和方向的控制;
电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。
2、PWM调速工作方式:
双极性工作制。
双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。
单极性工作制。
单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。
由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。
3、PWM调脉宽方式:
调脉宽的方式有三种:
定频调宽、定宽调频和调宽调频。
我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;
并且在采用单片机产生PWM脉冲的软件实现上比较方便。
4、PWM软件实现方式:
采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。
采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。
但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。
二、系统分析与设计:
总体设计方案的硬件部分详细框图如图一所示。
键盘向单片机输入相应控制指令,由单片机通过P2.0与P2.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。
电动机的运转状态通过LCD显示出来。
电动机所处速度级以速度档级数显示。
正转时数字向右移动,反转时数字向左移动。
移动速度分7档,快慢与电动机所处速度级快慢一一对应。
每次电动机启动后开始计时,停止时LCD显示出本次运转所用时间,时间精确到0.1s。
1、系统的硬件电路设计与分析
电动机PWM驱动模块的电路设计与实现具体电路见下图二。
本电路采用的是基于PWM原理的H型桥式驱动电路。
图二
PWM电路由四个大功率晶体管组成H型桥式电路构成,四部分晶体管以对角组合分为两组:
根据两个输入端的高低电平决定晶体管的导通和截止。
4个二极管在电路中起防止晶体管产生反向电压的保护作用。
4个电感在电路中是起防止电动机两端的电流和晶体管上的电流过大的保护作用。
在实验中的控制系统电压统一为5v电源,因此若达林顿管基极由控制系统直接控制,则控制电压最高为5V,再加上三极管本身压降,加到电动机两端的电压就只有4V左右,严重减弱了电动机的驱动力。
基于上述考虑,我们运用了4N25光耦集成块,将控制部分与电动机的驱动部分隔离开来。
输入端各通过一个三极管增大光耦的驱动电流;
电动机驱动部分通过外接12V电源驱动。
这样不仅增加了各系统模块之间的隔离度,也使驱动电流得到了大大的增强。
在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。
脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。
经实验发现,脉冲频率在40Hz以上,电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;
脉冲频率在10Hz以下,电动机转动有明显跳动现象。
实验证明,脉冲频率在15Hz-30Hz时效果最佳。
而具体采用的频率可根据个别电动机性能在此范围内调节。
通过N1输入信号,N2输入低电平与N1输入低电平,N2输入信号分别实现电动机的正转与反转功能。
通过对信号占空比的调整来对车速进行调节。
速度分7档控制,从高电平(第6档)到低电平(第0档)中间占空比以20%逐极递减。
速度微调方面,可以通过对占空比以1%的跨度逐增或逐减分别实现对速度的逐加或逐减。
2、系统的软件设计
本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和LED显示等部分的设计。
单片机资源分配如下表:
P0显示模块接口外部中断0
(P3.2)键盘中断
P1键盘模块接口
P2.0/P2.1PWM电机驱动接口内部定时器0系统时钟
系统主函数流程如图三:
①PWM脉宽控制:
本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:
voiddelay(unsignedchardlylevel){
inti=50*dlylevel;
while(--i);
}
此函数为带参数DLYLEVEL,约产生DLYLEVEL*400us的延时,因此一个脉冲周期可以由高电平持续时间系数hlt和低电平持续时间系数llt组成,本设计中采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hlt/(hlt+llt),因此要实现定频调宽的调速方式,只需通过程序改变全局变量hlt,llt的值,该子程序流程图如图四。
②键盘中断处理子程序:
采用中断方式,按下键,单片机P3.2脚产生一负跳沿,响应该中断处理程序,完成延时去抖动、键码识别、按键功能执行。
调速档、持续加/减速:
调速档通过(0-6)共七档固定占空比,即相应档位相应改变hlt,llt的值,以实现调速档位的实现。
而要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少1%占空比(即hlt++/--;
llt--/++),其程序流程图如图五。
③显示子程序:
利用数组方式定义显示缓存区,缓存区有8位,分别存放各个LED管要显示的值。
显示子程序为一带参子程序,参数为显示缓存的数组名,通过for(i=0;
i<
8;
i++)方式对每位加上位选码,送到P0口并进行一两毫秒延时。
该显示子程序只对各个LED管分别点亮一次,因此在运行过程中,每秒执行的次数不应低于每秒24次。
④定时中断处理程序:
采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。
对定时器置初值3CB0H可定时50ms,即系统时钟精度可达0.05s。
当50ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。
对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:
do{dispbuff[bcd_p]=bechange%10;
//dispbuff为显示缓冲区数组
bcd_p++;
}while(bechange/=10)//disp_p为数组指针
软件设计中的特点:
1、对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至零。
这样有利于保护电机,如电机运用于小车上,在启动上采用此方式也可加大启动速度,防止打滑。
2、对于运行时间的计算、显示。
配合传感器技术可用于计算距离,速度等重要的运行数据。
3、键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。
三、测试结果与分析:
本设计在硬件上采用了基于PWM技术的H型桥式驱动电路,解决了电机马驱动的效率问题,在软件上也采用较为合理的系统结构及算法,提高了单片机的使用效率,且具有一定的防飞能力。
但该设计也有不足之处,主要是在关于速度的反馈上,无法提供较为直观的速度表示方式,因此,有必要引入传感器技术对速度进行反馈,以rpm或rps表达当前的转速进行显示。
第2章设计理论基础
本设计系统的基本组成单元包括单片机最小系统、H驱动电路桥、LCD显示器、键盘扫描电路,本章将逐一进行介绍。
2.1单片机的发展概况
1970年微型计算机研制成功之后,随之即出现了单片机(即单片微型计算机)—美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,这也算是单片机的第一次公众亮相。
1976年Intel公司首先推出能称为单片机的MCS-48系列单片微型计算机。
它以体积小、功能全、价格低等特点,赢得了广泛的应用,同时一些与单片机有关公司都争相推出各自的单片机。
1978年下半年Motorola公司推出M6800系列单片机,Zilog公司相继推出Z8单片机系列。
1980年Intel公司在MCS-48系列基础上又推出高性能的MCS-51系列单片机。
这类单片机均带有串行I/O口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。
1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK68200和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基础上推出了16位单片机HPC16040和μPD783×
×
系列。
1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。
由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种原因,至今还未得到广泛应用。
而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同时,高性能的新型8位单片机也不断问世。
纵观这短短的20年,经历了4次更新换代,单片机正朝着集成化、多功能、多选择、高速度、低功耗、扩大存储容量和加强I/O功能及结构兼容的方向发展。
新一代的80C51系列单片机除了上述的结构特性外,其最主要的技特点是向外部接口电路扩展,以实现微控制器(microcontroller)完善的控制功能为己任。
这一系列单片机为外部提供了相当完善的总线结构,为系统的扩展和配置打下了良好的基础。
由于80C51系列单片机所具有的一系列优越的特点,获得广泛使用指日可待。
下面我们就来重点介绍一下本毕业论文讨论的系统所用的AT89C51系列单片机。
2.2AT89C51系列单片机介绍
2.2.1AT89C51系列基本组成及特性
AT89C51是一种带4k字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
而在众多的51系列单片机中,要算ATMEL公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。
而这种单片机对开发设备的要求很低,开发时间也大大缩短。
AT89C51基本功能描述如下:
AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。
只要程序长度小于4k,四个I/O口全部提供给用户。
可用5V电压编程,而且写入时间仅10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
AT89C51芯片提供三级程序存储器锁定加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
另外,AT89C51还具有MCS-51系列单片机的所有优点。
128×
8位内部RAM,32位双向输入输出线,两个十六位定时器/计时器,5个中断源,两级中断优先级,一个全双工异步串行口及时钟发生器等。
AT89C51有间歇、掉电两种工作模式。
间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。
这种状态可被任何一个中断所终止或通过硬件复位。
掉电模式是VCC电压低于电源下限,当振荡器停止振动时,CPU停止执行指令。
该芯片内RAM和特殊功能寄存器值保持不变,一直到掉电模式被终止。
只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。
2.2.2单片机的选择
对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位AT89S51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
主要特性如下
●与MCS-51兼容
●4K字节可编程闪烁存储器
●寿命:
1000写/擦循环
●数据保留时间:
10年
●全静态工作:
0Hz-24Hz
●三级程序存储器锁定
●128*8位内部RAM
●32可编程I/O线
●两个16位定时器/计数器
●5个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
图4.1AT89S51单片机引脚图
89S51引脚功能介绍
AT89S51单片机为40引脚双列直插式封装。
其引脚排列和逻辑符号如图4.1所示。
各引脚功能简单介绍如下:
●VCC:
供电电压
●GND:
接地
●P0口:
P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
●P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
●P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
●P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
同时P3口同时为闪烁编程和编程校验接收一些控制信号。
●RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
●ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
●PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
●EA/VPP:
当EA保持低电平时,访问外部ROM;
注意加密方式1时,EA将内部锁定为RESET;
当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
●XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
●XTAL2:
来自反向振荡器的输出。
2.2.3AT89C51系列单片机的功能单元
1.并行I/O接口:
单片机芯片内有一项主要功能就是并行I/O口。
51系列共有4个8位的并行I/O口,分别记作P0、P1、P2、P3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。
实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。
在访问片外扩展存储器时,低八位地址和数据由P0口分时传送,高八位地址由P2口传送。
2.定时器/计数器
定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。
C51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器T0和定时器/计数器T1;
在C51部分产品中,还包含有一个用做看门狗的8位定时器。
定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。
在单片机的定时器T0或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;
在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。
在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。
定时器/计数器内部结构及其原理:
由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。
当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fc=fosc/12。
如果单片机系统采用12MHz晶振,则计数