论文题目 基于单片机的直流电机控制系统的设计
学位类别 工学学士
学科专业 自 动 化
作者姓名
导师姓名
完成时间 2010年5月20日
中 文 摘 要
本文介绍了基于单片机的直流电机PWM调速的基本方法,直流电机调速的相关知识以及PWM调速的基本原理和实现方法。重点介绍了基于MCS一51单片机的用软件产生PWM信号以及信号占空比调节的方法。对于直流电机速度控制系统的实现提供了一种有效的途径。
直流电动机具有优良的调速特性,调速平滑,方便,调速范围广,过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程中自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统体积小、结构简单、可靠性高、操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。
The Design of DC Motor Speed Control System Based on The SCM
ABSTRACT
This paper introduces a kind of method of DC —motor speed modification based on PWM theory by the SCM.Showing some relative knowledge upon the DC—motor timing,the basic theory and the way to implement.And it emphasizes on the way for carrying out PW M signals based on MCS一51.This paper still provides a method for modifying the speed of DC—motor by way of taking count of data and time delay by software.It offers a sort of efficient method for the DC motor speed—controlling system.
DC Motor Speed Control has excellent characteristics, speed smooth and easy, and speed a wide range of Shock, able to withstand the impact of frequent load can be achieved without frequent fast-starting, braking and reverse; meet the production process automation systems various special operating requirements. Drives using micro-computer control, the development of electric drive is one of the major directions. Using computer control, the speed control system as a whole size, simple structure, high reliability, ease of maintenance and operation. Stable operation at the motor speed precision can be achieved at higher levels, static and dynamic indicators can better meet the industrial production of high-performance electric transmission requirements.
KEY WORD:SCM; PWM; DC —motor speed modification
目 录
第一章 直流电机调速分析及研究意义 1
1.1 直流电机调速原理 1
1.2 PWM基本原理及其实现方法 2
1.2.1 PWM基本原理 2
1.3 实现方法 3
1.4 控制程序设计 3
1.5 研究背景 4
1.6 论文研究的目的与意义 4
1.6.1 目的 4
1.6.2 意义 4
第二章 系统硬件设计 6
2.1系统方案 6
2.2设计要求 6
2.3功能简介 6
2.4主要内容 6
2.5电机调速控制模块 7
2.5.1方案选择 7
2.5.2 PWM调速工作方式 8
2.5.3 PWM调脉宽方式 8
2.5.4 PWM软件实现方式 8
2.6系统分析与硬件设计 9
2.6.1单片机最小系统的设计 9
2.6.2电源电路设计 11
2.6.3直流电机驱动电路设计 14
2.6.4显示模块设计 15
2.6.5键盘电路设计 16
2.6.6元件选择与参数计算 17
2.7设计所需部分器件 20
2.8技术路线 20
2.9 应用软件的编制、调试 22
第三章 系统软件的设计 23
3.1程序的总体设计 23
第四章 调试与仿真 24
4.1仿真图形 24
第五章 结论和总结 26
参 考 文 献 27
致 谢 28
附程序清单 28
第一章 直流电机调速分析及研究意义1.1 直流电机调速原理
根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电机来说,人为机械特性方程式为:
(公式 1-1)
式中,—— 额定电枢电压、额定磁通量;
,--与电机有关的常数;
,——电枢外加电阻、电枢内电阻;
,——理想空载转速、转速降。
分析(1)式可得.当分别改变、 和时,可以得到不同的转速,从而实现对速度的调节。由于=,当改变励磁电流时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流,和磁通量只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻时,会使机械特性变软,导致电机带负载能力减弱。对于他励直流电机来说,当改变电枢电压时,分析人为机械特性方程式,得到人为特性曲线[1-2]。
如图1-1所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。改变电枢电压可通过多种途径实现,如晶闸管供电速度控制系统、大功率晶体管速度控制系统、直流发电机供电速度控制系统及晶体管直流脉宽调速系统等。
图1-1 直流电动机机械特性曲线 图1-2 电枢电压“占空比”与平均电压关系
1.2 PWM基本原理及其实现方法1.2.1 PWM基本原理
PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为,设占空比为=/,则电机的平均速度为:
=* (公式 1-2)
式中, —— 电机的平均速度;
--电机全通电时的速度(最大);
=/--占空比。
由公式1-2可见,当我们改变占空比时=/,就可以得到不同的电机平均速度 ,从而达到调速的目的。严格地讲,平均速度与占空比=/并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系[3]。
1.3 实现方法
PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍利用单片机对PWM信号的软件实现方法。MCS一51系列典型产品AT89S52具有两个定时器 和 。通过控制定时器初值和 ,从而可以实现从S52的任意输出口输出不同占空比的脉冲波形。由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为,定时器/计数器为位,则定时器初值与定时时间的关系为:
(公式 1-3)
式中,—— 定时器定时初值;
—— 一个机器周期的时钟数。随着机型的不同而不同。在应用中,应根据具体的机型给出相应的值。这样,我们可以通过设定不同的定时初值 ,从而改变占空比=/,进而达到控制电机转速的目的[4]。
1.4 控制程序设计
控制程序的设计有两种方法:软件延时法和计数法。软件延时法的基本思想是:首先求出占空比=/,再根据周期分别给电机通电个单位时间,所以=/。然后,再断电个单位时间,所以= 。改变和的值,从而也就改变了占空比。计数法的基本思想是:当单位延时个数求出之后,将其作为给定值存放在某存储单元中。在通电过程中,对通电单位时间的次数进行计数,并与存储器的内容进行比较。若不相等,则继续输出控制脉冲,直到计数值与给定值相等,使电机断电。
软件采用定时中断进行设计。如图2-12所示,单片机上电后,系统进入准备状态。当按动按钮后,执行相应的程序,根据P3.0或P3.1输出的高电平决定直流电机的正反转。根据不同的加、减速按钮,调整P3.0或P3.1输出高低电平时的占空比,从而可以控制P3.0或P3.1输出高低电平时的延时时间,进而控制电压的大小来决定直流电机转速。
1.5 研究背景
随着社会的发展,各种智能化的产品日益走入寻常百姓家。为了实现产品的便携性、低成品以及对电源的限制,小型直流电机应用相当广泛。对直流电机的速度调节,我们可以采用多种办法,本文在给出直流电机调整和PWM实现方法的基础上,提供一种用单片机软件实现PWM 调速的方法。
1.6 论文研究的目的与意义1.6.1 目的
对基于MCS-51系列单片机实现直流电机调速系统进行研究和设计,能够在不同的按钮作用下分别实现直流电机的停止、加速、减速、正转、反转控制;能够实现基于MCS-51系列单片机的直流电机PWM的调速设计。
1.6.2 意义
(1) 直流电动机有良好的起动、制动性能, 宜于在广范围内平滑调速, 至今在金属切削机床、造纸机等需要高性能可控电力拖动的领域中仍有广泛的应用。直流调速系统在不断发展, 尤其是近年来, 国内外各厂家竞相推出全数字直流调速装置, 使得直流调速系统在理论和实践方面都迈上了一个新的台阶。以往的直流调速装置是全模拟式设备。变电压调速是直流调速的主要方法, 常用晶闸管可控整流器做可控直流电源。这些旧设备急待更新改造。另外, 目前高等院校的电力拖动自动控制系统的实验教学, 还采用全模拟式的实验设备, 尚无适合于教学的全数字式直流调速实验装置, 有待于开发。
(2) 本文研究的基于MCS-51系列单片机的直流电机PWM调速系统属于微机控制领域,通过对单片机的学习和研究对自己以后从事硬件产品的开发有一定的实际指导意义。
(3) 将所学的知识理论和实践想结合,为以后再此基础上结合相关领域设计智能化产品和改进某些产品性能具有很好的实践意义。
第二章 系统硬件设计2.1系统方案
本设计以AT89S52单片机为核心,以5个弹跳按钮作为输入达到控制直流电机的停止、加速、减速、正转、反转。在设计中,采用PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
2.2设计要求
(1)能实现通过调节给定的电压对直流电机的速度及转向控制;
(2)通过按钮能实现直流电机的加速、减速、等变速及转向控制;
2.3功能简介
直流电动机具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、停止和反转;能满足生产过程自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现自动化,结构简单,可靠性高,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于单片机性能优越,具有较佳的性能价格比,所以单片机在工业过程及设备控制中得到日益广泛的应用。PWM 调速系统与可控整流式调速系统相比有下列优点:由于PWM 调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好:同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。本文所介绍的系统就是一个采用典型的开环调速原理组成的单片机PWM 调速系统[4-5]。
2.4主要内容
采用单片机构成的直流电动机数字PWM 调速系统,其控制核心主要由最小系统、电源模块(12v 5v)、电机驱动电路、按键(加速、减速、急停、正转、反转)、显示模块(四位数码管)、直流电机组成。系统采用L298N芯片作为PWM 驱动直流电动机的供电主回路。单片机通过软件处理输出PWM信号, 实现了直流电动机的速度控制,在运行中获得了良好的动静态性能。由于系统性价比高,结构简单,具有实用价值和推广价值。在介绍了基于单片机用PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现方法。重点介绍了基于AT89S52单片机的用软件产生PWM信号的途径,并介绍了一种独特的通过软件定时中断实现PWM信号占空比调节的方法。对于直流电机速度控制系统的实现提供了一种有效的途径。
(1)键盘识别:通过P1口的低电平输入识别不同的按键。
(2)通过对单片机程序烧录实现对直流电机的停止、加速、减速、正转、反转控制。
(3)由于单片机的驱动能力不强,驱动直流电机需要很强的电流所以必须有外围的驱动电路,因此本设计采用L298芯片放大单片机微弱的电流。
控制原理:89S52单片机为核心的直流电机控制系统控制简图如图2-1所示,由软件转换成PWM 信号,并由P3.0、P3.1输出,经驱动电路输出给电机,从而控制电机得电与失电。软件采用定时中断进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的预定值,从而可以控制P3.0/ P3.1输出高低电平时的占空比,进而控制电压的大小。控制程序应用于电机的加减速。
在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。经实验发现,脉冲频率在40Hz以上,电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10Hz以下,电动机转动有明显跳动现象。实验证明,脉冲频率在15Hz-30Hz时效果最佳。而具体采用的频率可根据个别电动机性能在此范围内调节。通过 P3.0输入高电平信号P3.1输入低电平与P3.0输入低电平P3.1输入信号分别实现电动机的正转与反转功能。通过对信号占空比的调整来对直流电机进行调节。
2.5电机调速控制模块2.5.1方案选择
方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用驱动芯片L298N驱动直流电机,L298N具有驱动能力强,外围电路简单等优点,因此我们采用方案三。
2.5.2 PWM调速工作方式
方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。
方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。
由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。
2.5.3 PWM调脉宽方式
调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。
2.5.4 PWM软件实现方式
方案一:采用软件延时方式,在引入中断之后,将有一定的误差。
方案二:采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us,综合考虑我们采用方案二[6-7]。
2.6系统分析与硬件设计
键盘向单片机输入相应控制指令,由单片机通过P3.0与P3.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、驱动电动机控制电路,实现电动机转向与转速的控制,电动机正转,反转,加速,减速、急停。
总体设计方案的硬件部分详细框图如图2-1所示:
图2-1 系统硬件框图
2.6.1单片机最小系统的设计
单片机最小系统:所谓最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机,晶振电路和复位电路。
设计部分分析:
1、单片机AT89S52
AT89S52 8位单片机是MSC-51®系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51®设计结构后,利用自身优势技术——(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。
AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。
图2-2 DIP-40封装89S52引脚图
2、 复位电路及时钟电路
复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。
上电复位 手动复位
有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。
高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。
最小系统如图:
图2-3 最小系统
2.6.2电源电路设计
直流稳压电源的基本原理:直流稳压电源一般有电源变压器T、整流滤波电路及稳压电路所组成,基本框图如下。
图2-4 直流电源原理
各部分作用:
(1)电源变压器T的作用是将220V的交流电压变换成整流滤波电路所需要的交流电压Ui。变压器副边与原边的功率比为P2/P1=n,式中n是变压器的效率。
(2)整流电路:整流电路将交流电压Ui变换成脉动的直流电压。再经滤波电路滤除较大的波纹成分,输出波纹较小的直流电压U1。常用的整流滤波电路有全波整流滤波、桥式整流滤波等。
图2-5 整流电路
(3)滤波电路:各滤波电路C满足 RL-C=(3~5)T/2,式中T为输入交流信号周期,RL为整流滤波电路的等效负载电阻。
图2-6 滤波电路
(4)稳压电路:常用的稳压电路有两种形式:一是稳压管稳压电路,二是串联型稳压电路。二者的工作原理有所不同。稳压管稳压电路其工作原理是利用稳压管两端的电压稍有变化,会引起其电流有较大变化这一特点,通过调节与稳压管串联的限流电阻上的压降来达到稳定输出电压的目的。它一般适用于负载电流变化较小的场合。串联型稳压电路是利用电压串联负反馈的原理来调节输出电压的。集成稳压电源事实上是串联稳压电源的集成化。常用稳压电路归纳如下表:
电路名称
典型电路
输出电压及有关参数
特点与用途
稳压管稳定电压
电路简单,适用于输出电压恒定,负载电流变化小的场合,常用作基准电源
可调稳压电源
电路引入电压串联负反馈,使输出电压更稳定且可调, 可获得负电源
串联型稳
压电路
电路较复杂,输出电压可调,输出电流较大,应用范围广
集成稳压
电源
系列为正电源
系列为负电源
输出电压固定,为5V,9V,12V,15V,18V等,可根据需要选用
电路简单,输出电压固定
2.6.3直流电机驱动电路设计
由于单片机P3口输出的电压最高才有5V,难以直接驱动直流电机。所以我们需要使用恒压恒流桥式2A驱动芯片L298N来驱动电机。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。同时需要加四个二极管在电机的两端,防止电机反转的时候产生强大的冲击电流烧坏电机[8-9]。具体驱动电路如下图2-7:
图2-7 驱动电路
2.6.4显示模块设计
本次设计显示模块采用的是SM410564 四位共阳数码管显示,因为单片机的输出端口输出的电流小,点亮数码管的能力不大,所以需要采用三极管放大输出电流,此次三极管采用的是C9013,具体放大电路如图示:
图2-8 放大电路
2.6.5键盘电路设计
正转、反转、急停、加速、减速五个开关分别与单片机的P1.0,P1.1,P1.2,P1.3,P1.4相连,然后再与地相连。急停实现直流电机的停转,正转实现直流电机的正转,反转实现直流电机的反转,加速实现直流电机的加速,减速实现直流电机的减速,其电路如图:
图2-9 按键电路
2.6.6元件选择与参数计算
(1)整流电路参数
输出电压平均值:Uo(AV)=2
输出电流平均值:IO(AV)=
平均整流电流:ID(AV)=
最大反向电压:URM=
整流二极管的选择(考虑电网):
(2)滤波电路参数
滤波电容选择:RLC=(3~5)
一般选几十至几千微法的电解电容,耐压>
(3)实际计算过程
1.要使7812正常工作,必须保证输入与输出之间维持大于2V的压降,因此7812输入端直流电压必须保证14V以上。7812输入端的电流是对变压器副边输出电压U(t)整流、滤波后得到的。假设整流电路内阻为0,负载电流为0,7812输入端有最大电压U=1.414Uef,Uef是U(t)有效值。由于滤波电容不可能无限大,所以U<1.414Uef,根据经验可知U=1.2Uef,可知Uef=14.4V,考虑到整流桥经过两个二极管约有1.4V的压降,得变压器可取15V。
2.变压器选择:变压器选择双15V变压,考虑到电流不需要太大,最大电流为1A,实际选择变压器输出功率为10W,可以很好的满足要求。
3.整流桥:考虑到电路中会出现冲击电流,整流桥的额定电流是工作电流的2~3倍。选取RS301(100V,3A)即可,实际购买过程中选择了RS307(700V,3A)也符合设计要求。
4.滤波电容:考虑到对纹波电压要求比较高,故选择了2200μF耐压值为25V以及100μF耐压值50v的电解电容。
5.去耦电容:去耦电容的选择是7812及7805芯片要求的,查手册可知分别为0.01μF、,用来滤除高频分量防止产生自激。
6.为了防止负载产生冲击电流,故在输出端加入2200μF、耐压值为25V的电解电容。
7.7805支路的元件参数基本相同。
至此,所有元件的参数都已经确定。
(4)12v、5v电源电路
图2-10 12v直流电源电路图
图2-11 5v直流电源电路图
系统整体硬件电路图如图2-12示:
图2-12 系统硬件电路图
2.7设计所需部分器件
AT89S52、L298N、12MHZ晶振、四位共阳数码管、电容、电阻、弹跳开关等。
2.8技术路线
P3.0/P3.1脉冲宽度调制器(PWM) 通道,它们产生可由编程决定宽度和间隔的脉冲。脉冲的间隔周期是由一个FOR循环控制,来产生不同的占空比。单片机产生的PWM信号不能直接驱动电机,这就需要设计合适的驱动电路。我们可借助于恒压恒流桥式2A驱动芯片L298N来完成对电动机的驱动。具体的设计方法是通过Keil C编程,Proteus联合仿真来实现的。
Proteus是一种低投资的电子设计自动化软件,提供Schematic Drawing,SPICE仿真与PCB设计功能,这一点proteus 与 multisim比较类似,只不过它可以仿真单片机和周边设备,可以仿真51系列、AVR,PIC等常用的MCU,与keil和MPLAB不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真,例如373,led,示波器,Proteus提供了大量的元件库有RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,⋯编译方面支持Keil和MPLAB,里面有大量的例子参考.
(1) Proteus可提供的仿真元件资源Proteus软件提供了可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。
(2) Proteus可提供的仿真仪表资源虚拟仪器仪表的数量、类型和质量,是衡量仿真软件实验室是否合格的一个关键因素。在Proteus软件中,理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段
(3) Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。
Keil是德国开发的一个51单片机开发软件平台,最开始只是一个支持C语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过KEIL的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在KEIL的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞大,要远远超过伟福等厂家软件用户群,操作有不懂的地方只要找相关的书看看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。
(1)Keil的μVision2可以进行纯粹的软件仿真(仿真软件程序,不接硬件电路);也可以利用硬件仿真器,搭接上单片机硬件系统,在仿真器中载入项目程序后进行实时仿真;还可以使用μVision2的内嵌模块Keil Monitor-51,在不需要额外的硬件仿真器的条件下,搭接单片机硬件系统对项目程序进行实时仿真。
(2)uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。DDE界面和shift语言支持自动程序测试。
2.9 应用软件的编制、调试
使用Keil 软件工具时,项目开发流程和其它软件开发项目的流程极其相似。
(1) 创建一个项目,从器件库中选择目标器件,配置工具设置。
(2) 用C语言或汇编语言创建源程序。
(3) 用项目管理器生成应用。
(4) 修改源程序中的错误。
(5) 测试,连接应用。
第三章 系统软件的设计3.1程序的总体设计
利用P3口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的电平的持续时间,达到使电机正转、反转、加速、减速、停转等目的[10-11]。由软件编程从P3.0/P3.1管脚产生PWM 信号,经驱动电路输出给电机,从而控制电机得电与失电。软件采用延时法进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平时实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的占空比,从而可以控制P3.0/ P3.1输出高低电平时的有效值,进而控制电机的加减速。
其总体流程图如图3-1示:
图3-1 总体程序流程图
第四章 调试与仿真4.1仿真图形
初始状态,直流电机有如图示4-1运行效果
图4-1 电机半速运转
按下急停键,直流电机有图4-2的停止运行结果。
图4-2 电机停转
按下加速键,直流电机有图4-3的正向加速运行结果。
图4-3 电机正转加速
按下减速键,直流电机有图4-4正向减速运行结果。
图4-4 电机正转减速
按下反转键,直流电机有图4-5反向加速运行结果。
图4-5 电机反转加速
第五章 结论和总结
经过将近几个月的努力,终于完成了毕业设计。在 Protuse和Keil c中仿真了出来,同时也做出了实物,基本上实现了直流电机的停止、加速、减速以及转向控制。
毕业设计是每个大学生必须面临的一项综合素质的考验,如果说在过去三年里,我们的学习是一个知识的积累过程,那么现在的毕业设计就是对过去所学的知识的综合应用,是对理论进行深化和重新认识的实践活动。在这近两个月的毕业设计中,我们有艰辛的付出,也有了收获。知识固然得到了巩固和提高,但我相信在实践中的切身体会将会使我在以后的工作和学习中终身受用。
首先,学习能力和解决问题的信心都得到了提高。在毕业设计的过程中,遇到了很多困难,但是在查阅了很多有关书籍和向同学请教后终于解决了。通过这次毕业设计,我不仅对理论有了更深一步的认识,还培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。
其次,我们的毕业设计之所以能基本完成,要深深地感谢我们的指导老师的悉心指导和帮助。
参 考 文 献
[1] 顾绳谷.电机及拖动基础[M],北京:机械工业出版社,2007.
[2] 杨斌文,梅英,徐宇明.并励直流电动机的机械特性分析(英文)[J],湖南文理学院学报(自然科学版),2006,Vol.18,NO.2:60-61,68.
[3] 王鉴光.电动机控制系统[M],北京:北京机械工业出版社,1994.
[4] 王小明.电动机的单片机控制[M],北京:北京航空航天大学出版社,2002.
[5] 张琛.直流无刷电动机原理及应用[M],北京:北京机械工业出版社,1996.
[6] 袁淑芬.实现直流无刷电动机调速控制的一种新型方法[J],长春理工大学学报,2009,Vol.25,NO.1:113-115.
[7] 吴宝启,张元伟,刘阳.基于单片机的无刷直流电机控制方案设计[J],煤矿现代化,2009,Vol.16,NO.6:74.
[8] 刘小春,首珩.无刷直流电动机的单片机控制[J],自动化技术与应用,2009,Vol.21,NO.3:129-131.
[9] 周兴华.用单片机控制直流电机变速[J],电子制作,2006,Vol.34,NO.6:34-35.
[10] 岳东海,颜鹏.直流电机PWM无级调速控制系统设计[J],价值工程,2010,Vol.14,NO.2:135-136.
[11]郭浩.3A驱动能力PWM直流电机控制电路的制作[J],电子制作,2007,Vol.9,NO.10:42-43.
致 谢
经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,想要完成这个设计还是比较困难的。
在这里首先要感谢我的导师老师。老师平日里工作繁多,但在我做毕业设计的时期,一直关心我的论文进展,从设计草案的确定和修改,中期检查,后期详细设计等整个过程中都给予了我很大的关心。然后还要感谢大学四年来所有的老师,为我们打下电气专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。
最后感谢我的母校——四年来对我的大力栽培。
附程序清单
- //毕业论文设计:基于单片机的直流电机控制系统的设计//
- #include<at89x51.h>
- #define unchar unsigned char
- #define unint unsigned int
- unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,
- 0xc6,0xa1,0x86,0x84,0xff,0xbf}; //显示代码
- unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7}; //位选口
- unsigned char dispbuf[4]={0,0,0,0};
- unsigned char dispbitcnt;
- unint mstcnt;
- unint i;
- unint count=0;
- unchar tp=0;
- void ledshow();
- void keyscan();
- void delay();
- void just();
- void turn();
- void motorstop();
- void speedup();
- void speeddown();
- void main(void)
- {
- P3_0=1;
- P3_1=0;
- dispbuf[0]=16;
- TMOD=0x02;
- TH0=0x06;
- TL0=0x06;
- TR0=1;
- ET0=1;
- EA=1;
- while(1)
- {
- ledshow();//数码管显示
- keyscan();//键盘扫描
- }
- }
- //延时10ms程序
- void delay()
- {
- unsigned char i,j;
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
- }
- //键盘扫描程序
- void keyscan()
- {
- unchar temp=0;
- P1=0xff;
- if((P1&0x1f)!=0x1f)
- {
- delay();
- if((P1&0x1f)!=0x1f)
- {
- temp=P1&0x1f;
- switch(temp)
- {
- case 0x1e:
- just();break;
- case 0x1d:
- turn();break;
- case 0x1b:
- motorstop();break;
- case 0x17:
- speedup();break;
- case 0x0f:
- speeddown();break;
- }
- }
- }
- while((P1&0x1f)!=0x1f);
- }
- //数码管显示程序
- void ledshow()
- {
- /*
- P0=dispcode[dispbuf[dispbitcnt]];
- P2=dispbitcode[dispbitcnt];
- dispbitcnt++;
- if(dispbitcnt==4)
- {
- dispbitcnt=0;
- }
- */
- P2=0x01;P0=dispcode[dispbuf[0]];
- for(i=0;i<700;i++);
- P2=0x02;P0=dispcode[dispbuf[1]];
- for(i=0;i<700;i++);
- P2=0x04;P0=dispcode[dispbuf[2]];
- for(i=0;i<700;i++);
- P2=0x08;P0=dispcode[dispbuf[3]];
- for(i=0;i<700;i++);
-
- dispbuf[1]=tp/100;
- dispbuf[2]=(tp%100)/10;
- dispbuf[3]=tp%10;
- }
- //中断服务程序
- void t0(void) interrupt 1 using 0
- {
- /*
- mstcnt++;
- if(mstcnt==8)
- {
- mstcnt=0;
- P0=dispcode[dispbuf[dispbitcnt]];
- P2=dispbitcode[dispbitcnt];
- dispbitcnt++;
- if(dispbitcnt==4)
- {
- dispbitcnt=0;
- }
- }
- */
- if(count>100)
- count=0;
- if(count>tp)
- P3_7=0;
- else P3_7=1;
- count++;
- }
- void just()
- {
- P3_0=1;
- P3_1=0;
- dispbuf[0]=16;
- }
- void turn()
- {
- P3_0=0;
- P3_1=1;
- dispbuf[0]=17;
- }
- void motorstop()
- {
- tp=0;
- }
- void speedup()
- {
- if(tp>99)
- tp=100;
- else tp++;
- }
- void speeddown()
- {
- if(tp<1)
- tp=0;
- else tp--;
- }
复制代码
|