当前位置:文档之家› 【最新版】PWM控制的直流电动机调速系统的设计_毕业论文

【最新版】PWM控制的直流电动机调速系统的设计_毕业论文

中国地质大学长城学院本科毕业设计

题目PWM控制的直流电动机

调速系统的设计

系别信息工程系

学生姓名刘军

专业电气工程及其自动化

指导教师王新旺

职称讲师

2013 年 5 月20 日

PWM控制的直流电动机调速系统设计

摘要

直流电机具有良好的线性调速特性,简单的控制性能,启动转矩大,能在宽广的范围内平滑、经济地调速,转速控制容易,调速后效率很高。

转速是直流电机运行中的一个重要物理量,如何准确、快速测量出电机转速,并且实现对电机的调速在实际工作中具有非常大的使用价值。直流电机具有非常好的调速性能,目前,在一些对调速性能要求比较严格的场合中,主要使用的还是直流调速系统。

本设计是以单片机AT89C51和L298控制的直流电机PWM调速系统。利用AT89C51芯片进行低成本直流电动机控制系统的设计,能够简化系统构成、降低系统成本、增强系统性能、满足更多应用场合的需要。系统实现对电机的正转、反转、急停、加速、减速的控制,以及PWM的占空比在LED上的实时显示。

关键词:直流电机;转速;AT89C51;L298;PWM调速

ABSTRACT

DC motor a wide range of smooth, economical speed, speed, easy control, speed control after the important physical quantity in the operation of the DC motor, practical work with a very large value in use of the motor speed control. DC motor some occasions more stringent requirements on the speed performance, the main use of the DC speed control system.

This design is DC motor PWM speed control system which is based on single chip microcomputer AT89C51 and L298 to control. Using AT89C51 chip to design the low-cost dc motor control system, which can simplify the system structure, reduce the system cost, enhance the system performance, meet the needs of more applications. System control the move forward, reverse, stop, acceleration and deceleration of the motor, and PWM duty ratio in real-time display on LED.

Keywords:DC Motor;Speed;AT89C51;L298;PMW Speed Automatic

目录

1绪论 (1)

1.1研究背景 (1)

1.2国内外发展现状 (1)

1.3设计目的和意义 (2)

2直流电动机调速的概述 (4)

2.1直流电机调速原理 (4)

2.2直流调速系统实现方式 (5)

2.3控制程序设计 (5)

3总体设计方案 (7)

3.1设计思路 (7)

3.2总体设计规划 (7)

3.3系统框架设计 (8)

4系统硬件设计 (9)

4.1系统基本组成 (9)

4.1.1硬件模块组成 (9)

4.1.2单片机整个控制模块 (9)

4.2单片机AT89C51简介 (9)

4.3复位电路及时钟电路 (10)

4.5 LED数码管显示 (12)

4.5.1 LED简介 (12)

4.5.2 LED数码管和单片机的连接 (12)

4.6独立键盘控制模块 (13)

5系统的软件设计 (14)

5.1系统软件设计分析 (14)

5.2系统程序设计分析 (14)

5.2.1主程序设计 (14)

5.2.2按键延时程序 (16)

5.2.3中断子程序 (17)

5.3PWM脉宽控制 (17)

5.4仿真图 (17)

5.5仿真结果分析 (18)

结论 (21)

参考文献 (22)

致谢 (23)

附录 (24)

1绪论

1.1研究背景

在现代化工业中,电动机作为电能转换的传动装置被广泛应用于国防、石油化学、机械、冶金等工业部门中,随着对生产工艺、产品质量的要求不断提高和供应量的增长,越来越多的生产机械要求能实现自动调速。

近年来,随着科技的进步,直流电机得到了越来越广泛的应用。直流电机具有优良的调速特性,调速平滑、方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这时通过PWM方式控制直流电机调速的方法就应运而生。

采取传统的调速系统主要有以下的缺陷:模拟电路很容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济等特点。从而这就要求大量使用PWM控制的直流调速系统,因此人们对PWM控制的直流调速系统的研究将会更深一步。

1.2国内外发展现状

电力电子技术、功率半导体器件的发展对电机控制技术的发展影响极大,它们是密切相关、相互促进的。近30年来,电力电子技术的迅猛发展,带动和改变着电机控制的面貌和应用。驱动电动机的控制方案有三种:工作在通断两个状态的开关控制、相位控制和脉宽调制控制,在单向通用电动机的电子驱动电路中,主要的器件是晶闸管,后来是用相位控制的双向可控硅。在这以后,这种半控型功率器件一直主宰着电机控制市场。到70和80年代才先后出现了全控型功率器件GTO晶闸管、GTR、POWER-MOSFET和IGBT 等。利用这种有自关断能力的器件,取消了原来普通晶闸管系统所必需的换相电路,简化了电路结构,提高了效率,提高了工作频率,降低了噪声,也缩小了电力电子装置的体积和重量。后来,谐波成分大、功率因数差的相控变流器逐步由斩波器或PWM变流器所代替,明显地扩大了电机控制的调运范围,提高了调速精度,改善了快速性、效率和功率因数[1]。

直流电机脉冲宽度调制(Pulse Width Modulation-简称PWM)调速系统基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。直到进入上世纪80年代随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。最早用于不可逆、小功率驱动,例如自动跟踪天文望远镜、自动记录仪表等。近十多年来,由于晶体管器件水平的提高及电路技术的发展,同时又因出现了脉宽调速永

磁直流电机,它们之间的结合促使PWM技术的高速发展,并使电气驱动技术推进到一个新的高度[2]。

在国外,PWM最早应用在军事工业以及空间技术中,它以优越的性能,满足那些高速度、高精度随动跟踪系统的需求。近八、九年来,进一步扩散到民用工业,特别是在风力发电、电机调速、直流供电等领域中广泛应用。

如今,电子技术、计算机技术和电机控制技术相结合的趋势更为明显,促进电机控制技术以更快的速度发展着。随着市场的发展,客户对电机驱动控制要求越来越高,希望它的功能更强、噪声更低、控制算法更复杂,而可靠性和系统安全操作也摆上了议事日程,同时还要求马达恒速向变速发展,还要符合全球环保法规所要求的严格环境标准。进入21世纪后,可以预期新的更高性能电力电子器件还会出现,已有的各代电力电子元件还会不断地改进提高。

1.3设计目的和意义

由于变频技术的出现,交流调速一直冲击直流调速,但综观全局,目前在国内应用局限性较大,在较短的时间内难以取代较为落后的直流调速。尤其是我国在此领域的现状,再加上PWM调速系统的出现,弥补了这个空白,更加提高了直流调速系统的精度及可靠性,直流调速系统仍将处于十分重要地位。

对于直流调速系统转速控制的要求有稳速、调速、加速或减速三个方面,而在工业生产中对于后两个要求已能很好地实现,但工程应用中稳速指标却往往不能达到预期的效果,稳速要求即以一定的精度在所需要的转速稳定运行,在各种干扰不允许有过大的转速波动[3]。

本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台PROTUES之上,运用C语言编程控制。由定时器来产生固定宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。

本设计以AT89C51单片机为核心,以键盘按键作为输入达到控制直流电机的启停、速度和方向,完成了实验性的基本要求。在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。

本文介绍了直流电机的工作原理、脉宽调制(PWM)控制原理和H桥电路基本原理设计了驱动电路的总体结构,根据模型,利用PROTEUS软件对各个子电路及整体电路进行了仿真,确保设计的电路能够满足性能指标要求,并给出了仿真结果。

直流电动机是最早出现的电动机,也是最早实现调速的电动机。长期以来,直流电动机一直占据着调速控制的统治地位。由于它具有良好的线性调速特性,简单的控制性能,高效率,优异的动态特性,现在仍是大多数调速控制电动机的最优选择。因此研究直流电机的速度控制,有着非常重要的意义。

随着单片机的发展,数字化直流PWM调速系统在工业上得到了广泛的应用,控制方法也日益成熟。它对单片机的要求是:具有足够快的速度;有PWM口,用于自动产生

PWM波;有捕捉功能,用于测频;有AD转换器、用来对电动机的输出转速、输出电压和电流的模拟量进行模数转换;有各种同步串行接口、足够的内部ROM和RAM,以减小控制

系统的无力尺寸;有看门狗、电源管理功能等。因此该设计中AT89C51单片机做为控制芯片。

通过设计基于AT89C51单片机的直流PWM调速系统并调试得出结论,在掌握AT89C51的同时进一步加深对直流电动机调速方法的理解,对运动控制的相关知识进行巩固。

2直流电动机调速的概述

2.1直流电机调速原理

直流电动机根据励磁方式不同,直流电动机分为自励和他励两种类型。不同励磁方式的直流电动机机械特性曲线有所不同。但是对于直流电动机的转速有以下公式:

2//φφCrCe TemRa Ce U n -=(公式 2-1)

其中:U —电压;Ra —励磁绕组本身的电阻;—每极磁通(Wb);Tem —电磁转矩;Ce —电势常数;Cr —转矩常量。

由上式可知,直流电机的速度控制既可采用电枢控制法,也可采用磁场控制法。磁场控制法控制磁通,其控制功率虽然较小,但低速时受到磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态响应较差。所以在工业生产过程中常用的方法是电枢控制法[4]。直流电动机的基本结构直流电机的结构是多种多样的,但任何直流电机都包括定子部分和转子部分,这两部分间存在着一定大小的气隙,使电机中电路和磁场发生相对运动.直流电机定子部分主要由主磁极,电刷装置和换向极等组成,转子部分主要由电枢绕组,换向器和转轴等构成,如图1所示:

图1 直流电机的工作原理图

电枢控制是在励磁电压不变的情况下,把控制电压信号加到电机的电枢上,以控制电机的转速。在工业生产中广泛使用其中脉宽调制(PWM)应用更为广泛。脉宽调速利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速,因此,PWM 又被称为“开关驱动装置”[4]。

图2电枢电压占空比和平均电压的关系图

如图2所示,如果电机始终接通电源时,电机转速最大为Vmax,占空比为D=t1T,则电机的平均速度为:=Vmax*D,可见只要改变占空比D,就可以得到不同的电机速度,从而达到调速的目的。

2.2直流调速系统实现方式

PWM为主控电路的调速系统:基于单片机类由软件PROTUES来实现PWM调速,在PWM调速系统中占空比D是一个重要参数在电源电压不变的情况下,电枢端电压的平均值取决于占空比D的大小,改变D的值可以改变电枢端电压的平均值,其方法如下:

A、定宽调频法:保持不变,只改变t,这样使周期(或频率)也随之改变。

B、调宽调频法:保持t不变,只改变,这样使周期(或频率)也随之改变。

C、定频调宽法:保持周期T(或频率)不变,同时改变和t。

前两种方法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压[5]。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。

2.3控制程序设计

控制程序设计有两种方法:软件延时法和计数法。软件延时法的基本思路是:设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=T,则电机的平均速度为V a= Vmax*D,其中Va指的是电机的平均速度;Vmax是指电机在全通电时的最大速度;D=T 是指占空比。当我们改变占空比D=T时,就可以得到不同的电机平均速度Va,从而达到调速的目的。严格来说,平均速度Va与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似的看成是线性关系。

软件采用定时中断进行设计。当单片机上电后,系统进入准备状态。当按动按钮后执行相应的程序,根据加、减速按钮,调整输出高低电平的占空比,从而可以控制高低电平的延时时间,进而控制电压的大小来决定直流电机的转速。在本设计中PWM脉冲调制的

控制流程如图3所示:

图3 PWM控制流程

3总体设计方案

3.1设计思路

直流电机PWM控制系统的主要功能包括:实现对直流电机的加速、减速以及电机的正转、反转和急停,能够很方便的实现电机的智能控制。

主体电路:即直流电机PWM控制模块。这部分电路主要由AT89C51单片机的IO端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,能够很方便的实现电机的智能控制。其间是通过AT89C51单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。该直流电机PWM控制系统主要由以下电路模块组成:

设计输入部分:这一模块主要是利用带中断的独立式键盘来实现对直流电机的加速、减速以及电机的正转、反转和急停控制,以及对PWM占空比和转速的实时显示。

设计控制部分:主要由AT89C51单片机的外部中断扩展电路组成。直流电机PWM 控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。

设计显示部分:LED数码管显示部分,实现对PWM脉宽调制占空比的实时显示。

3.2总体设计规划

3.2.1设计任务

基于MCS-51系列单片机AT89C51,设计单片机控制的直流电动机PWM调速控制装置,实现对电机的正转、反转、急停、加速、减速的控制,以及PWM的占空比在LED 上的实时显示。

3.2.2设计要求

(1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。

(2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。

(3)设计一个4个按键的键盘。

K1:“启动停止”。

K2:“正转反转”。

K3:“加速”。

K4:“减速”。

(4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变。

(5)测量并在LED显示器上显示电动机转速(rpm)。

3.3系统框架设计

方案说明:直流电机PWM调速系统以AT89C51单片机为控制核心,由命令输入模块、LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给L298直流电机驱动芯片发送PWM波形,完成电机正反转、加减速和急停控制;同时单片机不停的将PWM脉宽调制占空比送到LED数码管完成实时显示,直流电机PWM调速方案如图4所示:

图4直流电机PWM调速方案

4系统硬件设计

4.1系统基本组成

4.1.1硬件模块组成

(1)单片机控制模块

(2)最小系统电路

(3)L298电机驱动模块

(4)LED显示模块及转速显示模块

(5)独立键盘控制模块

4.1.2单片机整个控制模块

单片机整个控制模块如图5所示:

图5单片机整体控制模块

4.2单片机AT89C51简介

AT89C51单片机由CPU和8个部件组成,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式,但在功能单元的控制上采用了特殊功能寄存器的集中控制方法。基本组成如图6所示:

图6 AT89C51基本结构图

单片机AT89C51与MCS-51兼容,由中央处理器,存储器,32位可编程IO口线,两个16位定时器计数器,一个全双工串行口和5个中断源构成。4K字节可编程闪烁存储器寿命为1000写擦循环,通常数据保留时间为10年。全静态工作频率范围0Hz-24Hz,三级程序存储器锁定,采用可编程串行通道,含有片内振荡器和时钟电路,此外,拥有低功耗的闲置和掉电模式为使用提供了方便[11]。

中央处理器CPU:8位CPU是单片机的核心,完成运算和控制功能。

内部数据存储器:AT89C51芯片中共有256个RAM单元,能作为存储器使用的只是前128个单元,其地址为00H—7FH。通常说的内部数据存储器就是指这前128个单元,简称内部RAM。

内部程序存储器:AT89C51芯片内部共有4K个单元,用于存储程序、原始数据或表格,简称内部ROM。

定时器:AT89C51片内有2个16位的定时器,用来实现定时或者计数功能,并且以其定时或计数结果对计算机进行控制。

中断控制系统:该芯片共有5个中断源,即外部中断2个,定时计数中断2个和串行中断1个。AT89C51单片机引脚结构如图7所示:

图7 8051单片机引脚图

4.3复位电路及时钟电路

复位电路和时钟电路是维持单片机最小系统运行的基本模块,是每个单片机系统所必须的电路部分。如图8所示:

图8单片机最小系统

有时系统在运行过程中出现程序跑飞得情况,在程序开发过程中,经常需要手动复位,所以本次设计选用手动复位。为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V ±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在

电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作[12]。

高频率的时钟有利于程序的更快运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取适合的频率即可。适合频率的晶振介入XTAL1和XTAL2引脚,并联2个30pF陶瓷电容帮助起振。

4.4 L298电机驱动模块

L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便[13]。L298N的内部电路结构图如图9所示:

图9 L298N内部电路结构图

感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机,利用按键K2控制电机的正反转,K1按键控制电机的停转,K3、K4分别控制直流电机的加减速。

当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;IN1与IN2相同时,电机快速停止。当使能端为低电平时,电动机停止转动。

在对直流电动机电压的控制和驱动中,L298在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式。线性放大驱动方式是半导体功率器件工作在线性区,优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,缺点为功率器件工作在线性区,功率低和散热问题严重[14]。开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制来控制电动机的电压,从而实现电动机转速的控制,L298逻辑功能如表1:

表1 L298功能逻辑图

IN1 IN2 ENA 电机状态

X X 0 停止

1 0 1 顺时针

0 1 1 逆时针

0 0 0 停止

1 1 0 停止

在直流电动机的驱动中对大功率的电动机常采用IGBT作为主开关元件,对中小功率的电机常采用功率场效应管作为主开关元件。另外还可以采用集成电路来完成对电机的驱动,系统采用集成电路L298来驱动电机,L298引脚接线图如图10所示:

图10 L298引脚接线图

L298是双H高电压大电流功率集成电路。直接采用L逻辑电平控制,可以驱动继电器、直流电动机、步进电动机等电感性负载。其内部有两个完全相同的功率放大回路[15]。其内部结构和引脚功能如图2-2所示。

L298引脚符号及功能:

SENSA、SENSB:分别为两个H桥的电流反馈脚,不用时可以直接接地

ENA、ENB:使能端,输入PWM信号

IN1、IN2、IN3、IN4:输入端,TTL逻辑电平信号

OUT1、OUT2、OUT3、OUT4:输出端,与对应输入端同逻辑

VCC:逻辑控制电源,4.5~7V GND:地

VSS:电机驱动电源,最小值需比输入的低电平电压高

4.5 LED数码管显示

4.5.1 LED简介

LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。

当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。除半导体激光器外,当电流激励时能发射光学辐射的半导体二极管。严格地讲,术语LED应该仅应用于发射可见光的二极管;发射近红外辐射的二极管叫红外发光二极管(IRED,Infrared Emitting Diode);发射峰值波长在可见光短波限附近,由部份紫外辐射的二极管称为紫外发光二极管;但是习惯上把上述三种半导体二极管统称为发光二极管。

4.5.2 LED数码管和单片机的连接

LED数码管接线如图11所示:

图11 LED数码管接线

电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码,然后选通该位LED,并保持一段延时时间。然后选通下一位,直到所有位扫描完,完成对PWM的占空比在LED上的实时显示。

4.6独立键盘控制模块

独立式按键就是各按键相互独立,每个按键各接入一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键按下了。独立式按键电路配置灵活,软件简单。但每个按键需要占用一个输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。

消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10~20ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。按键控制模块如图12所示:

图12 按键控制模块

5系统的软件设计

5.1系统软件设计分析

在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在控制系统设计中占重要地位。

在程序中通过软件产生PWM,送出预设占空比的PWM波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。设PWM周期为T,高电平时间为TH,低电平时间为TL,电压为VCC,则输出电压的平均值为:=VCC*TH (TH+TL)=VCC*THT=aVCC,当VCC固定时,其电压值取决于PWM波形的占空比a,而PWM的占空比由单片机软件内部用于控制PWM输出的寄存器值决定。

软件主要由3部分组成:主程序、键盘扫描程序、中断处理程序。主程序流程如图12所示:

图12 主程序流程图

5.2系统程序设计分析

5.2.1主程序设计

该主程序主要完成初始化,设置定时常数和中断入口程序,主程序不断的循环处于等待中断状态。

main()

{

Time0_int();

while(1)

{

**********按键处理*****************************************

if(KSW==0) 检测开始、停止

{

DelayM(20); 延时去抖

if(KSW==0)

{

SW=~SW;

}

while(KSW==0); 等待键释放

}

if(KLR==0) 检测左转、右转

{

DelayM(20); 延时去抖

if(KLR==0)

{

LR=~LR;

}

while(KLR==0); 等待键释放

}

if(KSPU==0) 检测加速

{

DelayM(20); 延时去抖

if(KSPU==0)

{

pwmH++;

if(pwmH==pwm)

{

pwmH=pwm-1;

}

}

while(KSPU==0);

}

if(KSPD==0) 检测减速

{

DelayM(20); 延时去抖

if(KSPD==0)

{

pwmH--;

if(pwmH==0)

{

pwmH=1;

}

}

while(KSPD==0);

}

**************************************************************** if(SW==0)

{

M1=0;

M2=0;

bn=0;

clearRAM();

}

if(SW==1)

{

bn=0;

clearRAM();

putin(pwm%10); 显示PWM个位

putin(pwm10); 显示PWM十位

putin(12); 显示-

putin(pwmH%10); 显示PWMH个位

putin(pwmH10); 显示PWMH十位

if(LR==0)

{

M1=0;

M2=M;

putin(11); 显示左转L

}

if(LR==1)

{

M1=M;

M2=0;

putin(10); 显示右转R

}

}

ledxs(); 数码管显示

}

}

5.2.2按键延时程序

通过按键延时程序来判断按键的按下与否,消除按键的抖动void Delay(unsigned int i) 延时单次6us

{

while(i--);

}

void DelayM(unsigned int t) 延时单次1ms

相关主题
文本预览
相关文档 最新文档