单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3780|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机控制的双闭环直流PWM调速系统设计文档资料

[复制链接]
跳转到指定楼层
楼主
eimen 发表于 2019-1-11 13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享一个机电课设可能会用到资料。
系统的硬件设计部分包括按键模块、电动机驱动模块、STC89C51单片机系统、光电门测速模块、保护电路、供电电源和直流电机。系统的软件部分包括键盘控制程序设计、显示程序设计、主控程序设计。

随着时代的进步和科技的发展,电机调速系统在工农业生产、交通运输以及日常生活中起着越来越重要的作用,因此,对电机调速的研究有着积极的意义。长期以来,直流电机被广泛应用于调速系统中,而且一直在调速领域占居主导地位。
本设计是基于单片机控制的PWM直流电机调速系统,系统以STC89C51单片机为核心,以130小直流电机为控制对象,以L298N为H桥驱动芯片实现电动机的转速反馈控制。调节PWM 占空比从而控制电机两端电压,以达到调速的目的。用4*4键盘输入有关控制信号及参数,并在12864 LED上实时显示输入参数及动态转速。系统的硬件设计部分包括按键模块、电动机驱动模块、STC89C51单片机系统、光电门测速模块、保护电路、供电电源和直流电机。系统的软件部分包括键盘控制程序设计、显示程序设计、主控程序设计。整个系统实现了单片机控制电机的启制动、正反转、速度调节的效果。
目 录
摘 要
Abstract
1 引言
1.1 直流调速系统概况
1.2 设计目的和意义
1.3 国内外发展现状
1.4 设计要求和内容
2 直流调速原理分析与方案确定
2.1 直流PWM调速系统原理分析
2.2 方案论证和选择
3 系统硬件设计
3.1 按键控制模块
3.2 电动机驱动模块
3.4 STC89C51单片机系统
3.5 光电门测速模块
3.6 保护电路
3.7 供电电源
3.8 直流电动机的说明
3.9 系统总体设计电路图
4 系统软件设计
4.1 键盘控制程序设计
4.2 显示程序设计
4.3 主控程序设计
5 实物的直流调速实现与调试
结 论
参考文献
致  谢

1 引言
1.1
直流调速系统概况
现代工业的电力拖动一般都要求局部或全部的自动化,因此必然要与各种控制元件组成的自动控制系统联系起来,而电力拖动则可视为自动化电力拖动系统的简称。在这一系统中可对生产机械进行自动控制。
随着近代电力电子技术和计算机技术的发展以及现代控制理论的应用,自动化电力拖动正朝着计算机控制的生产过程自动化的方向迈进。以达到高速、优质、高效率地生产。在大多数综合自动化系统中,自动化的电力拖动系统仍然是不可缺少的组成部分。另外,低成本自动化技术与设备的开发,越来越引起国内外的注意。特别对于小型企业,应用适用技术的设备,不仅有益于获得经济效益,而且能提高生产率、可靠性与柔性,还有易于应用的优点。自动化的电力拖动系统更是低成本自动化系统的重要组成部分[1]。
在如今的现实生活中,自动化控制系统已在各行各业得到广泛的应用和发展,其中自动调速系统的应用则起着尤为重要的作用。虽然直流电机不如交流电机那样结构简单、价格便宜、制造方便、容易维护,但是它具有良好的起、制动性能,宜于在广泛的范围内平滑调速,所以直流调速系统至今仍是自动调速系统中的主要形式。现在电动机的控制从简单走向复杂,并逐渐成熟成为主流。其应用领域极为广泛,例如:军事和宇航方面的雷达天线、火炮瞄准、惯性导航等的控制;工业方面的数控机床、工业机器人、印刷机械等设备的控制;计算机外围设备和办公设备中的打印机、传真机、复印机、扫描仪等的控制;音像设备和家用电器中的录音机、数码相机、洗衣机、空调等的控制。
随着电力电子技术的发展,开关速度更快、控制更容易的全控型功率器件MOSFET和IGBT成为主流,脉宽调制技术表现出较大的优越性:主电路线路简单,需要用的功率元件少;开关频率高,电流容易连续,谐波少,电机损耗和发热都较小;低速性能好,稳速精度高,因而调速范围宽;系统快速响应性能好,动态抗扰能力强;主电路元件工作在开关状态,导通损耗小,装置效率较高;近年来,微型计算机技术发展速度飞快,以计算机为主导的信息技术作为一崭新的生产力,正向社会的各个领域渗透,直流调速系统向数字化方向发展成为趋势[2]。
1.2 设计目的和意义
直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率[3]。
传统的控制系统采用模拟元件,虽在一定程度上满足了生产要求,但是因为元件容易老化和在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受到器件性能、温度等因素的影响,故系统的运行可靠性及准确性得不到保证,甚至出现事故。
目前,直流电动机调速系统数字化已经走向实用化,伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。
1.3 国内外发展现状
电力电子技术、功率半导体器件的发展对电机控制技术的发展影响极大,它们是密切相关、相互促进的。近30年来,电力电子技术的迅猛发展,带动和改变着电机控制的面貌和应用。驱动电动机的控制方案有三种:工作在通断两个状态的开关控制、相位控制和脉宽调制控制,在单向通用电动机的电子驱动电路中,主要的器件是晶闸管,后来是用相位控制的双向可控硅。在这以后,这种半控型功率器件一直主宰着电机控制市场。到70和80年代才先后出现了全控型功率器件GTO晶闸管、GTR、POWER-MOSFET、IGBT和MCT等。利用这种有自关断能力的器件,取消了原来普通晶闸管系统所必需的换相电路,简化了电路结构,提高了效率,提高了工作频率,降低了噪声,也缩小了电力电子装置的体积和重量。后来,谐波成分大、功率因数差的相控变流器逐步由斩波器或PWM变流器所代替,明显地扩大了电机控制的调运范围,提高了调速精度,改善了快速性、效率和功率因数[4]。
直流电机脉冲宽度调制(Pulse Width Modulation-简称PWM)调速系统产生于70年代中期。最早用于不可逆、小功率驱动,例如自动跟踪天文望远镜、自动记录仪表等。近十多年来,由于晶体管器件水平的提高及电路技术的发展,同时又因出现了宽调速永磁直流电机,它们之间的结合促使PWM技术的高速发展,并使电气驱动技术推进到一个新的高度。
在国外,PWM最早是在军事工业以及空间技术中应用。它以优越的性能,满足那些高速度、高精度随动跟踪系统的需求。近八、九年来,进一步扩散到民用工业,特别是在机床行业、自动生产线及机器人等领域中广泛应用。
如今,电子技术、计算机技术和电机控制技术相结合的趋势更为明显,促进电机控制技术以更快的速度发展着。随着市场的发展,客户对电机驱动控制要求越来越高,希望它的功能更强、噪声更低、控制算法更复杂,而可靠性和系统安全操作也摆上了议事日程,同时还要求马达恒速向变速发展,还要符合全球环保法规所要求的严格环境标准。进入21世纪后,可以预期新的更高性能电力电子器件还会出现,已有的各代电力电子元件还会不断地改进提高[5]。
1.4 设计要求和内容设计以STC89C51单片机为中央处理器的直流调速系统,使STC89C51产生PWM信号对直流电动机进行转速的控制。在设计中,通过对系统各大模块的分析应用,使自己的设计达到了实现直流电动机调速的要求。完成系统硬件部分的设计、产生PWM控制信号关键软件部分的设计。通过整合系统的各个模块,从而构成了一个比较完整有效地直流电动机调速控制系统。
2 直流调速原理分析与方案确定
2.1 直流PWM调速系统原理分析
    众所周知,直流电机稳态转速 n 的表达式为

n=                        (2.1)

式中     
U------------  电枢端电压(V)
I--------------  电枢电流(A)
---------- 电枢电路总电阻()
----------------每极磁通量(Wb)
C---------------与电动机结构有关的常数
由式2.1可知,直流电机稳态转速 n 的控制方法可分为两类,即励磁控制法与电枢电压控制法。励磁控制法控制磁通,其控制功率虽然较小,但低速时受到磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态性能也较差。所以常用的控制方法是改变电枢端电压调速的电枢电压控制法[6]。
设直流电源电压为U,将电枢串联成一个电阻R,接到电源 U,则稳态电压方程式为

U= U- IR                       (2.2)

显然,调节电阻R既可改变端电压,达到调速的目的,但这种传统的调压调速方法,其效率太低,因此,随着电力电子技术的进步,发展了很多新的电枢电压控制方法,如:由交流电源供电,使用晶闸管整流器进行相控调压;使用硅整流器将交流点整流成直流电,再由PWM降压斩波器进行斩波调压等。
晶闸管相控调压或PWM斩波器调压比串电阻调压损耗小,效率高,而斩波调压比相控调压又多了不少优点,如需要的滤波装置很小甚至只利用电枢电感已经足够,不需要外加滤波装置;电动机的损耗和发热很小,动态响应较快等。
图2.1为PWM降压斩波器的原理电路及输出电压波形,在图2.1(a)中,假定晶闸管 V 先导通了 T 秒(忽略 V 的管压降,这期间电源电压 U全部加到电枢上),然后关断了T 秒(这期间电枢端电压为零)。如此反复,则电枢端电压波形如图2.1(b)中所示。电动机电枢端电压 U为其平均值。

  U===               (2.3)

式中                                      

                                      (2.4)

在一个周期T中,晶体管V导通时间的比率,称为负载率或占空比。使用下面三种方法中的任何一种,都可以改变的值,从而达到调压的目的。
1、定宽调频法。T保持一定,使T在0~范围内变化。
2、调宽调频法。T保持一定,使T在0~范围内变化。
3、定频调宽法。T+ T=T保持一定,使T在0~T范围内变化。
不管那种方法的变化范围均为01,因而电枢电压的平均值U的调节范围为0~ U,均为正值,即电动机只能在某一方向调速。
占空比表示了在一个周期T里开关管导通的时间与周期的比值。的变化范围为0≤≤1。当电源电压U不变的情况下,输出电压的平均值U取决于占空比的大小,改变值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现PWM调速。
              在PWM调速时,占空比是一个重要参数。改变占空比的方法有定宽调频法、调宽调频法和定频调宽法等。常用的定频调宽法,同时改变T和T,但周期T(或频率)保持不变[7]。
    在电动机调速里,通过调节PWM波的占空比,实现电动机平均电压出现变化,从而调节电机的转速,占空比越大,电动机的平均电压越大,转速越快,反之越慢。
2.2 方案论证和选择
2.2.1
稳压电源的选择
稳压电源的设计可以通过几种方法实现,根据具体的设计要求,通过比较论证来确定我们到底要用哪个方案。
方案一:采用模拟的分立元件,通过电源变压器、整流滤波电路以及稳压电路,实现稳压电源稳定输出+5V、±12V、+24V电压,并能可调输出1.2~24V电压。如图2.2所示。但由于模拟分立元件的分散性较大,各电阻电容之间的影响很大,因此所设计的指标不高,而且使用的器件较多,连接复杂,体积较大,供耗也大,给焊接带来了麻烦,同时焊点和线路较多,使成品的稳定性和精度也受到影响。

图2.2 直流稳压电源基本组成框图

方案二:采用FPGA作为控制器的简易数控直流电源设计方案如图2.3所示。设计方案采用FPGA作为控制器完成数控部分、键盘、显示器接口控制。输出部分采用D/A0832与运算放大器UA714,输出电压波形由FPGA的输出数据控制,不仅可以输出直流电平,而且只要预先生成波形的量化数据,就可以产生多种波形输出。显示数据由FPGA提供。利用软件和硬件结合的方法来设计稳压电源,其精度和稳定性都有所提高;但是,采用FPGA来设计的成本很高,性价比很差[8]。

图2.3 采用FPGA的简易数控直流电源设计方案

方案比较:以上两种方案均可以达到输出稳压电源的要求。方案一是利用纯硬件来实现其功能的,方案二是以FPGA为核心控制器件,采用软硬件结合来实现的。方案一的成本要比方案二低很多,性价比也比方案二好很多;但是方案一的稳定性和精度都没方案二要高,而且方案二还可以用Modelsim XE 5.3d软件进行仿真和调试等。设计人员可以充分利用VHDL硬件描述语言方便的编程,提高开发效率,缩短研发周期,易于进行功能的扩展,实现方法灵活,调试方便,修改容易。但考虑到稳压电源的实用性,虽然方案一的精度和稳定度不及用FPGA来实现的精度和稳定度高,但是用于做稳压电源已足够了,我们采用第一种方案来进行稳压电源的设计。
2.2.2 电机调速控制模块
方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电动机的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用由三极管组成的H型PWM电路。用单片机控制三极管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。
2.2.3 PWM调速工作方式
方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。
方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。
2.2.4 PWM调脉宽方式
调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定,并且在采用单片机产生PWM脉冲的软件实现上比较方便。
2.2.5 PWM软件实现方式
方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。
方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。故采用方案一。
2.2.6 编程语言的选择
在单片机应用系统开发中,常用的编程语言有汇编语言和C语言两种。这两种开发语言都具有各自的特点。以下就这两种开发语言的特点分别作简介并根据实际开发情况,选择适合的开发语言。
汇编语言的特点:可直接操纵系统的硬件资源,从而可以编写高质量的编码。但是采用汇编语言编写比较复杂的数值计算程序相对比较困难,又因汇编语言源程序的可读性远不如高级语言,如果想修改程序功能,得花费心思重新阅读程序,效率不是很高。
C语言的特点:C语言程序的优点是可读性与可移植性好,程序开发周期短;使用C语言编程更符合人的思维方式和思考习惯,编写代码效率高,维护方便;采用C语言易于开发复杂的单片机应用程序,有利于单片机产品的重新选型和应用程序的移植,大大提高了单片机软件的开发速度。
目前,在单片机的开发中,C语言得到越来越多的应用,而汇编语言也在很多环境下具有优势。实际应用中,要根据具体情况来选择开发语言。C语言不仅仅是在软件开发上,而且具体应用在单片机以及嵌入式系统开发上。本设计中首先对系统初始化,读取预置电压,预存电压值为10V,并将其发送给LCD显示电压。各部分软件的设计综合利用了C语言中结构式语句,函数的定义与调用,逻辑判断以及循环控制,充分体现C语言的简洁紧凑、运算符丰富、数据结构丰富以及可移植性高等优点。因此采用C语言编写程序[9]。

3 系统硬件设计
系统设计框图如下图所示,硬件电路结构初步设想由以下8部分组成:显示器、按键、供电电源、驱动电路、STC89C51单片机、直流电动机、光电门测速电路、保护电路。驱动电路部分采用了L298芯片作为驱动模块、H桥电路为功率放大电路所构成的电路结构。控制部分采用C语言编程控制,STC89C51芯片的定时器产生PWM脉冲波形,通过调节波形的宽度来控制电动机两端电压,便能够实现对电机速度的控制。硬件系统电路设计框图如图3.1所示。
3.1系统设计框图
3.1 按键控制模块
系统里采用4*4矩阵键盘控制面板作为输入转速和控制电动机启停、正反转、置零和调节速度的模块。键盘的实物照如图,在具体操作过程中,它可以用来录入转速,A键控制电动机启停,B键控制电动机的正反转,*键可以置零。具体的调试在后面章节会做介绍。

图3.2键盘控制面板
3.2 电动机驱动模块
本次设计的驱动芯片为L298。L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。其实物图如图3.3。其内部框图如图3.4所示[10]。

图3.3 L298实物图
图 3.4 L298内部结构图
L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片,内部包含4通道逻辑驱动电路,可同时驱动2个直流电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,每桥的三级管的射极是连接在一起的,相应外接线端可用来连接外设传感电阻。L298芯片是具有15个引出脚的多瓦数直插式封装的集成芯片。它接收标准TTL逻辑准位信号,可驱动46V、2A以下的电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。
使用直流驱动器可以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平, IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。如表3.1所示[11]。
表3.1 L298驱动电动机各个管脚信号高低
电机
旋转方式
控制端IN1
控制端IN2
控制端IN3
控制端IN4
输入PWM信号改变脉宽可调速
调速端A
调速端B
M1
正转
/
/
/
反转
/
/
/
停止
/
/
/
M2
正转
/
/
/
反转
/
/
/
停止
/
/
/

本驱动电路由L298芯片来驱动和控制电机,L298其实就是一个全桥驱动电路。驱动电路原理如图3.5所示。

                                       (a)
(b)
图3.5 驱动电路原理图
本次设计采用的L298有很强的驱动能力驱动电流可达2A。 图中ENA和ENB分别为L298 两桥的使能端,若为高电平则对应的桥处于工作状态。我们要控制电机运动只需单片机送出一个信号就可以了。由于这次设计只要控制一个直流电机,所以我们就采用M1的电机控制就可以了。

3.3 显示模块设计
液晶显示模块是 128×64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置 8192个中文汉字(16×16 点阵)、128 个字符(8×16 点阵)及 64×256 点阵显示 RAM(GDRAM)。可与 CPU 直接接口,提供两种界面来连接微处理机:8位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。实物图如图3.6。

图3.6 128×64 点阵的汉字图形型液晶显示器
在本次设计中需要显示黑线数量、运行的状态等一些数字、字母和汉字信息,因此使用12864比较合适。它是一种图形点阵液晶显示器,主要由行驱动器、列驱动器及128×64全点阵液晶显示器组成,可完成汉字(16×16)显示和图形显示。共有20个引脚,由于本次使用的是串口通信,不需要使用并口数据接线端口,因此在图中省略了。12864液晶显示器外观管脚图如图3.7[12]。
图 3.7 12864管脚图

管脚说明如下:
(1)1脚VSS,模块的电源地。
(2)2脚VDD,模块的电源正端。
(3)3脚V0,LCD驱动电压输入端。
(4)4脚RS,并行的指令/数据选择信号;串行的片选信号。
(5)5脚R/W,并行的读写选择信号;串行的数据口。
(6)6脚E,并行的使能信号;串行的同步时钟。
(7)7~14脚DB0~DB7数据0~7。
(8)15脚PSB并/串行接口选择H-并行;L-串行。
(9)16脚NC空脚。
(10)17脚RST,复位低电平有效。
(11)18脚VEE,LCD驱动负电压输入端。
(12)19脚A背光源正极(5V)。
(13)20脚K背光源负极(0V)。
用带中文字库的128×64显示模块时应注意以下几点:
1、欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
2、显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
3、当字符编码为2字节时,应先写入高位字节,再写入低位字节。
4、模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。
5、“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。
在本次设计中,显示器显示电机的设定速度和实际速度,通过按键的控制,在显示器上都会出现转速的相应调整。显示器的功能实现由程序的控制而来[13]。
3.4 STC89C51单片机系统
STC89C51单片机学习板是一款基于8位单片机处理芯片STC89C52RC的系统。其功能强大,可以实现单片机开发的多种要求,学习、开发者可以根据需要选配多种常用模块,达到实验及教学的目的。
STC89C51系列单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令代码与传统8051单片机完全兼容[14]。

图3.8 STC89C51管脚图
单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作,因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。电路中的电容C1和C2典型值通常选择为30pF左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的频率高低,振荡器的稳定性和起振的快速性,晶振的频率越高则系统的时钟频率也越高,单片机的运行速度也越快。本设计采用频率为12MHZ,微调电容C1和C2为30pF的内部时钟方式,电容为瓷片电容。

图3.9时钟电路                     图3.10 复位电路
    该电路采用按键手动复位。按键手动复位为电平方式。其中电平复位是通过RET端经电阻与电源VCC接通而实现的,当时钟频率适用于12MHZ时,C取100uF,R取10K,为保证可靠复位,在初识化程序中应安排一定的延迟时间[15]。
3.5光电门测速模块
光电门测速用途:广泛用于电机转速检测,位置检测,脉冲计数等。它的实物模型如下图,它的工作电压为DC 3-5V并且具有以下的特点:
1、具有信号输出指示
2、单路信号输出
3、输出有效信号为低电平
4、灵敏度不可调
5、可用于工件计数、电机测速
6、电路板输出开关量
图3.11 光电门测速模块图
在系统里面,通过电动机的转页上的缺口切断光电门测速装置所发出的光线可以达到给定转速信号的作用。转页上共有两个缺口,光电门通过发出的红外光被截断的频率从而知道电动机的转动频率。通过系统计数和对比控制从而给出较准确的转速。
本系统用到了光电耦合器,光电耦合器可以抑制尖脉冲和各种杂讯干扰信号。光电耦合器之所以在传输信号的同时能够有效得抑制尖脉冲和各种杂讯干扰,使得通道上的信号杂讯比大为提高,主要有以下几方面的原因:
1、光电耦合器的输入阻抗很小,只有几百欧姆,而干扰源的阻抗较大,通常为105-106欧姆。据分压原理可知,即使干扰电压的幅度较大,但馈送到光电耦合器输入端的杂讯电压会很小,只能形成很微弱的电流,由于没有足够的能量而不能使二极管发光,从而被抑制掉了。
2、光电耦合器的输入回路与输出回路之间没有电气联系,也没有共地;之间分布电容极小,而绝缘电阻又很大,因此回路一边的各种干扰杂讯都很难通过光电耦合器馈送到另一边去,避免了共阻抗耦合的干扰信号的产生。
3、光电耦合器可以起到很好的安全保障作用,即使当外部设备出现故障,甚至输入信号短接时,也不会损坏仪表。因为光电耦合器件的输入回路和输出回路之间可以承受几千伏的高压。
4、光电耦合器的回应速度极快,其回应延迟时间只有10微秒,适于对回应速度要求很高的场合[16]。
图3.12 光电耦合器
3.6 保护电路
在实物中采用保险管做为保护电路,在电动机运行过程中,如果出现特殊情况,电动机供电电流过大,会导致保险管里的保险丝熔断,这时候保险管会自动切断保护电路,达到保护整个系统的功能。
图3.13 保险管
3.7 供电电源
本系统采用稳定的直流电源供电,ST89C51单片机的供电电压为+5V,直流电动机的供电电压为+5V。由外面所接的变压器转变220V交流电成为稳定的直流电而来。可以为单片机和直流电动机提供稳定的直流电压[17]。
3.8直流电动机的说明
本系统采用130微型直流电机,直流电机为系统里的被控对象,我们的目的是实现它的启停、正反转和调速的功能。它的一些数据参数如下表:
表3.2 130电机数据表
电  压
空  载
最  大  效  率  下
工作范围
额定电压
转 数
电 流
转 数
电 流
力 矩
功 率
r/min
A
r/min
A
g.cm
w
3-6V
5V CONSTANT
8000
0.15
5000
0.2
10
0.9

采用PWM进行直流电机调速,其实就是把波形作用于电机驱动电路的使用端,因此有必要对电机驱动电路进行介绍。

               
图3.14  H桥式电机驱动电路
上图所示为一个典型的直流电机控制电路。电路得名于“H桥式驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠。电路中,H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
当V1管和V3管导通时,电流就从电源正极经V1从左至右穿过电机,然后再经V3回到电源负极。该流向的电流将驱动电机顺时针转动。当三极管V1和V3导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动。当三极管V2和V4导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动[18]。
3.9 系统总体设计电路图
系统总体电路如下图,系统由STC89C51单片机控制模块、按键面板、显示模块、直流电机驱动模块、保护电路、速度检测模块、直流电动机和供电电源这几个部分组成。系统实现了控制电动机的启停、正反转、复位和调节速度的功能。系统电路整体的原理是通过单片机给定PWM波形信号,使驱动模块驱动电机的运转,通过调节PWM波的占空比,使得电动机的平均供电电压得到控制,从而调节电动机的转速,在系统里,转速反馈模块会及时反应实际转速,通过和设定转速的比较,单片机会调节实际转速,使其和设定转速越来越趋近,这就是转速反馈控制达到的效果[19]。

                             图3.15 系统总体设计电路图

4 系统软件设计
在直流调速系统中,对三个部分进行编写程序,分别为键盘控制程序、显示程序和主电路控制程序,这三个程序分别实现了键盘的按键控制功能、显示电动机转速的功能和整个系统的运行控制功能。下面我对这三大程序分别进行设计介绍并给出设计流程图[20]。
4.1 键盘控制程序设计
键盘控制流程图如下图所示,编写的程序经过初始化、识别是否有键入,经过接受指令和数据,进行分析并作出处理,然后传达给单片机。下面还给出了部分键盘控制设计的程序。

  
图4.1 键盘控制程序流程图

部分键盘控制设计程序:
  1. #include"keyboard.h"
  2. bit key_flag,flag_1;
  3. uchar flag;
  4. void delay_ms(uint z)
  5. {
  6.               uint x;
  7.               uchar y;
  8.               for (x=z;x>0;x--)
  9.               for (y=250;y>0;y--);
  10. }
  11.                                 {  
  12.                                                         case 0xee:num = 1;flag++;flag_1=1;
  13.                                               break;
  14.                                                         case 0xde:num = 2;flag++;flag_1=1;
  15.                                               break;
  16.                                               case 0xbe:num = 3;flag++;flag_1=1;
  17.                                               break;
  18.                                                         case 0x7e:num = 10;
  19.                                               break;
  20.                                           }
  21.                                           while(temp != 0xf0);
  22.                                    do
  23.                                           {
  24.                                                         temp = DUAN_KOU;
  25.                                                         temp = temp & 0xf0;
  26.                                           }            
  27.                                             while(temp != 0xf0);
  28.                                 {
  29.                                                         case 0xeb:num = 7;flag++;flag_1=1;
  30.                                               break;
  31.                                                         case 0xdb:num = 8;flag++;flag_1=1;
  32.                                           return num;
  33. }
复制代码

4.2 显示程序设计
    显示程序流程图如下图所示,编写的程序经过初始化、清屏进入串口驱动模式,经过接受指令和数据,进行分析读取字符串,然后在显示屏上正确显示出来。下面还给出了部分显示设计的程序。




  
图4.2显示程序流程图

部分显示设计的程序:
  1. #include"12864_ser.h"
  2. void write(bit start, unsigned char ddata);
  3. void sendbyte(unsigned char bbyte);
  4. void delaynms(unsigned int di);
  5. void lcdinit(void);
  6. {
  7.   delaynms(100);
  8.   PSB=0;                 
  9.   RESET=0; delaynms(1); RESET=1;
  10.   CS=1;
  11.   write(0,0x30);
  12.   write(0,0x02);
  13.   write(0,0x06);
  14.   write(0,0x0c);
  15.   write(0,0x01);
  16. }
  17. void clr_12864()
  18. void write(bit start, unsigned char ddata)
  19.               if(x==1)
  20.                  write(0,0x80+y);      
  21.               else if(x==2)
  22.                  write(0,0x90+y);      
  23.               else if(x==3)
  24.                  write(0,0x88+y);      
  25. else if(x==4)
  26.                  write(0,0x98+y);     
  27.               //pos=x+y;      
  28.               //sendbyte(0xf8);delaynms(5);sendbyte(pos);delaynms(2);
  29. }
  30. {
  31.               if(x==1)
  32.                  write(0,0x80+y);      
  33.               else if(x==2)
  34.                  write(0,0x90+y);      
  35.               else if(x==3)
  36.                  write(0,0x88+y);        
  37.               else if(x==4)
  38.                  write(0,0x98+y);      
  39.               //pos=x+y;        
  40.               //sendbyte(0xf8);delaynms(5);sendbyte(pos);delaynms(2);
  41. }

  42. void print(uchar *str)
  43.               while(*str!='\0')
  44.               {
  45.                             write(1,*str);
  46.                             str++;
  47.               }
复制代码

4.3 主控程序设计
主控程序流程图如下图所示,编写的程序经过初始化、通过给定初值,使定时器中断得以控制,从而产生相应的PWM波形,使驱动芯片动作,控制电动机的正转、反转和停止,在这个过程里,速度检测反馈模块会把实时转速反馈给单片机,从而知道与设定转速是否相符,达到转速反馈控制的目的[21]。下面还给出了部分设计的程序。



   
图4.3 主控程序流程图
部分主控程序设计:
  1. #include"12864_ser.h"
  2. #include"keyboard.h"
  3. uint counter,sheding,timer,PWM,TS,ZF,PK,keynum,keynum1,keynum2,temp;
  4. uchar qian,bai,shi,ge;
  5. extern uchar flag;
  6. extern bit flag_1;
  7. uchar digit[] ={"0123456789"};
  8. uchar table[4];
  9. sbit P01=P0^1;
  10. sbit P02=P0^2;
  11. void Init_Timer1(void)
  12. {
  13. TMOD |= 0x10 | 0x40;                                
  14. TH1=0xFF;               
  15. TL1=255;      
  16. ET1=1;      
  17. TR1=1;          }
  18. void Init_Timer0(void)
  19. {
  20. TMOD |= 0x01;                  
  21. TH0=(65536-50000)/256;               
  22. TL0=(65536-50000)%256;
  23. ET0=1;      
  24. TR0=1;        }
  25. void main(void)
  26. {
  27. P01=0;  
  28.               P02=0;
  29.               write(1,digit[ge]);
  30.               Init_Timer1();
  31.               Init_Timer0();
  32.               TS=70;
  33.               gotoxy(3,2);
  34.               write(1,':');            
  35.               while(flag<4)
  36.                                             {            
  37.                                                                         table[flag-1]=get_key_val();
  38.                                                                         if(flag_1==1)
  39.                                                                                     {
  40.                                                                                     write(1,digit[table[flag-1]]);
  41.                                                                                     flag_1=0;
  42.                                                                                     }            
  43.                                             }
复制代码


5 实物的直流调速实现与调试
基于STC89C51单片机控制的直流调速系统实物中主要包含了单片机控制部分、电路保护部分、速度检测反馈部分、按键部分和显示部分。实物采用数字键盘控制电动机转速,实现了电动机的启停、正转、反转、调速的功能。键盘上的A键是启停控制键、B键是正反转控制键、*号键为复位键。显示器上可以显示出电动机的设定转速和实际转速。通过速度反馈和分析对比,单片机会控制实际转速越来越趋近设定转速。达到对速度的控制目的。具体的实物模型如图5.1所示。

图5.1 实物模型图

图5.1 实物模型图
具体的调试和分析过程如下:
1、在打开单片机供电电源和电动机驱动模块电源后,实物显示初始状态,设定转速和实际转速均为0,在键盘上按键设定一个转速如4500 r/min,则电动机开始启动并加速,经过一段时间实际速度会越来越趋向于4500 r/min,直到最后达到和设定转速十分靠近。具体的调试效果如图5.2。在操作过程中,A键可控制电机的启停。按下A键电动机会停止,再按一次电动机会重新运转。


图5.2 调试效果图

2、按下正反转控制键B后,电动机会改变转速方向,经过一段时间,电动机自动调节转动方向,显示器上显示反转4500 r/min。需要停止转动可以按键A。调试效果如图5.3。

图5.3 调试效果图

3、按下复位按钮*号键,电动机会恢复到初试状态,设定速度和实际速度都将置零。
4、在电动机运转过程中给它一个干扰,如给电动机运行一个阻碍,电动机实际速度会变慢,经过速度反馈给单片机,单片机经过对比并调节PWM波形,控制PWM占空比来调节电动机的速度。电动机会渐渐恢复到初始设定的转速上来,体现了系统的速度反馈和抗干扰的功能。具体调试如图5.4,图5.5。

图5.4 给定干扰时的效果图
图5.5 调节恢复后的效果图

实物的原件清单在下表中给出:
表5.1实物原件清单
名称
个数
名称
个数
STC89C51单片机
1
光电门测速模块
1
12864液晶显示器
1
4*4按键控制面板
1
130直流电动机
1
保险管
1
L298芯片驱动模块
1
晶振
1
电位器
1
排阻
1
复位键
1
电源接口
4
电阻
若干
电容
若干

结 论
设计是学生理论联系实际的桥梁,是对课本知识的扩展和补充,是我们体察工程实际问题复杂性、学习和工作的又一次尝试。此次设计使我充分认识到生产的灵活性和多变性。设计中培养了我们发现问题、解决问题的能力,在自我分析和理解的基础上再经过指导老师的指导,经过半年多的不懈努力,此次设计终于是完成了。
我深深的体会到,设计不同于平时的作业,在设计中需要自己做出决策,即自己确定方案、选择流程、查取资料、进行过程和设备计算,并对自己的选择做出论证和核算,经过反复的分析比较,择优选定最理想的方案和合理的设计。为了写好这一设计,我查阅了很多的参考资料,参照了同类工程处理设计的成功经验,根据本设计的具体情况和要求,做出了符合实际要求的、能够解决实际问题的设计。同时,通过此次设计,培养了我分析和解决设计实际问题的能力。我相信这种严谨的学习方法、正确的设计思想、实事求是、严肃认真和高度责任感的工作作风对以后的工作和学习是大有裨益的。
本次完成的单片机控制PWM直流调速系统的设计能够实现通过单片机STC89C51产生PWM信号对130直流电动机的转速控制。在设计中,通过对系统各大模块的分析应用,使自己的设计基本达到了实现直流电动机调速的要求。由于时间和经费的限制,本次设计基本上完成了硬件部分的设计、产生PWM控制信号关键软件部分的设计和实物模型。从而形成了一个比较完整的基于单片机控制PWM直流调速系统,达到了预期的目标。
目前,PWM直流调速系统已经在日常生活中应用比较频繁,但通过本次设计,我还是学到和巩固了很多以前没掌握或粗浅了解的知识,使我对PWM直流调速系统有了更深次的了解和掌握,并通过本次硬件和软件的设计,相信能够为我以后的工作提供相当宝贵的经验和基础。

完整的Word格式文档51黑下载地址:
基于AT89C51单片机控制的双闭环直流调速系统设计.doc (3.09 MB, 下载次数: 22)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表