单片机程序设计

引 言

调速能力强,速度变化平滑是直流电机的显著特点,在很多的控制系统中有极为广泛的应用,但是以往使用模拟器件或电路来完成控制直流电机的,这样做有很多问题例如:控制准确度低,稳定性差,这些问题如果仍然有过去的设计是根本无法解决和消除的,并且控制系统在工业生产上有着举足轻重的地位,技术的改革已是势在必行了。

就在这样的大的环境下,数字化控制渐渐走入了我们的世界,我国的科学水平不断提高,改变传统的直流传动系统将微处理器带入生产设计中来,控制起来更加的便捷,可变性很强,抗干扰能力的增强使得系统更加稳定,延长了系统的使用寿命,系统的调试和维修简便。实现数字化控制直流电机掀起了工业自动化控制的序幕。

说到微处理器就不得不提到单机机,其相比于不同的微处理器来说,其具有有效处理数据和过程控制功能很强的机器,并有与微型计算机相等的功能之外,计数定时器、A/D与D/A转换器等功能的设备都能够整合入单片机中,以及体型微小、运算、控制、数据与程序存储、输入输出接口等功能与优点集于一体,除此以外,它的发展势头着实猛烈,其种类系列已到达数百种,因此用一个成本低廉,附加性高、稳定性好的体积小的单片机便可以取代相对复杂电路所实现的控制能力,传统的电子控制系统被含有单片机的智能自动控制系统取而代之。现在很多人都在学习单片机的使用,不仅因为技术应用范围广泛同时其软件程序编写方面也是方便至极,通过Keil C51这款软件编写程序,调试完成后便可以载入的单片机中。

本次毕业设计的主要研究控制直流电机在速度变化和电机转动方向改变这两个方面,从模拟电路控制到现如今控制像电机这样的设备已经开始使用单片机这样微机控制了,用一个价格低廉,功能丰富,使用方便的芯片就能够完成以往需要相当复杂的模拟电路才能做到的控制系统,并且在工业生产的过程中如果能够简化系统的复杂程度将需要大型复杂电子电路更换为方便操作,检查起来容易找出问题并能很便捷的加以更进的自动化控制系统,这一点是现在各个企业工业生产环节希望实现的目标;智能化这个名词也已经逐渐融入到我们的生活中来了,控制电机的运行模式这样的工程大体上单片机的应用最为普遍,控制能力强是单片机非常特殊的地方,不论是简单的流水灯,还是需要设计某个工厂的控制系统单片机都能完成,所以使用单片机作为本设计的控制系统的核心部件。

我所要完成的就是对控制系统的实现提供软件设计,能够做到控制直流电机旋转速度的改变及电机运行方向变换为基础,在此前提下进行软件程序的编写工作,我选择用C语言进行程序的编写工作,利用其可读性强这一优势;选用由单片机输出PWM

波通过调整脉冲宽度来对电机进行速度控制,改变电机的转动方向则是改变驱动芯片的输入信号,主要利用H桥的作用来完成电机转向的改变。

1 概述

1.1 直流电机发展

相对于其他电机相比直流电机所占的优势相当明显,其广泛应用于机械冶金、运输交通、轻工业纺织、航天航空等多方面领域;智能化简易控制,及调速方式简便这些以前都与直流电机控制系统毫无关系,根本就挂不上钩,就目前而言,需要控制直流电机调速的控制系统不断在增加,有着优越的启动制动性能,调速所在的范围大且平稳变速,并速度变化控制简单,这些特点是直流电机不可磨灭的优势,在性能强可控的电力拖动系统中充当着核心执行器件的位置,决定了直流电机控制系统的开发改进是势在必行的。为了能够满足不断地发展的现代自动化生产的要求,从而改变直流电机内部结构已经不够了,更多的是要从控制方式上下工夫,伴随着当代科学技术和电子电力功率器件更新前景早以势如破竹之势发展的情况之下,数字化概念引入了直流电机控制系统之中。

电动机是生活使用中核心器件,起到将电能变化为机械能这一作用,并其有两点显著的使用点,一点便是能量的转换效率具有很强性,另一点便是调整电机运转速度在工业生产中非常重要的一点。电动机调速技术的研究一直是备受关注的,怎么样才能使生产质量得到提升,如何降低劳动力而提高生产效率以及做到节能是企业在生产环节最为看重的。

说到直流电机的调速问题了,就要先知道直流电机可以通过什么样的方式来调速。大体上有三种方式可以改变直流电机的速度,一种是改变回路当中的总电阻,一种是设置励磁控制阀,最后一种是改变电机电枢两端的电压。对于这三种方法来讲,第一种方法改变总电阻的同时无法避免的将会在电能转换为机械能的过程中损失大量的能量,能量损失惨重,降低了整个电机的工作执行效率,无法达到预期标准,这是改变回路电阻调速的弊端;第二种励磁控制的方法就是改变电机的励磁磁通,所说这种方法能够在能量转化的生产过程中系统所损失的能量会很少,但是当电机转速达到低速的时候磁场将饱和控制转速无法再降低,相同的当电机速度达到高速时电机将会产生换向火花,换向火花是电机中绕组槽内导体电流流向发生变化,从而产生的换向火花,能够控制电流流向发生改变的器件称为换向器,产生换向火花的等级只要在允许的级别便不大会影响电机的正常运转,但高速旋转会增大换向火花的产生,换向火花过大很可能烧毁电机的电刷,受到换向器本身内部结构的影响,也会由于换向火花过大损害换向器,增大励磁线圈的自感,动态响应受到很大影响将会变低,进而使得直流电机无法正常工作了,这是这种电机调速方法的最大劣势;相比之前两种方法,第三种通过改变直流电机电枢的两端电压调速的方法更为理想,在确定了使用控制电

枢两端电压的方法调节直流电机的运行情况的前提之下,电力电子技术相关科研人员,发明了许多种不同的改变电枢两端电压的方法,其中脉冲宽度调制的方法应用最为广泛,也就是通过平常人们所说的PWM波(Pulse Width Modulation)来达到调节速度的能力。

1.2单片机发展现状

从传统模拟电子技术到微电子技术产生有着漫长的过程,起初由于处于中等型规模发展水平的集成电路应用较为广泛,边缘技术发展水平甚是缓慢,材料使用和生产工艺均较为落后,因此单片机发展速度非常缓慢长期处于初级阶段在20世纪70年代时期。就当是的科学技术而言,除了单片机之外只有Z80微处理器能够实现控制功能,虽然当时各部件还只能实现小规模的集成,能实现的功能也略显简单容易,在构成计算系统的时候还要添加上一些必要的外部处理电路才行,但是已经能够在芯片上添加CPU、RAM以及一些略微简单I/O口等设备了,将电力电子技术不断从庞大组成复杂模拟电路引入微控制领域。

若是之前出现的单片机只能完成简单工作,用处不是很大的话,20世纪70年代出现的MCS-48单片机将原有的设想真正的变为了显示。Intel公司76年推出的这款8位单片机完全做到了人们最初对于单片机技术的期望,有着迷你的身材,功能齐备,价格低廉,市场反应得到了很大的欢迎,因此作为首个真正意义上的微型计算机,MCS-48作为单片机发展的奠基石,如同里程碑一般屹立在单片机发展的历史长河之上。

随着MCS-48的问世,发展研制属于自己的单片机这一任务成为当时各大半导体公司的首要任务。随着单片机技术的不断发展,涌出许多很有实力和前景大好的公司如Intel公司、Motorola公司等,其中日本著名电气公司NEC、HITACHI均研制出属于自己需要独特功能的特有单片机。80年代初随着MCS-51、6801和6802等等诸多单片机开发成功标志着一个高性能单片机的时代到来了。

单片机的品种越来越多,并且内部功能也不断的丰富,这是世界各个制造公司良性竞争的成果,就此已有数十个单片机系列,品种到达三百余种,此时一片单片机内集成了多项功能仅此这一片,例如多点中端结构、多样丰富的I/O端口以及之前已经集成好的CPU、RAM又添加了ROM储存空间,并还有公司研制出的单片机自身含有A/D转换器;由于RAM与ROM这两个存储空间的增大,紧接着便是寻址空间的增大已经达到64KB。伴随着单片机自身功能的不断增多,应用范围也随之变广,并且应用更加贴近生活,很多常用的电器也使用单片机控制调整运行模式,这样的向智能化控制发展是单片机技术的崭新阶段。

INTEL公司生产的MCS-51系列的单片机是8位的单片机适用于简单的控制系

统,随后为了应用在复杂控制系统中该公司推出了MCS-96系列的16位单片机,与之前的51系列相比增加数据宽度,储存空间增至RAM232字节、ROM8KB之多,主频率也提升了,及其集成程度有十二万个三极管并增加添置了多路A/D转换通道,并有中断源8个,I/O端口的传输速度达到高速,由此十六位单片机最为显著特点就是实时的处理能力要比八位单片机高出许多。

八十年代结束,单片机技术可以说已经发展得相当成熟了,但人们并不满足于现状继续研发性能更加强大的单片机,在这之中,首先要说一款与以往单片机完全不同的单片机,那就是由Microchip公司研发的PIC系列的单片机,这款单片机无法跟MCS-51单片机做到通用。它以精简的指令俘获了很多用户的心。人们很关注这款单片机是如何使以往单片机复杂众多指令中精简为33条的。因为PIC系列的单片机使用起来更加的方便得到了业界人员的一致好评,从而得到了迅猛发展,地位迅速窜升挤入了单片机这一广大的市场。有了此种先例,更多的新型单片机接踵而来,之后便出现了被关注单片极的人士所熟知的MC68HC系列单片机由摩托罗拉公司生产,以及一向秉承研制具有专用性质的单片机这一理念的几家日本公司同样推出了性能更加好的单片机,例如日本电气股份有限公司(NEC)生产的uCOM87系列中性相当优越的uPC781,这样的单片机与因特尔公司所推出的单片机最大的不同点在于其大都适用于专用系统控制,没有因特尔生产的通用性强的单片机应用范围广泛,但是像刚才所说摩托罗拉推出的MC68HC05系列的单片机也因价格低廉处理速度快速而备受用户欢迎和推崇。

单片机是微型计算机,能够将运算能力、控制能力、数据处理与传送能力等诸多能力集于那小小的一片芯片之中是非常不容易的,因此当美国因特尔公司(INTEL)投放了32位的超级单片机80960时震惊了整个计算机领域,它拥有的寻址能力已经能够在几兆字节以上了,具有高速执行指令的能力,快速运算数据的能力,并能够直接识别高级语言和同时进行多项任务的能力,正因如此,32位单片机所能达到的精度和速度是之前的八位与十六位单片机无法比拟的,就此经常被用在高科技方面如精确制导、军用机器人、智能机器人、航空航天等,因此32位单片机的问世也成为了单片机发展的长河上树立起的一块具有不可磨灭贡献的里程碑。

1.3 单片机控制直流电机技术

直流电机传统电力拖动的控制系统大都有模拟分离器件,由此器件构建的控制系统控制精确程度与系统稳定性低,是由其本身存在不法不免的器件使用量庞大以及温漂、零漂电压等问题所导致的。将单片机作为主要核心控制部件的直流电机调速控制系统的应用越来越显著了,并且将智能化、自动化、数字化等功能成功集于一身的控制系统是未来工业生产模式的趋势。使用单片机控制电机运行便是实现这样理想的控

制系统的有效手段。随着单片机的不断发展,大大的简化了现代工业生产系统的复杂性,一组组一套套庞大复杂的传统电子电路已经开始逐渐被一个个一片片小巧简单操作的芯片所替代。最初人们无法想象这样一个只有手指大甚至只有指甲那么大的东西就能够操控,比自己本身要大数以万倍的重型巨大机器,就算能够实现这样高强度的工作,一定操作起来复杂难懂,实质上跌破了众人的人眼界,单片机控制程序的编写并没有世人想象中那样的困难,汇编语言编写方便机器识别性高,C语言编写可读性强易于理解,这两种语言都可对单片机进行程序控制编写,操作者可以任选其一进行学习,这样明显提高了单片机使用率,也是单片机技术能够广泛应用更多领域的因素之一。将能够实现某种功能的程序编译好后,下载到单片机芯片中,联好所需要的电路器件,上电后启动单片机便能够完成控制功能了。

现如今,现代化技术发展迅猛,逐渐取代了传统手工人力生产,智能化一词也已经深入到老百姓的价值,洗衣机、电视、吸尘器等智能家用电器的问世首先要考虑的问题便是其方便可用性是否好,也就是说如果能够使组成电器的每个部件都能尽可能的小,这样使用起来也能够更加的方便,在有些部件无法减小体积的情况之下,像单片机微控制器的问世,有效地解决了问题,单片机体积小,可控性强,应用范围广,这些显著的特点令人无法忽视,使用其输出的数字信号灵活方便的控制电机运行,这样大大降低了外界对控制系统的干扰,能使执行机构准确无误的工作,由此可见,单片机在电机控制系统中重要的地位已经不容动摇了,并且这种控制系统做到了智能化、数字化及自动化功能,控制能力得到最大限度的发挥,整个系统所占的现实的实际空间同样的到了最大程度的缩减,做到了充分有效合理的利用仅有的空间资源。

用单片机控制直流电机的方法也有很多,其中就目前而言,通过改变直流电机电枢电压的方法最为有效,在此基础之上,研究人员对于如何实现这样有利的方法展开了研究,其中利用单片机输出脉冲宽度调制波,通过波形的宽度频率等条件的改变从而使加在电机两端的电压发生改变,进而控制电机的运行方式和速度的变换。

2 系统总体设计

2.1 设计背景

单片机从产生到目前为止依然形成了其一定固有的特点,成本低廉、体积小、性能可靠稳定、及具有附加值,通过改写软件程序便能够轻松的实现控制对象的功能,已经逐渐成为电子工程师在设计产品的时候最常使用的器件之一。如今仅用一个单片机便可以完成系统的控制功能,取代过去要依靠大型繁琐的电子电路才能实现的系统。经典的电力电子控制系统已经以飞速的趋势被单片机控制系统所替代,并且由于其具有通用,容易上手的特点,对于电子工程师和电子爱好者单片机已经成为不可或缺的设备,对于学习电子方面的当代大学生而言,掌握单片机技术已经成为必备技能之一。

PWM控制技术的水平与电力电子技术发展是密不可分的,由于很多方面的约束PWM控制技术一直没有实现,一直到二十世纪八十年代电力电子技术得到发展,很多全控性器件孕育而生,伴随相关技术水平的提升,PWM技术才得到了真正实现,PWM控制技术的发展与电力电子技术、微机控制技术以及自动化控制技术等相关技术的发展是紧紧相连的,这些技术的不断创新与提升,促使PWM控制技术也得到了意想不到的高速发展。

PWM脉冲宽度调制是靠改变输入直流电机电枢两端电压的电压(即占空比),本次毕业设计就是用此原理在单片机为控制系统核心的基础之上的。

2.2系统设计要求

设计要求要在设计的直流电机控制系统中应用单片机技术进行系统控制,并深刻了解到单片机技术在控制系统中应用特点,并且根据之前所做的准备工作的基础上编写出能够实行直流电机控制的软件程序设计,最终要完成对直流电机速度调节与运行转向改变的控制。有几点问题是要重点注意和研究的,首先要熟悉掌握单片机控制指令程序的编写技术,其次对于每个控制模块进行程序编写,并且要有对编写好的程序进行编译及调试的环节,最后要将调试好的程序与硬件设备进行系统整体调试,要使这个系统最终能够达到控制直流电机的旋转速度调节及运行方向的改变,并且要做到整个系统是一个闭环系统能够正常工作,具有一定的抗干扰能力。

2.3系统总体设计思路

2.3.1 系统框架设计

本系统以单片机为核心,单片机型号选用STC89C52RC芯片,系统组成由键盘

模块、电机驱动模块、LCD1602显示模块。本系统设有独立键盘,以其状态的改变作为输入命令给与单片机,单片机通过对输入命令进行识别,之后按照系统程序编写得功能进行命令的执行,输出PWM,并将PWM不时地有单片机输出随后传送给电机驱动芯片,本系统所选用的驱动芯片为L293,其中含有H桥能够控制电机的运行方向,并根据所接受的PWM波形的占空比的改变来改变电机的旋转速度;并且单片机能够定时的将数据信息传送给液晶显示,使用LCD1602液晶显示器显示用户对电机速度设定的值,并且显示电机当前的旋转速度,系统结构框图如图1所示。

图1 系统结构框图

2.3.2 系统各部件功能设定

本系统是基于单片机的直流电机控制系统,利用PWM对电机进行调速,整个系统设计完成时能够做到控制直流电机升速与降速,及电机的启动与制动,还有能够实现直流电机的运行方向的改变。

主电路中主要是单片机,依靠I/O 端口数据之间的传送、定时/计数器及外部中断控制等功能达到实现改变电机的启动制动、增减速、以及电机旋转方向的更改,利用单片机输出PWM,通过改变PWM波形的占空比,并将PWM传送至驱动芯片实现信号的放大,最终实现对直流电机速度的调节,达到直流电机智能便捷的控制系统。要想对单片机进行控制设计就要靠软件的编写和一些外围的设备,在此之前,首先要对单片机输入输出端口进行总体构思,有了大概设计时,才能进行软件程序控制的编写。

整个主系统的输入部分是由独立式按键组成的,并加入单片机复位电路。通过独立按键控制直流电机的启动制动、升降速及正反转控制,设定有五个按键,分别设有升速、降速各一个按键,一个启动制动键,旋转方向控制按键一个,复位键一个。

系统输出控制主要是单片机、驱动电路与电机和调速部分组成,

单片机主要是完

成数据信息的处理以及输出脉冲宽度可调的PWM,L293电机驱动芯片负责将单片机传送出来的PWM信号进行放大从而能够改变直流电机电枢两端的电压达到调节电机速度的能力,并且芯片内部含有H桥,能够实现对于电机旋转方向改变的控制,PWM输出用一个端口,

系统显示部分的设定是用LCD1602液晶显示器显示用户所设定的直流电机旋转速度以及由测速部件测得数据反馈给单片机,由单片机进行数据的运算处理将处理好的直流电机实际的旋转速度进行实时的显示。

3 PWM脉冲宽度调制技术

3.1 PWM调速原理

脉冲宽度调制可以简称为脉宽调制,或是用英文缩写PWM 来表示。PWM波形普遍是由微控制器件如单片机的端口输出的数字量来表示,并向组成电机驱动的模拟电路进行控制,控制直流电机驱动电源的导通与关断的频率,从而改变直流电机电枢两端的电压的数值进而控制直流电机的旋转速度。PWM技术不仅应用于直流电机调速控制方面,同样适用于其他控制系统,例如:温度控制系统、压力控制系统、测量控制、通信信息采集控制以及输出功率变换控制等诸多领域都有广泛的应用。

脉冲宽度调制解调是是一种新型的控制方式,也就是模糊控制方式,给定一个相对稳定的频率来导通关断电压,并且要根据所需要电压导通与关断的频率即一个周期内导通与关断所出现的次数。实质上就是直流电机电枢两端所加的电压按照一定的规律进行改变,改变PWM的占空比,即改变驱动电路中的平均电压,进而就能发控制直流电机的旋转速度,所以人们总是把脉冲宽度调制技术叫为驱动开关装置。

通过脉冲宽度调制技术控制直流电机,这种方法能够不论直流电机的工作条件环境是什么情况下,都能够做到电压输出电压保持在一定的范围之内,不会有明显的波动。

使用PWM控制直流电机调速要比传统的晶闸管调速系统有很多优势,这种控制技术不需要过多的电力电子器件,整个主电路组成结构相对简单,对于直流电机在运行时磨损消耗较小,直流电机不会由于机体过热导致系统不能正常工作,电流连续性好,调速范围广泛局限性小,系统稳定性好,调速精确度高,这些都是传统调速系统无法匹敌的。

图2 PWM信号的占空比

设定电机电源持续导通的情况之下,直流电机的最大旋转速度为Vmax,则占空比为D=t1如图2所示,则直流电机平均速度为Va=Vmax⨯D,其中Va为电机的平均速度;Vmax为直流电机在全部导通时所产生的最大速度;D=t1是指占空比。脉冲宽度调制占空比如3-1所示

从之前公式可以知道,如果我们更改占空比D=t1,就能够让电机达到不同均值速度Vd,便能够完成调节速度作用。从某种意义上来讲,平均速度Vd与占空比D并不是完全遵循线性关系,但是在一般的应用中,我们可以讲两者之间的关系看似为线性关系。

3.2 PWM调速方法

当使用PWM 进行直流电机调速的时候,最为重要的是确认PWM的占空比,作为重要参数之一占空比的变化至关重要,在输入电源电压不变的条件之下,占空比的选取决定着直流电机电枢两端的电压平均值是多少。对于直流电机来说想要达到调节速度的目的,就要改变其电枢两端的电压平均值唯有通过修改脉冲宽度也就是PWM的占空比,综上所述改变占空比这环节至关重要,以下是通过查找相关资料所得到三种改变占空比的方法,通过这样的分析将从其中选择出适合本系统的PWM调速方法。

第一种方法是改变PWM波的频率,对于频率进行调节,选取一定的脉冲宽度也就是说数字输出的PWM每个周期中高电平所占的时间不变,只改变周期中低电平时间长度,进而改变占空比,周期时间变长占空比变小,周期越短则占空比变大,这样PWM的频率也会随之改变。

第二种方式便是调频调宽的方法,这种方法就是保持低电平即电枢电压关断时间保持不变,通过调节电枢两端电压接通的时间,从而改变PWN的周期时间,进而改变输出PWM的频率,要说明的是PWM脉冲宽度是指电枢电压导通的时间也就是波形中高电平所占得时间。

第三种方式便是确定PWM的周期调节脉冲宽度,也就是说电枢两端的电压导通与关断的时间总和不变(即高电平和低电平所占的时间总和不变),改变脉冲宽度(即输出脉冲高电平或低电平所占时间),就是二者在周期内所占比例按需求进行变更。

前两种方法都是通过改变PWM的脉冲频率(即周期时间)的方式来调整脉冲占空比的,但是这样做的最大劣势就调节脉冲频率受到限制,系统存在着固有的频率,但两者频率接近相等时系统会变得很不稳定,引起波形的振荡,因此本次系统设计采用第三种方法来进行直流电机的调速,通过改变PWM的脉冲宽度进而实现对电机电枢两端电压的改变。利用单片机的定时/计数器和延时中断功能做到对输出的PWM脉冲宽度和频率进行设定。

3.3 PWM输出的实现方法

输出PWM的方式大体上有两种,一种是使用PWM专用的芯片或是一些硬件设备的方式,另一种方式便是使用软件程序控制微处理器输出PWM。

选用硬件的方法可以选择像NE555或是SG3525系列相同的芯片,将这种芯片作为PWM调速系统的核心控制器件,进而实现输出控制信号 ,虽然种控制方式所用的芯片计时可以达到很高的水平,但是输出的信号需要放大电路将信号本身的功率进行放大,之后才能控制直流电机的运行模式,这样所需要的控制电路将会异常的庞大复杂,并且调节使用相对复杂没有很好的自动控制能力,不能实现智能化控制的要求,在实际的企业生产过程中使用范围受到很大的局限性,实用性差。

选择软件编写程序来实现脉冲宽度PWM的输出相对简便的,只要了解明白PWM调速的基本原理,懂得PWM是如何实现对直流电机进行速度的调节的,现在有很多微处理器,单片机是其中使用与学习起来都非常简单的,也容易操作,本身成本低廉,体积小,因此使用单片机输出系统所需的PWM波形是最为理想的设计方案。

对于使用单片机输出PWM的软件编写也有两种方案:

方案一:采用单片机中的定时器通过计时功能来控制输出PWM的脉冲宽度,使用这种方式对于控制PWM的脉冲宽度有很小的误差,误差范围可达到几微秒,已经非常的小了。

方案二:不使用定时功能,而是使用中断延时功能,这种方式不用占用单片机内部的定时器资源,但是加入中断后的系统的误差将会升高,不过是在允许范围之内的。

根据所查找的资料,并且结合了自身的情况,系统选用的是STC89C52RC单片机内置有3个定时/计数器,因此不用担心定时器不够用的问题,所用软件程序控制PWM输出采用的是方案一。

4 系统软件的设计

4.1 软件设计思路

我先通过将整个系统的分成模块结构,明确软件所能控制的模块有哪些。我将软件所需要设计的整个程序分为几个模块:主程序模块、键盘子程序模块、显示LCD子程序模块、及中断子程序模块等几个部分,分别对每一部分进行程序构架设想及程序的编写,最后进行整体的程序的调试。其中对于LCD显示部分及PWM输出部分的编写最为重要关键。

在前期工作中,我已经明确了这个系统组成结构,后面便是要对于软件程序进行编写与调试,首先我做了整体的构想编写出主程序,画出整体程序的流程图,接下来就是要对系统的每一块需要软件编写的进行设计,也是先画出大致的流程图,接着便是根据所画的流程图进行子程序的编写,每段程序编写完成后都要进行程序的总体调试,无误之后便要结合硬件进行最终的调试。

4.2 软件设计方案

之前我已经确定了整个控制系统的组成结构和单片机的型号选择,现在我需要对单片机进行控制的选择,这个选择是必须且重要的,设计的最终目的是要实现对直流电机调速转向改变的功能,为了实现这项功能我需要选定适合我的控制方案,选择什么样的控制形式要不仅根据硬件的制作实现程度,并要根据我的软件程序编写水平和整个程序运行及控制便捷程度来选择。由此我选择了两种相对实行起来简便好操作的方案,并且对这两种方案进行更加细致的比较,从中选取适合的软件设计方法。

有两种单片机控制形式,一种是有一个STC89C52RC单片机和一个功能设定为PID控制器的单片机组成控制电路,其中一个单片机完成控制功能作为主控制芯片,用来做到独立按键控制,测速反馈、显示以及提供速度设定测量数值给PID控制器等功能,另一个单片机专门实现PID算法与输出PWM脉冲信号的功能。另一种只用一个单片机作为控制核心器件,所有的控制功能都由单片机完成,例如系统对于测速元件的信息采集,控制运算以及PWM输出信号的设置与调节。

第一种控制方式的系统在速度测量上精度会比较高,移植性比较的好,能够提高扩展系统整体的性能,但是对于硬件的需求量就会相对增长,对于程序编写的难度也会加大很多;第二种控制方法对于单片机内部信息处理资源会相对紧张,不能 通用于其他控制程序,但是相对于第一种的控制方式,第二种的控制方式系统控制电路的硬件组成结构简单很多,程序的控制处理更加容易实现,因此通过比较,选择了方案一。

4.3 程序设计

4.3.1 主程序设计

在进行C语言编程之前首先要明确函数在其中意义,函数就像是水分子一样是形成水最基本基础的单元,在程序中函数就是水中的水分子组成能够实现某种功能作用的程序。最为重要的是主函数的编写,主函数的编写由两部分组成,一部分是由直接写出的语句,另一部分便是一些有特定作用功能的子函数。

在了解了主程序的功能及其编写规则后,我先构想了整个系统的流程图如图3所示。

图3 主程序流程图

系统主程序设计的过程是有一定的难度的,需要不断地修改,首先确定是要先对单片机进行初始化,其中包含有对三个定时/计数器的初始化以及对LCD1602液晶显示的初始化设置,接下来就是对于用户设定电机转速参数设定的跟随函数,为了能够实时的检测到用户设定参数的变化和电机旋转速度,还有便是对于显示功能和用户与程序接口的设置,这些功能都用子程序编写,并在主程序中进行调用使用的。

4.3.2 初始化子程序设计

主程序运行的过程中,要先对整个系统进行初始化工作,包括分别对单片机内部

定时/计数器与LCD显示模块进行初始化工作。首先要将EA中断总允许开关置位1,并打开每个定时器的中断允许开关ET0、ET1、ET2。

由于本直流电机控制系统选用的是STC89C52RC型号的单片机,单片机内部有三个定时/计数器,就要分别对其进行初始化的设置,因为STC89C52RC单片机有定时器2这和普通的51系统的单片机不同,其设置也不同,因此先对其进行初始化设置,定时/计数器2有属于自己的控制寄存器和工作方式寄存器,分别用T2CON和T2MOD来表示,这个定时器同样有三种工作状态分别是16位的捕获、16位的自动重装载以及波特率发生器,这三种工作状态通过控制特殊功能寄存器位选择来确定的,其各个位所实现功能的作用如图4所示。

图4 T2CON功能说明

通过查找功能说明对其进行模式的设定,将00H赋值给T2CON,选择自动重装载工作模式就是T2作为定时计数器工作,通过软件程序编写能够控制T2的递增递减,并设定定时初值为3CB0H,定时器TF2为0时,自动重装载是T2定时器自动加到0FFFFH的时候将会溢出,此时并会使TF2位进行置位,随后将16位的重新装载数值载入T2定时器中,重新装载数值的设定是通过软件程序编写设置的,是由RCAP2L与RCAP2H组成16位的数值。当赋值给TR2为1的时候T2定时器便开始计时了。

对于T2定时器的模式寄存器的设定也是要查阅功能说明来设定,T2定时器模式寄存器的功能说明如下图5所示。

图5 T2MOD功能说明

T2定时器计数的方向通过T2MOD中的递减计数使能位DCEN来决定的,当递减计数使能位是1的时候,T2定时器需要靠外界输入信号来决定定时器是递增模式还是递减模式,如果递减计数使能位设置为0时,则T2定时器将默认为不断进行加数运算。

4.3.3 按键子程序设计

键盘模块的选定是从两个方案中选择出来的。

第一种方案是系统控制输入采用的是行列式键盘,这种键盘的工作过程是由三步完成的,键盘输入的实时监控,行列式中具体按键号码的确认以及执行按键功能。

第二种方案便是使用独立式键盘,按键输入有效值一般为低电平,所用按键要一端连接单片机,另一端要求全部接地。所有按键状态的改变,单片机从I/O端口直接

读取。

两种方案进行比对得到以下结论:

行列式键盘虽然自带一定的抗干扰行,能使系统运行更加稳定,但是所占单片机外部端口众多,需要大量的I/O端口线才能实现控制,浪费了太多的资源,第二种方案与第一种相比较,后者简单,控制起来更加简便,本系统只需要五个独立按键便能实现控制,因此选用方案二来进行按键程序设计,按键子程序流程图如图6所示。

图6 按键子程序流程图 对于按键设计来说去抖动是不能缺少的设置,单片机工作时间是属于微秒级别的,如果不正确的设定按键,发生执行错误命令情况是极大的,避免按键产生抖动就是迫使单片机对按键发生一次改变只能做一次处理按键去抖动的方式有两种,一种是利用硬件对按键进行去抖动,另一种是使用软件程序编写来去除按键的抖动。由于硬件方式去抖动是要添加电子元器件的,为了使电路组成结构简单,使用了软件去抖动的方法。

在真正执行按键指令之前,通过编写一段延时程序,用来确认按键是否真正按下,经过延时时间后,如果按键仍然是按下就执行该按键要执行的功能,这也是为了保证系统能够正常运行,提高了系统的准确度和抗干扰能力。

4.3.4 显示子程序设计

本系统采用的是LCD1602液晶显示器来显示直流电机的实际运行速度以及用户设定的速度,为了能够简单明了的显示出系统所要求的显示出的信息,便采用了这款液晶显示器,能够显示数值以及英文字母,也同时考虑到硬件空间资源的问题,觉得没用必要采用1602的液晶显示器就足够了,由此画出显示程序流程图如图7所示。

图7 显示程序流程图

在系统启动最开始电机还没有启动时,也要先进行显示器的初始化显示如图8所示。

图8 显示器的初始化显示

由用户给定的速度要显示在显示器上,为了能够与电机实际速度作为比对,并且通过PWM_PID的跟随用户给定参数进行处理后的数值显示出来,让用户能够实时的知道电机的运行状况。

4.3.5 中断子程序设计

通过定时器T1产生中断,输出3.5千赫兹的PWM脉冲,通过T2定时器进行定时能力,中断程序如图9所示。

N图9 中断程序流程图

5 系统调试及仿真

5.1 系统软件程序调试

采用模块化设计方法,在Keil μVersion4软件开发平台的环境下,完成软件程序的编写并进行了调试。软件Keil uVersion4如图10所示。

图10 Keil uVersion4

Keil uVersion4 是由Keil Software公司创建的一个单片机控制程序编写以及编译等功能的软件。这款软件能实现三种功能,程序创作、调试及仿真,编写程序所使用的语言也很多样,并且软件使用界面简单明了,很容易上手使用。对于英文不好的使用者来说,它还能够进行汉化,使得用户能够在熟悉的语言环境下进行工作和学习,这个软件的安装也十分方便。KEIL 使用的单片机芯片型号有很多种,来自各个公司的都有,另外即便是没有的也可用其他同类型芯片代替,使用起来非常的方便。本系统软件设计中使用此软件进行程序设计及编译并使用C语言来编写。

调试过程如下:

1、

启动Keil μVersion4,并且选择芯片建立一个新的工程用以程序编写,如图11,12所示。

图11 建立新工程

图12 选定单片机使用芯片型号

2、

创建新的程序编写文件,如图13所示。

图13新建程序编写文件

3、

建立新的文件后便进行程序的编写工作,如图14所示。

图14 文件编译

4、

对程序进行保存,并且要保存为.c格式,如图15所示。

图15 编写程序并进行保存

5、

往项目组中填加刚刚保存好的文件,如图16所示。

图16添加文件到项目组中

6、进行程序的调试与修改,如图17、图18所示。

图17 程序进行编译及编译结果

图18 程序编译无误

5.2 调试中遇到的问题及解决

在调试过程中,我首先遇到的问题便是调试软件的使用问题,在学校学习单片机课程的实训的时候,有使用过这个软件,但是因为经过了很长的时间没有使用,但我在此次设计中使用这个软件的时候,基本上已经忘记了如何使用,因此学会使用调试软件对自己所编写的程序进行调试是很重要的步骤。

其次在程序进行总体调试的时候,遇到了定时器T2的编写和头文件名有误的问题。通过查找资料和询问,最终明白了问题所在,并顺利的解决了问题。

在完成软件程序调试之后,进行了与硬件的调试工作,虽然刚开始有些问题,显示不是很成功,但是经过了与进行硬件设计的同学的不断修改调试,最终实现了系统的要求,直流电机能够正在运行,并能通过外设的独立键盘对电机进行速度的设定、启动制动控制以及电机旋转方向的控制。

下面展示的是电机运行时显示器的实时显示情况如图19所示。

图19 电机运行时候的实时显示状况

第一行显示的是当前直流电机实际的旋转速度,后面并设有单位,第二行显示的是用户所设定的电机的旋转速度,后面的“Start”表示的是用户按下了电机启动按键,直流电机在运行中,当电机被设定为停止运行的时候最后的“Start”将变为“Stop”如图20所示。

图20 电机停止运行时显示情况

6 系统设计总结

STC89C52RC单片机使用用途很多,并且还能做很多外部扩展工作,在这次系统设计中,我从刚开始不知道怎样下手,从哪里开始怎样选择,到后来渐渐地进入状态,知道该做什么。同样了解到使用程序设定单片机控制模式,并且输出脉冲宽度不同的PWM使用它改变直流电机的运行状态。

在整个系统的设计中我需要自己先查阅与课题有关的知识和技术,在经过知识的认知、理解到运用这个过程让我收获颇多。开始感觉这个课设很难,原因原因在于自己当初在学习单片机技术的时候没有学透,存在着很多疑点没有解决,就囫囵吞枣的学下去了,还有在学习电机与电力拖动控制课程的时候也存在着疑问没有解决。比如PWM脉冲宽度控制电机转速的系统在电力拖动这门课程中已经有所涉及了,当时只想能够考试通过就好,没有做到真正的学以致用。通过这次的毕业设计,我相当于将与课程相关的知识从新学过,学习的动力是要完成此次设计,过程中对于单片机技术有了新的认识和更加深刻的感受。能自己解决问题是最关键的。

结 论

本文所设计的直流电机控制系统是以STC89C52RC型号的单片机为核心控制器,通过单片机输出的PWM对直流电机进行调速的,并且通过单片机输出不同的信号,使得直流电机实现正反转的控制。此种方法原理较为简单就通过脉冲宽度调制改变接在电枢两端电压所导通与断开的占空比,也就是时间之比,要使电机速度升高需要变换电枢电压导通的时间,要使电机速度减小便改变电枢电压断开的时间,换句话就是通过改变PWM的占空比来实现对电机的速度调节,改变电枢电压两端的导通与断开的时间有一定的规律,这样整个电机速度便能够在一个稳定的数值之间运行。利用软件程序控制PWM的输出频率和脉冲宽度,这种办法具有较大的灵活性并且硬件资源利用率高成本低廉。

通过本次设计,我在完成毕业设计的同时也掌握了许多技能,对于单片机技术的了解也更加深入了,再到懂得如何使用,这个学习的过程对我帮助颇多,从中我学会了如何去思考问题和解决问题,如何通过论证的方法去选择合适可行的设计方案。

致 谢

从进行毕业论文的选题到现在完成毕业设计论文,我一直都在指导老师的悉心指导下进行毕业设计以及论文的完成,在此我衷心感谢指导老师在整个毕业设计中给予我的指导与帮助,对于我的设计前期迷茫时给我指点和提出了很多宝贵的意见,在最后论文进行撰写和修改的过程中指导老师也是在百忙之中抽出时间为我提供极大的帮助,从而使我的毕业设计能够顺利的完成要求的工作。

便随着毕业设计的接近尾声,我的大学四年生活也要结束了。我非常感谢在这四年中老师们对我们的学习和工作严格要求,并且细心教导我们鼓励我们积极进取,使我在学习上取得了较为优异的成绩,并且使我各方面都有了明显的提高,这一切都要归功于老师们的教导,四年的教导会使我在今后的学习、生活以及工作上都受益匪浅,在此,我对老师的培养与帮助表示深切的感谢!

同样我也非常感谢我的同学们,在同他们一起学习、生活和工作中,他们给予我的帮助和意见,促进了我的学习与进步,我对他们致予由衷的感谢,也祝愿他们在今后的工作中取得更好的成绩。

最后,向所有帮助过我,鼓励过我的人表达我最诚挚的谢意。

参考文献

[1] 王侠.单片机 无刷直流电动机控制系统的研究 [D].西妥:西妥科技大学图书馆,2007:3-9.

[2]陈伯时.电力拖动自动控制系统[M].3版.北京:机械工业出版社,2003.

[3] 张桂香,姚存治.基于ATmegal128单片机的智能供电测控系统设计[J].电力自动化设备,2009,29(8):136-139

[4]Saffet Ayasun Gültekin Karbeyaz. DC mrotor speed control methods using MARKAB/Simulink and their integration into undergraduate electric machinery courses

[C].Computer Applicartons in Engineering Education,2007:347-354

[5]Ayütel Gelen, Saffet Ayasun.Reslization of Power Electronic Convertor Based DC Motor Speed Control Methods Using MATLAB/Simulink[C].Int J Engng Ed.vol.25,No.1,pp.33-41,2009.

[6]周冠军,毕祥丽.LMD18200T的直流伺服电动机驱动器的设计[J].电子工业专业设备,2006,35(11):71-74.

[7] 唐介.电机与拖动育[J].北京:高等教育出版社,2007.

[8] 张迎新.单片机初级教程:单片机基础[M].北京:北京航空航天大学出版社,2006.

[9] 汪玉成.直流电机PWM调速系统设计[J].商场现代化,2007,(52):389.

[10]马忠梅.单片机的C语言应用程序设计[M].北京:北京航天航空大学出版社,2007: 9-10.

[11] 周兴华.手把手教你学单片机C程序设计[M].北京:北京航天航空大学出版社,2007.

引 言

调速能力强,速度变化平滑是直流电机的显著特点,在很多的控制系统中有极为广泛的应用,但是以往使用模拟器件或电路来完成控制直流电机的,这样做有很多问题例如:控制准确度低,稳定性差,这些问题如果仍然有过去的设计是根本无法解决和消除的,并且控制系统在工业生产上有着举足轻重的地位,技术的改革已是势在必行了。

就在这样的大的环境下,数字化控制渐渐走入了我们的世界,我国的科学水平不断提高,改变传统的直流传动系统将微处理器带入生产设计中来,控制起来更加的便捷,可变性很强,抗干扰能力的增强使得系统更加稳定,延长了系统的使用寿命,系统的调试和维修简便。实现数字化控制直流电机掀起了工业自动化控制的序幕。

说到微处理器就不得不提到单机机,其相比于不同的微处理器来说,其具有有效处理数据和过程控制功能很强的机器,并有与微型计算机相等的功能之外,计数定时器、A/D与D/A转换器等功能的设备都能够整合入单片机中,以及体型微小、运算、控制、数据与程序存储、输入输出接口等功能与优点集于一体,除此以外,它的发展势头着实猛烈,其种类系列已到达数百种,因此用一个成本低廉,附加性高、稳定性好的体积小的单片机便可以取代相对复杂电路所实现的控制能力,传统的电子控制系统被含有单片机的智能自动控制系统取而代之。现在很多人都在学习单片机的使用,不仅因为技术应用范围广泛同时其软件程序编写方面也是方便至极,通过Keil C51这款软件编写程序,调试完成后便可以载入的单片机中。

本次毕业设计的主要研究控制直流电机在速度变化和电机转动方向改变这两个方面,从模拟电路控制到现如今控制像电机这样的设备已经开始使用单片机这样微机控制了,用一个价格低廉,功能丰富,使用方便的芯片就能够完成以往需要相当复杂的模拟电路才能做到的控制系统,并且在工业生产的过程中如果能够简化系统的复杂程度将需要大型复杂电子电路更换为方便操作,检查起来容易找出问题并能很便捷的加以更进的自动化控制系统,这一点是现在各个企业工业生产环节希望实现的目标;智能化这个名词也已经逐渐融入到我们的生活中来了,控制电机的运行模式这样的工程大体上单片机的应用最为普遍,控制能力强是单片机非常特殊的地方,不论是简单的流水灯,还是需要设计某个工厂的控制系统单片机都能完成,所以使用单片机作为本设计的控制系统的核心部件。

我所要完成的就是对控制系统的实现提供软件设计,能够做到控制直流电机旋转速度的改变及电机运行方向变换为基础,在此前提下进行软件程序的编写工作,我选择用C语言进行程序的编写工作,利用其可读性强这一优势;选用由单片机输出PWM

波通过调整脉冲宽度来对电机进行速度控制,改变电机的转动方向则是改变驱动芯片的输入信号,主要利用H桥的作用来完成电机转向的改变。

1 概述

1.1 直流电机发展

相对于其他电机相比直流电机所占的优势相当明显,其广泛应用于机械冶金、运输交通、轻工业纺织、航天航空等多方面领域;智能化简易控制,及调速方式简便这些以前都与直流电机控制系统毫无关系,根本就挂不上钩,就目前而言,需要控制直流电机调速的控制系统不断在增加,有着优越的启动制动性能,调速所在的范围大且平稳变速,并速度变化控制简单,这些特点是直流电机不可磨灭的优势,在性能强可控的电力拖动系统中充当着核心执行器件的位置,决定了直流电机控制系统的开发改进是势在必行的。为了能够满足不断地发展的现代自动化生产的要求,从而改变直流电机内部结构已经不够了,更多的是要从控制方式上下工夫,伴随着当代科学技术和电子电力功率器件更新前景早以势如破竹之势发展的情况之下,数字化概念引入了直流电机控制系统之中。

电动机是生活使用中核心器件,起到将电能变化为机械能这一作用,并其有两点显著的使用点,一点便是能量的转换效率具有很强性,另一点便是调整电机运转速度在工业生产中非常重要的一点。电动机调速技术的研究一直是备受关注的,怎么样才能使生产质量得到提升,如何降低劳动力而提高生产效率以及做到节能是企业在生产环节最为看重的。

说到直流电机的调速问题了,就要先知道直流电机可以通过什么样的方式来调速。大体上有三种方式可以改变直流电机的速度,一种是改变回路当中的总电阻,一种是设置励磁控制阀,最后一种是改变电机电枢两端的电压。对于这三种方法来讲,第一种方法改变总电阻的同时无法避免的将会在电能转换为机械能的过程中损失大量的能量,能量损失惨重,降低了整个电机的工作执行效率,无法达到预期标准,这是改变回路电阻调速的弊端;第二种励磁控制的方法就是改变电机的励磁磁通,所说这种方法能够在能量转化的生产过程中系统所损失的能量会很少,但是当电机转速达到低速的时候磁场将饱和控制转速无法再降低,相同的当电机速度达到高速时电机将会产生换向火花,换向火花是电机中绕组槽内导体电流流向发生变化,从而产生的换向火花,能够控制电流流向发生改变的器件称为换向器,产生换向火花的等级只要在允许的级别便不大会影响电机的正常运转,但高速旋转会增大换向火花的产生,换向火花过大很可能烧毁电机的电刷,受到换向器本身内部结构的影响,也会由于换向火花过大损害换向器,增大励磁线圈的自感,动态响应受到很大影响将会变低,进而使得直流电机无法正常工作了,这是这种电机调速方法的最大劣势;相比之前两种方法,第三种通过改变直流电机电枢的两端电压调速的方法更为理想,在确定了使用控制电

枢两端电压的方法调节直流电机的运行情况的前提之下,电力电子技术相关科研人员,发明了许多种不同的改变电枢两端电压的方法,其中脉冲宽度调制的方法应用最为广泛,也就是通过平常人们所说的PWM波(Pulse Width Modulation)来达到调节速度的能力。

1.2单片机发展现状

从传统模拟电子技术到微电子技术产生有着漫长的过程,起初由于处于中等型规模发展水平的集成电路应用较为广泛,边缘技术发展水平甚是缓慢,材料使用和生产工艺均较为落后,因此单片机发展速度非常缓慢长期处于初级阶段在20世纪70年代时期。就当是的科学技术而言,除了单片机之外只有Z80微处理器能够实现控制功能,虽然当时各部件还只能实现小规模的集成,能实现的功能也略显简单容易,在构成计算系统的时候还要添加上一些必要的外部处理电路才行,但是已经能够在芯片上添加CPU、RAM以及一些略微简单I/O口等设备了,将电力电子技术不断从庞大组成复杂模拟电路引入微控制领域。

若是之前出现的单片机只能完成简单工作,用处不是很大的话,20世纪70年代出现的MCS-48单片机将原有的设想真正的变为了显示。Intel公司76年推出的这款8位单片机完全做到了人们最初对于单片机技术的期望,有着迷你的身材,功能齐备,价格低廉,市场反应得到了很大的欢迎,因此作为首个真正意义上的微型计算机,MCS-48作为单片机发展的奠基石,如同里程碑一般屹立在单片机发展的历史长河之上。

随着MCS-48的问世,发展研制属于自己的单片机这一任务成为当时各大半导体公司的首要任务。随着单片机技术的不断发展,涌出许多很有实力和前景大好的公司如Intel公司、Motorola公司等,其中日本著名电气公司NEC、HITACHI均研制出属于自己需要独特功能的特有单片机。80年代初随着MCS-51、6801和6802等等诸多单片机开发成功标志着一个高性能单片机的时代到来了。

单片机的品种越来越多,并且内部功能也不断的丰富,这是世界各个制造公司良性竞争的成果,就此已有数十个单片机系列,品种到达三百余种,此时一片单片机内集成了多项功能仅此这一片,例如多点中端结构、多样丰富的I/O端口以及之前已经集成好的CPU、RAM又添加了ROM储存空间,并还有公司研制出的单片机自身含有A/D转换器;由于RAM与ROM这两个存储空间的增大,紧接着便是寻址空间的增大已经达到64KB。伴随着单片机自身功能的不断增多,应用范围也随之变广,并且应用更加贴近生活,很多常用的电器也使用单片机控制调整运行模式,这样的向智能化控制发展是单片机技术的崭新阶段。

INTEL公司生产的MCS-51系列的单片机是8位的单片机适用于简单的控制系

统,随后为了应用在复杂控制系统中该公司推出了MCS-96系列的16位单片机,与之前的51系列相比增加数据宽度,储存空间增至RAM232字节、ROM8KB之多,主频率也提升了,及其集成程度有十二万个三极管并增加添置了多路A/D转换通道,并有中断源8个,I/O端口的传输速度达到高速,由此十六位单片机最为显著特点就是实时的处理能力要比八位单片机高出许多。

八十年代结束,单片机技术可以说已经发展得相当成熟了,但人们并不满足于现状继续研发性能更加强大的单片机,在这之中,首先要说一款与以往单片机完全不同的单片机,那就是由Microchip公司研发的PIC系列的单片机,这款单片机无法跟MCS-51单片机做到通用。它以精简的指令俘获了很多用户的心。人们很关注这款单片机是如何使以往单片机复杂众多指令中精简为33条的。因为PIC系列的单片机使用起来更加的方便得到了业界人员的一致好评,从而得到了迅猛发展,地位迅速窜升挤入了单片机这一广大的市场。有了此种先例,更多的新型单片机接踵而来,之后便出现了被关注单片极的人士所熟知的MC68HC系列单片机由摩托罗拉公司生产,以及一向秉承研制具有专用性质的单片机这一理念的几家日本公司同样推出了性能更加好的单片机,例如日本电气股份有限公司(NEC)生产的uCOM87系列中性相当优越的uPC781,这样的单片机与因特尔公司所推出的单片机最大的不同点在于其大都适用于专用系统控制,没有因特尔生产的通用性强的单片机应用范围广泛,但是像刚才所说摩托罗拉推出的MC68HC05系列的单片机也因价格低廉处理速度快速而备受用户欢迎和推崇。

单片机是微型计算机,能够将运算能力、控制能力、数据处理与传送能力等诸多能力集于那小小的一片芯片之中是非常不容易的,因此当美国因特尔公司(INTEL)投放了32位的超级单片机80960时震惊了整个计算机领域,它拥有的寻址能力已经能够在几兆字节以上了,具有高速执行指令的能力,快速运算数据的能力,并能够直接识别高级语言和同时进行多项任务的能力,正因如此,32位单片机所能达到的精度和速度是之前的八位与十六位单片机无法比拟的,就此经常被用在高科技方面如精确制导、军用机器人、智能机器人、航空航天等,因此32位单片机的问世也成为了单片机发展的长河上树立起的一块具有不可磨灭贡献的里程碑。

1.3 单片机控制直流电机技术

直流电机传统电力拖动的控制系统大都有模拟分离器件,由此器件构建的控制系统控制精确程度与系统稳定性低,是由其本身存在不法不免的器件使用量庞大以及温漂、零漂电压等问题所导致的。将单片机作为主要核心控制部件的直流电机调速控制系统的应用越来越显著了,并且将智能化、自动化、数字化等功能成功集于一身的控制系统是未来工业生产模式的趋势。使用单片机控制电机运行便是实现这样理想的控

制系统的有效手段。随着单片机的不断发展,大大的简化了现代工业生产系统的复杂性,一组组一套套庞大复杂的传统电子电路已经开始逐渐被一个个一片片小巧简单操作的芯片所替代。最初人们无法想象这样一个只有手指大甚至只有指甲那么大的东西就能够操控,比自己本身要大数以万倍的重型巨大机器,就算能够实现这样高强度的工作,一定操作起来复杂难懂,实质上跌破了众人的人眼界,单片机控制程序的编写并没有世人想象中那样的困难,汇编语言编写方便机器识别性高,C语言编写可读性强易于理解,这两种语言都可对单片机进行程序控制编写,操作者可以任选其一进行学习,这样明显提高了单片机使用率,也是单片机技术能够广泛应用更多领域的因素之一。将能够实现某种功能的程序编译好后,下载到单片机芯片中,联好所需要的电路器件,上电后启动单片机便能够完成控制功能了。

现如今,现代化技术发展迅猛,逐渐取代了传统手工人力生产,智能化一词也已经深入到老百姓的价值,洗衣机、电视、吸尘器等智能家用电器的问世首先要考虑的问题便是其方便可用性是否好,也就是说如果能够使组成电器的每个部件都能尽可能的小,这样使用起来也能够更加的方便,在有些部件无法减小体积的情况之下,像单片机微控制器的问世,有效地解决了问题,单片机体积小,可控性强,应用范围广,这些显著的特点令人无法忽视,使用其输出的数字信号灵活方便的控制电机运行,这样大大降低了外界对控制系统的干扰,能使执行机构准确无误的工作,由此可见,单片机在电机控制系统中重要的地位已经不容动摇了,并且这种控制系统做到了智能化、数字化及自动化功能,控制能力得到最大限度的发挥,整个系统所占的现实的实际空间同样的到了最大程度的缩减,做到了充分有效合理的利用仅有的空间资源。

用单片机控制直流电机的方法也有很多,其中就目前而言,通过改变直流电机电枢电压的方法最为有效,在此基础之上,研究人员对于如何实现这样有利的方法展开了研究,其中利用单片机输出脉冲宽度调制波,通过波形的宽度频率等条件的改变从而使加在电机两端的电压发生改变,进而控制电机的运行方式和速度的变换。

2 系统总体设计

2.1 设计背景

单片机从产生到目前为止依然形成了其一定固有的特点,成本低廉、体积小、性能可靠稳定、及具有附加值,通过改写软件程序便能够轻松的实现控制对象的功能,已经逐渐成为电子工程师在设计产品的时候最常使用的器件之一。如今仅用一个单片机便可以完成系统的控制功能,取代过去要依靠大型繁琐的电子电路才能实现的系统。经典的电力电子控制系统已经以飞速的趋势被单片机控制系统所替代,并且由于其具有通用,容易上手的特点,对于电子工程师和电子爱好者单片机已经成为不可或缺的设备,对于学习电子方面的当代大学生而言,掌握单片机技术已经成为必备技能之一。

PWM控制技术的水平与电力电子技术发展是密不可分的,由于很多方面的约束PWM控制技术一直没有实现,一直到二十世纪八十年代电力电子技术得到发展,很多全控性器件孕育而生,伴随相关技术水平的提升,PWM技术才得到了真正实现,PWM控制技术的发展与电力电子技术、微机控制技术以及自动化控制技术等相关技术的发展是紧紧相连的,这些技术的不断创新与提升,促使PWM控制技术也得到了意想不到的高速发展。

PWM脉冲宽度调制是靠改变输入直流电机电枢两端电压的电压(即占空比),本次毕业设计就是用此原理在单片机为控制系统核心的基础之上的。

2.2系统设计要求

设计要求要在设计的直流电机控制系统中应用单片机技术进行系统控制,并深刻了解到单片机技术在控制系统中应用特点,并且根据之前所做的准备工作的基础上编写出能够实行直流电机控制的软件程序设计,最终要完成对直流电机速度调节与运行转向改变的控制。有几点问题是要重点注意和研究的,首先要熟悉掌握单片机控制指令程序的编写技术,其次对于每个控制模块进行程序编写,并且要有对编写好的程序进行编译及调试的环节,最后要将调试好的程序与硬件设备进行系统整体调试,要使这个系统最终能够达到控制直流电机的旋转速度调节及运行方向的改变,并且要做到整个系统是一个闭环系统能够正常工作,具有一定的抗干扰能力。

2.3系统总体设计思路

2.3.1 系统框架设计

本系统以单片机为核心,单片机型号选用STC89C52RC芯片,系统组成由键盘

模块、电机驱动模块、LCD1602显示模块。本系统设有独立键盘,以其状态的改变作为输入命令给与单片机,单片机通过对输入命令进行识别,之后按照系统程序编写得功能进行命令的执行,输出PWM,并将PWM不时地有单片机输出随后传送给电机驱动芯片,本系统所选用的驱动芯片为L293,其中含有H桥能够控制电机的运行方向,并根据所接受的PWM波形的占空比的改变来改变电机的旋转速度;并且单片机能够定时的将数据信息传送给液晶显示,使用LCD1602液晶显示器显示用户对电机速度设定的值,并且显示电机当前的旋转速度,系统结构框图如图1所示。

图1 系统结构框图

2.3.2 系统各部件功能设定

本系统是基于单片机的直流电机控制系统,利用PWM对电机进行调速,整个系统设计完成时能够做到控制直流电机升速与降速,及电机的启动与制动,还有能够实现直流电机的运行方向的改变。

主电路中主要是单片机,依靠I/O 端口数据之间的传送、定时/计数器及外部中断控制等功能达到实现改变电机的启动制动、增减速、以及电机旋转方向的更改,利用单片机输出PWM,通过改变PWM波形的占空比,并将PWM传送至驱动芯片实现信号的放大,最终实现对直流电机速度的调节,达到直流电机智能便捷的控制系统。要想对单片机进行控制设计就要靠软件的编写和一些外围的设备,在此之前,首先要对单片机输入输出端口进行总体构思,有了大概设计时,才能进行软件程序控制的编写。

整个主系统的输入部分是由独立式按键组成的,并加入单片机复位电路。通过独立按键控制直流电机的启动制动、升降速及正反转控制,设定有五个按键,分别设有升速、降速各一个按键,一个启动制动键,旋转方向控制按键一个,复位键一个。

系统输出控制主要是单片机、驱动电路与电机和调速部分组成,

单片机主要是完

成数据信息的处理以及输出脉冲宽度可调的PWM,L293电机驱动芯片负责将单片机传送出来的PWM信号进行放大从而能够改变直流电机电枢两端的电压达到调节电机速度的能力,并且芯片内部含有H桥,能够实现对于电机旋转方向改变的控制,PWM输出用一个端口,

系统显示部分的设定是用LCD1602液晶显示器显示用户所设定的直流电机旋转速度以及由测速部件测得数据反馈给单片机,由单片机进行数据的运算处理将处理好的直流电机实际的旋转速度进行实时的显示。

3 PWM脉冲宽度调制技术

3.1 PWM调速原理

脉冲宽度调制可以简称为脉宽调制,或是用英文缩写PWM 来表示。PWM波形普遍是由微控制器件如单片机的端口输出的数字量来表示,并向组成电机驱动的模拟电路进行控制,控制直流电机驱动电源的导通与关断的频率,从而改变直流电机电枢两端的电压的数值进而控制直流电机的旋转速度。PWM技术不仅应用于直流电机调速控制方面,同样适用于其他控制系统,例如:温度控制系统、压力控制系统、测量控制、通信信息采集控制以及输出功率变换控制等诸多领域都有广泛的应用。

脉冲宽度调制解调是是一种新型的控制方式,也就是模糊控制方式,给定一个相对稳定的频率来导通关断电压,并且要根据所需要电压导通与关断的频率即一个周期内导通与关断所出现的次数。实质上就是直流电机电枢两端所加的电压按照一定的规律进行改变,改变PWM的占空比,即改变驱动电路中的平均电压,进而就能发控制直流电机的旋转速度,所以人们总是把脉冲宽度调制技术叫为驱动开关装置。

通过脉冲宽度调制技术控制直流电机,这种方法能够不论直流电机的工作条件环境是什么情况下,都能够做到电压输出电压保持在一定的范围之内,不会有明显的波动。

使用PWM控制直流电机调速要比传统的晶闸管调速系统有很多优势,这种控制技术不需要过多的电力电子器件,整个主电路组成结构相对简单,对于直流电机在运行时磨损消耗较小,直流电机不会由于机体过热导致系统不能正常工作,电流连续性好,调速范围广泛局限性小,系统稳定性好,调速精确度高,这些都是传统调速系统无法匹敌的。

图2 PWM信号的占空比

设定电机电源持续导通的情况之下,直流电机的最大旋转速度为Vmax,则占空比为D=t1如图2所示,则直流电机平均速度为Va=Vmax⨯D,其中Va为电机的平均速度;Vmax为直流电机在全部导通时所产生的最大速度;D=t1是指占空比。脉冲宽度调制占空比如3-1所示

从之前公式可以知道,如果我们更改占空比D=t1,就能够让电机达到不同均值速度Vd,便能够完成调节速度作用。从某种意义上来讲,平均速度Vd与占空比D并不是完全遵循线性关系,但是在一般的应用中,我们可以讲两者之间的关系看似为线性关系。

3.2 PWM调速方法

当使用PWM 进行直流电机调速的时候,最为重要的是确认PWM的占空比,作为重要参数之一占空比的变化至关重要,在输入电源电压不变的条件之下,占空比的选取决定着直流电机电枢两端的电压平均值是多少。对于直流电机来说想要达到调节速度的目的,就要改变其电枢两端的电压平均值唯有通过修改脉冲宽度也就是PWM的占空比,综上所述改变占空比这环节至关重要,以下是通过查找相关资料所得到三种改变占空比的方法,通过这样的分析将从其中选择出适合本系统的PWM调速方法。

第一种方法是改变PWM波的频率,对于频率进行调节,选取一定的脉冲宽度也就是说数字输出的PWM每个周期中高电平所占的时间不变,只改变周期中低电平时间长度,进而改变占空比,周期时间变长占空比变小,周期越短则占空比变大,这样PWM的频率也会随之改变。

第二种方式便是调频调宽的方法,这种方法就是保持低电平即电枢电压关断时间保持不变,通过调节电枢两端电压接通的时间,从而改变PWN的周期时间,进而改变输出PWM的频率,要说明的是PWM脉冲宽度是指电枢电压导通的时间也就是波形中高电平所占得时间。

第三种方式便是确定PWM的周期调节脉冲宽度,也就是说电枢两端的电压导通与关断的时间总和不变(即高电平和低电平所占的时间总和不变),改变脉冲宽度(即输出脉冲高电平或低电平所占时间),就是二者在周期内所占比例按需求进行变更。

前两种方法都是通过改变PWM的脉冲频率(即周期时间)的方式来调整脉冲占空比的,但是这样做的最大劣势就调节脉冲频率受到限制,系统存在着固有的频率,但两者频率接近相等时系统会变得很不稳定,引起波形的振荡,因此本次系统设计采用第三种方法来进行直流电机的调速,通过改变PWM的脉冲宽度进而实现对电机电枢两端电压的改变。利用单片机的定时/计数器和延时中断功能做到对输出的PWM脉冲宽度和频率进行设定。

3.3 PWM输出的实现方法

输出PWM的方式大体上有两种,一种是使用PWM专用的芯片或是一些硬件设备的方式,另一种方式便是使用软件程序控制微处理器输出PWM。

选用硬件的方法可以选择像NE555或是SG3525系列相同的芯片,将这种芯片作为PWM调速系统的核心控制器件,进而实现输出控制信号 ,虽然种控制方式所用的芯片计时可以达到很高的水平,但是输出的信号需要放大电路将信号本身的功率进行放大,之后才能控制直流电机的运行模式,这样所需要的控制电路将会异常的庞大复杂,并且调节使用相对复杂没有很好的自动控制能力,不能实现智能化控制的要求,在实际的企业生产过程中使用范围受到很大的局限性,实用性差。

选择软件编写程序来实现脉冲宽度PWM的输出相对简便的,只要了解明白PWM调速的基本原理,懂得PWM是如何实现对直流电机进行速度的调节的,现在有很多微处理器,单片机是其中使用与学习起来都非常简单的,也容易操作,本身成本低廉,体积小,因此使用单片机输出系统所需的PWM波形是最为理想的设计方案。

对于使用单片机输出PWM的软件编写也有两种方案:

方案一:采用单片机中的定时器通过计时功能来控制输出PWM的脉冲宽度,使用这种方式对于控制PWM的脉冲宽度有很小的误差,误差范围可达到几微秒,已经非常的小了。

方案二:不使用定时功能,而是使用中断延时功能,这种方式不用占用单片机内部的定时器资源,但是加入中断后的系统的误差将会升高,不过是在允许范围之内的。

根据所查找的资料,并且结合了自身的情况,系统选用的是STC89C52RC单片机内置有3个定时/计数器,因此不用担心定时器不够用的问题,所用软件程序控制PWM输出采用的是方案一。

4 系统软件的设计

4.1 软件设计思路

我先通过将整个系统的分成模块结构,明确软件所能控制的模块有哪些。我将软件所需要设计的整个程序分为几个模块:主程序模块、键盘子程序模块、显示LCD子程序模块、及中断子程序模块等几个部分,分别对每一部分进行程序构架设想及程序的编写,最后进行整体的程序的调试。其中对于LCD显示部分及PWM输出部分的编写最为重要关键。

在前期工作中,我已经明确了这个系统组成结构,后面便是要对于软件程序进行编写与调试,首先我做了整体的构想编写出主程序,画出整体程序的流程图,接下来就是要对系统的每一块需要软件编写的进行设计,也是先画出大致的流程图,接着便是根据所画的流程图进行子程序的编写,每段程序编写完成后都要进行程序的总体调试,无误之后便要结合硬件进行最终的调试。

4.2 软件设计方案

之前我已经确定了整个控制系统的组成结构和单片机的型号选择,现在我需要对单片机进行控制的选择,这个选择是必须且重要的,设计的最终目的是要实现对直流电机调速转向改变的功能,为了实现这项功能我需要选定适合我的控制方案,选择什么样的控制形式要不仅根据硬件的制作实现程度,并要根据我的软件程序编写水平和整个程序运行及控制便捷程度来选择。由此我选择了两种相对实行起来简便好操作的方案,并且对这两种方案进行更加细致的比较,从中选取适合的软件设计方法。

有两种单片机控制形式,一种是有一个STC89C52RC单片机和一个功能设定为PID控制器的单片机组成控制电路,其中一个单片机完成控制功能作为主控制芯片,用来做到独立按键控制,测速反馈、显示以及提供速度设定测量数值给PID控制器等功能,另一个单片机专门实现PID算法与输出PWM脉冲信号的功能。另一种只用一个单片机作为控制核心器件,所有的控制功能都由单片机完成,例如系统对于测速元件的信息采集,控制运算以及PWM输出信号的设置与调节。

第一种控制方式的系统在速度测量上精度会比较高,移植性比较的好,能够提高扩展系统整体的性能,但是对于硬件的需求量就会相对增长,对于程序编写的难度也会加大很多;第二种控制方法对于单片机内部信息处理资源会相对紧张,不能 通用于其他控制程序,但是相对于第一种的控制方式,第二种的控制方式系统控制电路的硬件组成结构简单很多,程序的控制处理更加容易实现,因此通过比较,选择了方案一。

4.3 程序设计

4.3.1 主程序设计

在进行C语言编程之前首先要明确函数在其中意义,函数就像是水分子一样是形成水最基本基础的单元,在程序中函数就是水中的水分子组成能够实现某种功能作用的程序。最为重要的是主函数的编写,主函数的编写由两部分组成,一部分是由直接写出的语句,另一部分便是一些有特定作用功能的子函数。

在了解了主程序的功能及其编写规则后,我先构想了整个系统的流程图如图3所示。

图3 主程序流程图

系统主程序设计的过程是有一定的难度的,需要不断地修改,首先确定是要先对单片机进行初始化,其中包含有对三个定时/计数器的初始化以及对LCD1602液晶显示的初始化设置,接下来就是对于用户设定电机转速参数设定的跟随函数,为了能够实时的检测到用户设定参数的变化和电机旋转速度,还有便是对于显示功能和用户与程序接口的设置,这些功能都用子程序编写,并在主程序中进行调用使用的。

4.3.2 初始化子程序设计

主程序运行的过程中,要先对整个系统进行初始化工作,包括分别对单片机内部

定时/计数器与LCD显示模块进行初始化工作。首先要将EA中断总允许开关置位1,并打开每个定时器的中断允许开关ET0、ET1、ET2。

由于本直流电机控制系统选用的是STC89C52RC型号的单片机,单片机内部有三个定时/计数器,就要分别对其进行初始化的设置,因为STC89C52RC单片机有定时器2这和普通的51系统的单片机不同,其设置也不同,因此先对其进行初始化设置,定时/计数器2有属于自己的控制寄存器和工作方式寄存器,分别用T2CON和T2MOD来表示,这个定时器同样有三种工作状态分别是16位的捕获、16位的自动重装载以及波特率发生器,这三种工作状态通过控制特殊功能寄存器位选择来确定的,其各个位所实现功能的作用如图4所示。

图4 T2CON功能说明

通过查找功能说明对其进行模式的设定,将00H赋值给T2CON,选择自动重装载工作模式就是T2作为定时计数器工作,通过软件程序编写能够控制T2的递增递减,并设定定时初值为3CB0H,定时器TF2为0时,自动重装载是T2定时器自动加到0FFFFH的时候将会溢出,此时并会使TF2位进行置位,随后将16位的重新装载数值载入T2定时器中,重新装载数值的设定是通过软件程序编写设置的,是由RCAP2L与RCAP2H组成16位的数值。当赋值给TR2为1的时候T2定时器便开始计时了。

对于T2定时器的模式寄存器的设定也是要查阅功能说明来设定,T2定时器模式寄存器的功能说明如下图5所示。

图5 T2MOD功能说明

T2定时器计数的方向通过T2MOD中的递减计数使能位DCEN来决定的,当递减计数使能位是1的时候,T2定时器需要靠外界输入信号来决定定时器是递增模式还是递减模式,如果递减计数使能位设置为0时,则T2定时器将默认为不断进行加数运算。

4.3.3 按键子程序设计

键盘模块的选定是从两个方案中选择出来的。

第一种方案是系统控制输入采用的是行列式键盘,这种键盘的工作过程是由三步完成的,键盘输入的实时监控,行列式中具体按键号码的确认以及执行按键功能。

第二种方案便是使用独立式键盘,按键输入有效值一般为低电平,所用按键要一端连接单片机,另一端要求全部接地。所有按键状态的改变,单片机从I/O端口直接

读取。

两种方案进行比对得到以下结论:

行列式键盘虽然自带一定的抗干扰行,能使系统运行更加稳定,但是所占单片机外部端口众多,需要大量的I/O端口线才能实现控制,浪费了太多的资源,第二种方案与第一种相比较,后者简单,控制起来更加简便,本系统只需要五个独立按键便能实现控制,因此选用方案二来进行按键程序设计,按键子程序流程图如图6所示。

图6 按键子程序流程图 对于按键设计来说去抖动是不能缺少的设置,单片机工作时间是属于微秒级别的,如果不正确的设定按键,发生执行错误命令情况是极大的,避免按键产生抖动就是迫使单片机对按键发生一次改变只能做一次处理按键去抖动的方式有两种,一种是利用硬件对按键进行去抖动,另一种是使用软件程序编写来去除按键的抖动。由于硬件方式去抖动是要添加电子元器件的,为了使电路组成结构简单,使用了软件去抖动的方法。

在真正执行按键指令之前,通过编写一段延时程序,用来确认按键是否真正按下,经过延时时间后,如果按键仍然是按下就执行该按键要执行的功能,这也是为了保证系统能够正常运行,提高了系统的准确度和抗干扰能力。

4.3.4 显示子程序设计

本系统采用的是LCD1602液晶显示器来显示直流电机的实际运行速度以及用户设定的速度,为了能够简单明了的显示出系统所要求的显示出的信息,便采用了这款液晶显示器,能够显示数值以及英文字母,也同时考虑到硬件空间资源的问题,觉得没用必要采用1602的液晶显示器就足够了,由此画出显示程序流程图如图7所示。

图7 显示程序流程图

在系统启动最开始电机还没有启动时,也要先进行显示器的初始化显示如图8所示。

图8 显示器的初始化显示

由用户给定的速度要显示在显示器上,为了能够与电机实际速度作为比对,并且通过PWM_PID的跟随用户给定参数进行处理后的数值显示出来,让用户能够实时的知道电机的运行状况。

4.3.5 中断子程序设计

通过定时器T1产生中断,输出3.5千赫兹的PWM脉冲,通过T2定时器进行定时能力,中断程序如图9所示。

N图9 中断程序流程图

5 系统调试及仿真

5.1 系统软件程序调试

采用模块化设计方法,在Keil μVersion4软件开发平台的环境下,完成软件程序的编写并进行了调试。软件Keil uVersion4如图10所示。

图10 Keil uVersion4

Keil uVersion4 是由Keil Software公司创建的一个单片机控制程序编写以及编译等功能的软件。这款软件能实现三种功能,程序创作、调试及仿真,编写程序所使用的语言也很多样,并且软件使用界面简单明了,很容易上手使用。对于英文不好的使用者来说,它还能够进行汉化,使得用户能够在熟悉的语言环境下进行工作和学习,这个软件的安装也十分方便。KEIL 使用的单片机芯片型号有很多种,来自各个公司的都有,另外即便是没有的也可用其他同类型芯片代替,使用起来非常的方便。本系统软件设计中使用此软件进行程序设计及编译并使用C语言来编写。

调试过程如下:

1、

启动Keil μVersion4,并且选择芯片建立一个新的工程用以程序编写,如图11,12所示。

图11 建立新工程

图12 选定单片机使用芯片型号

2、

创建新的程序编写文件,如图13所示。

图13新建程序编写文件

3、

建立新的文件后便进行程序的编写工作,如图14所示。

图14 文件编译

4、

对程序进行保存,并且要保存为.c格式,如图15所示。

图15 编写程序并进行保存

5、

往项目组中填加刚刚保存好的文件,如图16所示。

图16添加文件到项目组中

6、进行程序的调试与修改,如图17、图18所示。

图17 程序进行编译及编译结果

图18 程序编译无误

5.2 调试中遇到的问题及解决

在调试过程中,我首先遇到的问题便是调试软件的使用问题,在学校学习单片机课程的实训的时候,有使用过这个软件,但是因为经过了很长的时间没有使用,但我在此次设计中使用这个软件的时候,基本上已经忘记了如何使用,因此学会使用调试软件对自己所编写的程序进行调试是很重要的步骤。

其次在程序进行总体调试的时候,遇到了定时器T2的编写和头文件名有误的问题。通过查找资料和询问,最终明白了问题所在,并顺利的解决了问题。

在完成软件程序调试之后,进行了与硬件的调试工作,虽然刚开始有些问题,显示不是很成功,但是经过了与进行硬件设计的同学的不断修改调试,最终实现了系统的要求,直流电机能够正在运行,并能通过外设的独立键盘对电机进行速度的设定、启动制动控制以及电机旋转方向的控制。

下面展示的是电机运行时显示器的实时显示情况如图19所示。

图19 电机运行时候的实时显示状况

第一行显示的是当前直流电机实际的旋转速度,后面并设有单位,第二行显示的是用户所设定的电机的旋转速度,后面的“Start”表示的是用户按下了电机启动按键,直流电机在运行中,当电机被设定为停止运行的时候最后的“Start”将变为“Stop”如图20所示。

图20 电机停止运行时显示情况

6 系统设计总结

STC89C52RC单片机使用用途很多,并且还能做很多外部扩展工作,在这次系统设计中,我从刚开始不知道怎样下手,从哪里开始怎样选择,到后来渐渐地进入状态,知道该做什么。同样了解到使用程序设定单片机控制模式,并且输出脉冲宽度不同的PWM使用它改变直流电机的运行状态。

在整个系统的设计中我需要自己先查阅与课题有关的知识和技术,在经过知识的认知、理解到运用这个过程让我收获颇多。开始感觉这个课设很难,原因原因在于自己当初在学习单片机技术的时候没有学透,存在着很多疑点没有解决,就囫囵吞枣的学下去了,还有在学习电机与电力拖动控制课程的时候也存在着疑问没有解决。比如PWM脉冲宽度控制电机转速的系统在电力拖动这门课程中已经有所涉及了,当时只想能够考试通过就好,没有做到真正的学以致用。通过这次的毕业设计,我相当于将与课程相关的知识从新学过,学习的动力是要完成此次设计,过程中对于单片机技术有了新的认识和更加深刻的感受。能自己解决问题是最关键的。

结 论

本文所设计的直流电机控制系统是以STC89C52RC型号的单片机为核心控制器,通过单片机输出的PWM对直流电机进行调速的,并且通过单片机输出不同的信号,使得直流电机实现正反转的控制。此种方法原理较为简单就通过脉冲宽度调制改变接在电枢两端电压所导通与断开的占空比,也就是时间之比,要使电机速度升高需要变换电枢电压导通的时间,要使电机速度减小便改变电枢电压断开的时间,换句话就是通过改变PWM的占空比来实现对电机的速度调节,改变电枢电压两端的导通与断开的时间有一定的规律,这样整个电机速度便能够在一个稳定的数值之间运行。利用软件程序控制PWM的输出频率和脉冲宽度,这种办法具有较大的灵活性并且硬件资源利用率高成本低廉。

通过本次设计,我在完成毕业设计的同时也掌握了许多技能,对于单片机技术的了解也更加深入了,再到懂得如何使用,这个学习的过程对我帮助颇多,从中我学会了如何去思考问题和解决问题,如何通过论证的方法去选择合适可行的设计方案。

致 谢

从进行毕业论文的选题到现在完成毕业设计论文,我一直都在指导老师的悉心指导下进行毕业设计以及论文的完成,在此我衷心感谢指导老师在整个毕业设计中给予我的指导与帮助,对于我的设计前期迷茫时给我指点和提出了很多宝贵的意见,在最后论文进行撰写和修改的过程中指导老师也是在百忙之中抽出时间为我提供极大的帮助,从而使我的毕业设计能够顺利的完成要求的工作。

便随着毕业设计的接近尾声,我的大学四年生活也要结束了。我非常感谢在这四年中老师们对我们的学习和工作严格要求,并且细心教导我们鼓励我们积极进取,使我在学习上取得了较为优异的成绩,并且使我各方面都有了明显的提高,这一切都要归功于老师们的教导,四年的教导会使我在今后的学习、生活以及工作上都受益匪浅,在此,我对老师的培养与帮助表示深切的感谢!

同样我也非常感谢我的同学们,在同他们一起学习、生活和工作中,他们给予我的帮助和意见,促进了我的学习与进步,我对他们致予由衷的感谢,也祝愿他们在今后的工作中取得更好的成绩。

最后,向所有帮助过我,鼓励过我的人表达我最诚挚的谢意。

参考文献

[1] 王侠.单片机 无刷直流电动机控制系统的研究 [D].西妥:西妥科技大学图书馆,2007:3-9.

[2]陈伯时.电力拖动自动控制系统[M].3版.北京:机械工业出版社,2003.

[3] 张桂香,姚存治.基于ATmegal128单片机的智能供电测控系统设计[J].电力自动化设备,2009,29(8):136-139

[4]Saffet Ayasun Gültekin Karbeyaz. DC mrotor speed control methods using MARKAB/Simulink and their integration into undergraduate electric machinery courses

[C].Computer Applicartons in Engineering Education,2007:347-354

[5]Ayütel Gelen, Saffet Ayasun.Reslization of Power Electronic Convertor Based DC Motor Speed Control Methods Using MATLAB/Simulink[C].Int J Engng Ed.vol.25,No.1,pp.33-41,2009.

[6]周冠军,毕祥丽.LMD18200T的直流伺服电动机驱动器的设计[J].电子工业专业设备,2006,35(11):71-74.

[7] 唐介.电机与拖动育[J].北京:高等教育出版社,2007.

[8] 张迎新.单片机初级教程:单片机基础[M].北京:北京航空航天大学出版社,2006.

[9] 汪玉成.直流电机PWM调速系统设计[J].商场现代化,2007,(52):389.

[10]马忠梅.单片机的C语言应用程序设计[M].北京:北京航天航空大学出版社,2007: 9-10.

[11] 周兴华.手把手教你学单片机C程序设计[M].北京:北京航天航空大学出版社,2007.


相关文章

  • 电子信息工程毕业设计题目大全
  • 1 压力容器液位测量 2 多功能遥控小车 3基于RS232的仓库多点温度.湿度.气 4压检测系统 5自动控制升降旗系统 6基于RS485的温度报警系统 7基于模糊算法的水温控制系统的设计 8多分机电话交换机 9简易火灾自动报警系统 10基于 ...查看


  • 基于FPGA的乒乓球游戏参考毕业论文设计
  • 基于 XILINX-FPGA 的乒乓球游戏参考设计 一.背景: Xilinx 大学计划(xilinx university plan 简称 XUP)一直致力于为工程课程 提供新一代软件和硬件设计流程.全球数千所使用 Xilinx 系统进行教 ...查看


  • [单片机]填空题题库答案
  • <单片机原理及应用>填空题题库答案 二. 填空题(每空2分) 1.MCS-51单片机访问外部端口和数据存储器用 MOVX 指令. 2.MCS-51单片机存储器结构的主要特点是 程序 存储器与 数据 存储器的寻址空间是分开的. 3 ...查看


  • 单片机中断程序
  • 单片机中断程序 单片机中断程序 |2009-07-05 11:32_woodpecker| 分类:编程语言| 浏览6268次 求高人帮我分析下这段C程序 小弟刚学单片机,对于中断定时器了解不是很好 #include // 头文件 #defi ...查看


  • 单片机教案
  • 吴允志 单 片 机 1 2011年2月21日 08高职电子2班 2 单片机概述(一) 通过本讲教学,要求学生了解单片机的概念及组成.单片机 与通用微机的区别与联系,单片机的特点及其广泛应用.了解本课程的性质.任务及其在本专业中的地位,结合单 ...查看


  • 倒计时器的设计实现
  • 目录 1 倒计时器设计要求 ................................................... 1 1.1设计要求 ............................................ ...查看


  • 2015单片机学习心得
  • 2015单片机学习心得 第1篇:单片机学习心得分享 学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制. 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示 ...查看


  • 最新电子信息工程毕业论文题目参考
  • 1. 家庭防盗报警系统 2. 单片机实现单步进电机及8位流水灯控制的设计 3. 篮球竞赛计时系统 4. 单片机89C51在直流调速控制系统中的应用 5. 八路数字抢答器 6. 基于51机的直流电机设计 7. 基于51单片机的步进电机控制系统 ...查看


  • 基于单片机的温度报警器
  • 中原工学院信息商务学院信息工程系专业课程设计报告 专业课程设计报告 题目:单片机课程设计报告 系 别 信息工程系 专业班级 1513132151 学 号 45645464 学生姓名 [1**********] 指导教师 156123165 ...查看


热门内容