基于L298N的直流电机调速控制设计 - 图文

更新时间:2024-07-05 05:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学校代码:11517

学 号:201150616116

河南工程学院论文版权使用授权书

本人完全了解河南工程学院关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交论文的印刷本和电子版本;学校有权保存论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。

论文作者签名:

年 月 日

河南工程学院毕业设计原创性声明

本人郑重声明:所呈交的论文,是本人在指导教师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。

论文作者签名:

年 月 日

河南工程学院

毕业设计任务书

题目 基于L298的直流电机调速控制 专业 机械设计制造及其自动化 学号 姓名 主要内容

1. 了解直流电机的调速方法和发展现状; 2. 了解所用单片机的使用及开发流程; 3. 了解L298的使用方法;

4. 选择调速方案和熟悉方案的工作原理, 5. 绘制仿真电路图编写C语言程序; 6. 调试仿真原理图无误,购买实物并焊接; 7. 调试实物成功编写设计说明书。

基本要求

1.利用l298驱动器、51单片机及有关辅助元件构成一个完整调速控制系统,实现一个简单的开环调速控制。 2.根据要求设计调速原理图。 3.绘制仿真原理图。

4.系统调试,先在protues仿真软件上进行实时仿真,然后在实际硬件电路中进行实时调试。

5.写出运行结果报告,撰写说明书。

主要参考文献

[1]潘永雄.新编单片机原理与应用[M].西安:西安电子科技大学出版社,第二版 [2]郑学坚.微型计算机原理及应用[M].北京:清华大学出版社,2006(4)

[3]阎石.数字电子技术基础[M].北京:高等教育出版社,2003.12 [4]孙绪才.L298N在直流电机PWM调速中的应用[J].潍坊学院学报,2009.04 [5]潘新民.微型计算机控制技术[M].电子工业出版社,2003.3 [6]王兆安.电力电子技术[M].机械工业出版社,2005.7

[7]陈伯时.电力拖动自动控制系统[M].上海:机械工业出版社,第三版 [8]李朝青.《单片机原理及接口技术》[M].北京航空航天大学出版社,1998 [9]李广弟.《单片机基础》[M].北京航空航天大学出版社,1994 [10]阎 石.《数字电子技术基础》(第三版)[M].高等教育出版社,1989 [11]廖常初.现场总线概述[J].电工技术,1999

[12]赵鸿图.基于单片机ATS9C51 的直流电机PWM 调速系统[J].技术研发,2008 [13]陈景贤.单片机控制的直流电机PWM 调速控制器设计[J].湛江师范学院学 报,2008

[14]杨靖.用单片机控制的直流电机调速系统[J].机床电器,2008

[15]卢春华,姚海燕,张莉.基于单片机的直流电机调速系统设计[J].硅谷,2009

完 成 期 限:2012年12月25日至2013年6月12日 指导教师签名: 专业负责人签名:

2012年 12 月 25 日

基于L298的直流电机调速控制

目录

摘 要 ................................................ I ABSTRACT ............................................ II 1绪论 .................................................................................................. 1 1.1直流电机的发展 ................................... 1 1.2直流电机调速的研究意义 ........................... 2 1.3本次设计的的要求 ................................. 2 2 设计方案选择 ........................................ 3

2.1直流电机的调速方法 ............................... 3 2.2 PWM调速方式.................................... 4 2.3基于L298的调速方案设计 .......................... 5 3 硬件电路的设计 ...................................... 6 3.1 L298N驱动模块 ................................. 7 3.2 LCD1602显示模块 ............................... 9 3.3 AT89C51单片机模块 ............... 错误!未定义书签。 4 Protueus 与Keil软件使用 ............................. 14 4.1 Proteus简述 .................................... 14 4.2 Proteus功能与使用................................ 14

4.2.1 Proteus功能特点............................................................................... 14 4.2.2 Proteus的使用...................................................................................... 15

4.3 Keil软件简介 .................................. 17 4.4 Keil 使用 ...................................... 18 5 调试仿真 .............................. 错误!未定义书签。

基于L298的直流电机调速控制

6 总结 ............................................... 23 致谢 ................................................. 24 参考文献 ............................................. 24 附 录 1 ............................................ 26 附 录 2 ............................................ 27 附 录

3 ............................................

29

基于L298的直流电机调速控制

基于L298的直流电机调速控制系统设计

摘 要

直流电机具有良好的启动性能和调速特性。首先启动转矩大:带电刷的励磁直流电机产生的电流比感应式大,故产生力矩大。调速性能好:在宽广的范围内平滑地调速,过载能力强。与交流相比,虽然结构复杂,生产成本高,维护工作量大,但是直流电机调速在数控机床,纺织机械,电工机械等领域广为应用。我们生活中熟悉的录音机、电唱机、录相机、电子计算机等,也都不能缺少直流电机,可见直流电机的控制是一门很实用的技术。本文的设计是基于L298的直流电机调速控制,运用常见的89c51单片机为控制核心,采用L298为驱动芯片,Lcd1602为液晶模块显示,设计出的直流电机调速系统。采用的原理是PWM占空比调速,PWM占空比调速是一种常用的调速方法,它通过改变负载两端的电枢电压,调整高低电平的时间长短来控制占空比从而实现调速。

关键字: 直流电机;PWM;L298

I

基于L298的直流电机调速控制

A Regulating Speed System of DC Motor Based On MCU

ABSTRACT

DC motor has a good startup performance and speed characteristics, it is characterized by large starting torque, maximum torque, can be in a wide range of smooth, economical speed, speed is easy to control, high efficiency and speed regulation.Compared with the AC speed regulation, although its structure is complex , the production cost is high, large maintenance workload. But DC motor speed control in CNC machine tools, textile machinery, electrical machinery and other widely application field. All of us in our daily life, familiar phonograph recorder, video camera, computer, also cannot lack of DC motor, DC motor control is visible is a practical technology, so the DC motor speed control is of great significance.This paper is the design of DC motor speed control based on L298, using the common 80C51 MCU as the control core, using L298 as the driver chip, Lcd1602 LCD module, DC motor speed control system design. Speed as feedback signal to achieve speed control, generated by the MCU PWM, to adjust the motor speed, combined with its peripheral circuit, can realize the motor speed control, the speed of on-line monitoring and display function.

KEY WORDS: DC motor,PWM ,L298

II

基于L298的直流电机调速控制

1绪论

1.1直流电机的发展

在现代工业中,电动机作为电能转换转换为机械能的装置被广泛应用于机械、冶金、石油化学、国防等工业领域中。在可调速传动系统中,按照传动电动机的类型来分,有直流调速系统和交流调速系统。交流电动机直流具有结构简单、价格低廉、维修简便、转动惯量小等优点,但主要缺点为调速较为困难。而直流电机具有优良的调速特性,调速平滑, 调速范围广,过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动, 制动和反转,能满足生产过程自动化系统各种不同的特殊运行要求。

传统的直流电机和交流电机各有优缺点,直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题。交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节。

由于自动控制技术、电力电子技术、传感器技术、和微机应用技术的发展成就,使得直流调速也发生翻天覆地的变化。从开始的电力电子器件晶闸管发明至产品功率集成电路(PIC)。多年来其结构、工艺不断改进,性能有了飞速提高,在不同应用领域它们在互相竞争,新的应用也不断出现。后来利用单片机作为控制器开始在电机控制系统中被广泛使用,如AT89C51等。在单片机控制系统中,单片机作为系统控制的核心,主要用来完成一些算法,同时还要处理一些输入/输出、显示任务等, 单片机的使用使电动机控制系统的性能得到了很大提高。

微机出现于20 世纪70 年代,随着大规模及超大规模集成电路制造工艺的迅速发展,微机的性能越来越高,价格越来越便宜。此外,电力电子的发展,使得大功率电子器件的性能迅速提高。因此就有可能比较普遍地应用微机来控制电机,完成各种新颖的、高性能的控制策略,使电机的各种潜在能力得到充分的发挥,使电机的性能更符合使用要求,还可以制造出各种便于控制的新型电机,使电机出现新的面貌?1?。

1

基于L298的直流电机调速控制

1.2 直流电机调速的研究意义

最早出现的电动机是直流电动机,最早实现调速的也是直流电机。众所周知,与交流调速系统相比,由于直流调速系统的调速精度高,调速范围广,变流装置控制简单,长期以来在调速传动中占统治地位。在要求调速性能较高的场合,一般都采用直流电机调速。

目前,通过对电动机的控制,将电能转换为机械能进而控制工作机械按给定的运动规律运行且使之满足特定要求的新型电气传动自动化技术已广泛应用于国民经济的各个领域。 三十多年来,直流电机传动经历了重大的变革。首先实现了整流器的更新换代,以晶闸管整流装置取代了习用已久的直流发电机电动机组及水银整流装置,使直流电气传动完成了一次大的跃进。同时,控制电路已经实现高集成化、小型化、 高可靠性及低成本。以上技术的应用,使直流调速系统的性能指标大幅提高,应用范围不断扩大。直流调速技术不断发展,走向成熟化、完善化、系列化、标准化。

由于直流电机调速技术的研究和应用已达到比较成熟的地步,尤其是全数字直流系统的出现,更提高了直流调速系统的精度及可靠性。所以,今后一个阶段在调速要求较高的场合,如轧钢厂、海上钻井平台等,直流调速仍然处于主要地位。 早期直流电机的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展,直流调速系统已经广泛使用微机,实现了全数字化控制。由于微机以数字信号工作,控制手段灵活方便,抗干扰能力强。所以,全数字直流调速控制精度和可靠性比模拟直流调速系统大大提高?2?。

1.3本次设计的的要求

本设计是基于L298的直流电机调速控制设计,通过AT89C51单片机和L298N实现直流电机的加速,减速,反转,停止,以及相关软硬件设计。首先根据需要绘制proteus仿真图,然后编写C程序,最后仿真调试成功后进行硬件电路板的焊接调试等工作。

2

基于L298的直流电机调速控制

2 设计方案选择

2.1直流电机的调速方法

直流电机是人类最早发明和应用的一种电机,与交流电机相比,直流电机因结构复杂、维护困难、价格较贵等因素制约了他的发展,应用不如交流电机广泛,但是,因为直流电机具有优良的起动、调速和制动性能,因此在工业领域中占有一席之地。直流电机的结构原理图如图1-1所示:

图2-1直流电机结构原理图

虽然不同励磁方式的电机机械特性不同,但他们的转速都是由公式

n?Ua?RaIa (2-1) CE?计算而得,式中 Ua—电枢供电电压(V); Ia——电枢电流(A); Φ——励磁磁通(Wb); Ra——电枢回路总电阻(Ω);CE——电势系数?3?。

CE?pN (2-2) 60a其中p为电磁对数,a为电枢并联支路数,N为导体数。 由式可见,直流电动机的调速方法可以分为 1.电枢回路串电阻的调速方法, 2.调节励磁磁通的励磁控制方法, 3.调节电枢电压的电枢控制方法。

3

基于L298的直流电机调速控制

在上述三种方法中,电枢回路串电阻后机械特性变软,系统转速受负载波动的影响较大,空载和轻载时能够调速的范围非常有限。另一方面,因调速电阻容量较大,一般多采用电器开关分级控制,不能连续调节,只能有级调速。同时所串的调速电阻上通过很大的电枢电流,会产生很大的功率损耗,转速越低。需串入的电阻值越大,损耗越大,这样使电动机的效率大为降低。该方法多用于对调速性能要求不高,而且不经常调速的设备上;励磁控制方法在低速时受磁极饱和的限制,在高速时,转速越高,换向越困难。电枢反应和换向元件中电流的去磁效应对于转速稳定性的影响较大,并且励磁线圈的电感较大,系统的动态响应较差。调节电枢电压的电枢控制方法一般不超过额定电压Ua。所以只能在低于额定转速的范围进行调节。在降低电枢端电压时,电动机的机械特性硬度不变,转速受负载波动的影响较小,速度的稳定性好,而且不管拖动哪一类负载,只要电压可以连续调节,系统的转速就可以连续变化,该方法可以实现无级调速,多用于对 调速性能要求较高的设备上。在对直流电动机电枢电压的控制和驱动中.目前广 泛应用的是通过改变电机电枢电压接通时间与通电周期的比值f(占空比)来控制电机的转速。这种方法称为脉冲宽度调制(Pulse Width Modulation)即PWM控制. 这里我采用了第一种改变电机两端电压的方法,采用脉冲控制PWM,改变占空比,从而改变电机两端电压,调节转速?4?。

2.2 PWM调速方式

PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到直流电机调速的一种方法。PWM调速可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。

占空比就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比。例如,一个PWM的频率是1000Hz,那么它的时钟周期就是1ms,就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。如图1-2所示:

4

基于L298的直流电机调速控制

图2-2 PWM方波

占空比的公式为D?t1,其中t1为一个周期内开关导通(即高电平)的时间,TT为一个周期。占空比D表示了在一个周期里,开关管导通的时间与周期的比值,变化范围为0≤D≤1。当电源电压不变的情况下,电枢的端电压的平均值为

VD?Vmax?D,因此改变占空比D就可以改变端电压的平均值,从而达到调速的

目的,这就是PWM调速原理?5?。

而改变占空比D的值有三种方法:调宽调频法:保持t不变,只改变t1,这样使周期(或频率)也随之改变。定宽调频法:保持t1不变,只改变t,这样使周期(或频率)也随之改变。定频调宽法:保持周期T(或频率)不变,同时改变t1和t。 调宽调频法和定宽调频法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,使电路不稳定。因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。

2.3基于L298的调速方案设计

由上所述,我选择的基于L298的直流电机调速控制方案为:利用AT89C51单片机进行核心控制,因为它的控制功能强、可靠性高、易扩展、成本低、市场上较为普遍。由L298芯片组成的驱动模块,因为L298N电机驱动芯片是一种高电压、大电流电机驱动芯片,可以直接通过电源来调节输出电压;并可以直接用单片机的I/O口提供信号;并且驱动电路简单,使用方便,它的Pin1 和Pin15 可与电流侦测用电阻连接来控制负载的电路; OUT1、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1-input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转,对于本设计直流电动机的驱动,完全满足于需要。由LCD1602作为显示模块,它可以显示大小英文字母、符号,而本设计中要显示

5

基于L298的直流电机调速控制

字母。 由四个独立按键作为按键模块,因为它的结构简单、方便可靠,适合于按键比较少的情况。由C语言程序驱动单片机运行,分别在按下加速、减速、停止、反转键来实现电机的调速。其结构模块如下图所示:

运行

方式

设置

单片L298驱动模块 电机 机控L298驱动模块 制模 块 LCD1602显示模块 图2-3结构模块图

6

基于L298的直流电机调速控制

3 硬件电路的设计

3.1 L298N驱动模块

L298N是SGS-THOMSON Microelectronics所出产的全桥步进电机专用驱动芯片,内部包含四信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,接受标准的TTL逻辑准位信号,可驱动46V、2A以下的步进电机。该芯片具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。可以直接通过电源来调节输出电压;此芯片可以直接用单片机的I/O口提供模拟时序信号,电路简单,使用方便。L298N的引脚如图3-1所示,外形图如3-2所示,输入输出端如图3-3所示。Pin1和Pin15可与电流侦测电阻连接来控制负载的电路;OUT1、OUT2、和OUT3、OUT4之间分别接两个电机;input1-input4输入控制电位来控制电机正反转;Enable则控制电机停转?6?。

图3-1 L298N引脚图

7

基于L298的直流电机调速控制

图3-2 外形图

L298的输入输出关系如下表所示:

表3-1 L298N输入输出关系

ENA H H H L IN1 H L H X IN2 L H H X 电动机运行状态 正转 反转 急停 停止 数据来源:2009年《潍坊学院学报 [J]. L298N 在直流电机PWM 调速系统中的应用》,

根据L298N的输入输出关系,使能控制端ENA接AT89C51的P3.0口,并连接示波器显示占空比,单片机IO口P3.1和P3.2分别接入L298N输入端IN1和IN2,可以控制电动机的正反转(输入端IN1为PWM信号,输入端IN2为低电平,电动机正转;输入端IN2为PWM信号,输入端IN1为低电平,电动机反转);电动机的转速由单片机调节PWM 信号的占空比来实现。连接如图3-4

8

基于L298的直流电机调速控制

图3-3 L298驱动电路

3.2 LCD1602显示模块

液晶显示器简称LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。这里所使用的1602字符型液晶模块是一个可以显示2行16个字的1602液晶模块。LCD1602引脚介绍其中: 引脚1:(VDD/VSS)电源5V或接地。 引脚2:(VDD/VSS)接地或电源5V。

引脚3:(VL)液晶显示偏压信号,液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

引脚4:(RS)寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

引脚5:(R/W)读/写选择,RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

9

基于L298的直流电机调速控制

引脚6:(E)使能操作。

引脚7-14:D0~D7为8位双向数据端。

引脚15-16:空脚或背灯电源。15脚背光正极,16脚背光负极?7?。

表 3-2 LCD1602输入输出关系表

编号 符号 1 2 3 4 5 6 7 8 VSS VDD VEE RS R/W E D0 D1 引脚说明 VSS为地电源 VDD接5V正电源 液晶显示偏压信号 0输入指令,1输入数据 0写入指令或数据,1读信息 1读取信息,1→0执行指令 Data I/O Data I/O 编号 9 10 11 12 13 14 15 16 数据来源: 《1602使用手册》,

符号 D2 D3 D4 D5 D6 D7 BLA BLK 引脚说明 Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O 背光源正极 背光源负极 引脚3需要接可调电阻,可调电阻的电阻值的大小可以人为调节,以满足电路的需要,在这里主要是使显示亮度清晰。可调电阻有滑动变阻器、电阻箱、电位器三种,这里所使用的是电位器。

电位器是一种可调的电子元件。它是由一个电阻体和一个转动或滑动系统组成。当电阻体的两个固定触点之间外加一个电压时,通过转动或滑动系统改变触点在电阻体上的位置,在动触点与固定触点之间便可得到一个与动触点位置成一定关系的电压。下面是各种电位器的样图。

图3-4 各种电位器图

10

基于L298的直流电机调速控制

图3-5 LCD显示电路

3.3 AT89C51单片机模块

图3-6为AT89C51单片机的基本结构示意图。该单片机主要由以下几部分组成。 时钟电路 CPU 总线控制 ROM/EPROMRAM128字节 定时/计数器 并行口4个 串行口 中断系统

图3-6 单片机基本结构示意图

(1)一个8位微处理器CPU。

(2)数据存储器RAM和特殊寄存器SFR. (3)内部程序存储器ROM。

(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。 (5)四个八位可编程的I/O并行端口,每个端口即可做输入又可做输出。 (6)一个串行端口,用于数据的串行通信。 (7)中断控制系统。 (8)内部时钟电路?8?。

AT89C51的P0口由一个输出锁存器、两个三态输入缓冲器和输出驱动及控制电路组成。P0口作为IO口。当作为输出口时使用时,内部控制发0电平使“与”门输出为0,场效应V1截止,此时多路开关MUX与锁存器Q端接通。输出数

11

基于L298的直流电机调速控制

据时,内部数据加在锁存器D端,当CL端的写脉冲出现后,与内部总线相连的的D端数据取反后出现在Q端,经产效应管V2反向后出现在P0引脚上。由于输出电路为漏极开路式,需要外接上拉电阻,一班为5-10?。作为一般IO口使用时,P0口也是一个准双向口,即在输入数据时,应先向端口锁存器写1,使Q为0,两个场效应管都截止,引脚处于悬浮状态,作为高阻抗接入。P0口还可以作地址数据总线。

AT89C51的P1口时通用IO准双向动态端口,输出的信息有锁存。P0与P1主要的区别是P1端口用内部上拉电阻代替了场效应管V1,且输出信号仅来自内部总线。P1口时单片机中唯一的仅有单功能I/O口。

AT89C51的P2口比P1口多了转换控制部分,当系统扩展片外程序存储时,P2端口用来周期性的输出从外存中取指令的高八位地址(A8-A15)此时MUX在CPU的控制下切换到与内部总线地址相连。因地址信号不间断不能做I/O口了。 AT89C51的P3口比P1口多了一个与非门与一个缓冲器,使其个端口有两种功能选择。处于第一功能时,第二输出功能线为1,此时输出与P1相同。内部总线信号经锁存器和场效应管输出。处于第二功能时,锁存器由硬件自动置1,使与非门对第二功能畅通。此时,读引脚信号无效,三态缓冲器不通,第二功能信号经缓冲器送入第二功能输入端?9?。 P3口的第二功能表如下图3-7:

表3-2 P3口第二功能表

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD TXD INT0 INT1 T0 T1 WR RD 数据来源:《单片机应用开发技术》翁家明主编

12

基于L298的直流电机调速控制

AT89C51单片机芯片引脚描述:

:接电源地。 VCC(40)引脚:电源地,节+5V;GND(20脚)

XTAL1(19脚):接外部晶振的一个引脚,当单片机采用外部时钟信号时,此引脚应接地。

XTAL2(18脚):接外部晶振的另一个引脚,当单片机采用外部时钟信号时,外部信号由此脚接入。

RES/VPD:当输入的复位信号持续两个周期 以上高电平,单片机复位。 ALE/PROG:地址锁存控制端。

PSEN外部程序内存的读选通信号端。

EA/Vpp访问程序存储器控制信号。EA=1访问内部程序存储器,EA=0访问外部程序存储器?10?。 引脚图如下3-6:

图3-6 单片机外部引脚图

13

基于L298的直流电机调速控制

4 Protueus 与Keil软件使用

4.1 Proteus简述

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。 它的功能模块为 (1)智能原理图设计(ISIS); (2)完善的电路仿真功能(Prospice); (3)独特的单片机协同仿真功能(VSM); (4)实用的PCB设计平台?11? 。

4.2 Proteus功能与使用

4.2.1 Proteus功能特点

(1)实现了单片机仿真与Spice电路仿真结合。Proteua具有模拟电路仿真、数字电路仿真、单片机及外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器键盘和LCD系统仿真的功能。 (2)支持主流单片机系统的仿真。

14

基于L298的直流电机调速控制

(3)提供软件调试功能。Proteus仿真系统具有全速、单步、设置断点等调试功能,同时可以观察各个变量,寄存器的当前状态,支持第三方的软件编译和调试环境,如keil c51。

(4)具有强大的原理图绘制功能,在proteus仿真系统中可以快速方便的绘制出单片机应用系统的原理图。

在proteus上绘制好原理图后,调入已经编好的程序文件.hex,便可以在proteus上看到模拟的实物运行状态和过程。

proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等?12?。

课程设计、毕业设计是学生走向就业的重要实践环节。由于proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。

4.2.2 Proteus的使用

双击桌面上的快捷图标,进入proteus操作界面,点击对象选择器中的P,

进入选择元件功能当键入at89c51出现如下图所示界面,点击ok,回到proteus绘制界面,单击鼠标左键就放置好了一个51单片机。

15

基于L298的直流电机调速控制

用于即时编辑原件参数。标签。

放置文本。

选择元件。放置连接点。放置网络标号连接终端接口,有

用于绘制总线。用于放置子电路。

VCC、地、输出、输入等接口。器件引脚,用于绘制各种引脚。当绘制各种元

件和终端时必须选择正确的编辑状态,否则是不对的?13?。其他的工具在此不一一介绍,具体绘图方法步骤可见《单片机应用开发技术》,翁家明主编,第6-16页。最后绘制的原理图如下图所示:

图4-1 Proteus原理图

16

基于L298的直流电机调速控制

图中所用的电子元件中英对照:

LED 发光二管 CAP电容 NPN NPN三极管 CAPACITOR 电容 CAPVAR 可调电容 RESPACK ? 电阻

DIODE 二极管 SW-PB 按钮 稳压二极管 ZENER DIODE 电容 CAPACITY 二极管 DIODE 晶振 CRYSTAL?14?

4.3 Keil软件简介

单片机的开发过程中软件是必不可少的部分,目前keil c51在市面上的应用非常广泛。美国Keil Software公司出品的Keil C51是51系列兼容单片机C语言软件开发系统,C语言在功能上、结构性、可读性、可维护性上比汇编有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍?15?。 使用独立的Keil仿真器时,注意事项:

17

基于L298的直流电机调速控制

(1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

(2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

(3)仿真芯片的31脚(EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的EA引脚接至低电平)的目标系统中使用?16?。 Keil开发过程为:

(1)新建工程项目,选择芯片种类及储存目录。 (2)根据要实现的功能编写相应程序。 (3)检查并修改文件中的错误。 (4)生成hex文件。 (5)软件仿真与硬件仿真?17?。

4.4 Keil 使用

打开桌面的快捷方式,进入keil的操作界面,

操作步骤为project →new project→选择保存目录,任意名字,保存→选择Atmel双击→选择AT89C51→

18

基于L298的直流电机调速控制

确定→否→出现如下界 选择file→new file→把做好的程序添加到里面,关掉界面,→选择保存为.c文件→选择target 1下的子文件source group 1→右键选择add files to Group “source group1”→选择刚才生成的.c文件→add→close。然后进行如下操作:

编译→重组当前文件→→运行外围设备→I/O口检查

→target 1→右键→options for target“target 1”→出现如下界面:

选择output→creat hex→选择目标文件夹→生成hex文件。

在proteus原理图上双击单片机将生成的hex文件调入到单片机里进行实时仿真。

19

基于L298的直流电机调速控制

5 调试仿真

根据所绘制的硬件电路原理图,焊接出硬件电路。将已经编好的程序生成hex文件写入AT89C51单片机里进行仿真 。插上电源,开始仿真,仿真初始状态显示如图:

图5-1 仿真初始状态

实物初始状态如图所示:

图5-2 实物初始状态

20

基于L298的直流电机调速控制

按下加速按键,出现如图所示:电机旋转,占空比变大,转速变大。

图5-2 仿真加速状态

加速实物图如下图:

图5-4 实物加速图

按下减速按键,出现下图:占空比变小,转速变小。

21

基于L298的直流电机调速控制

图5-5 仿真减速状态

减速实物图如下:

图5-6 实物减速图

通过调试,实现加速,减速,反转,停止等功能。停车和反转光凭图片表达不清楚,所以在此没有描述,等答辩的时候再做一一演示,请老师谅解。

由于时间不足和我个人能力原因,这次的设计做的有一些不太完善的地方:显示不太精确,就是当停车和反转的时候电机本身可以实现停车和反转,但是显示部分还是显示停车之前的转速。

22

基于L298的直流电机调速控制

6 总结

毕业设计是对大学所学课程的最好的综合锻炼。无论是基础知识还是专业技能都因为毕业设计而被统一起来,而使我们把平时零散的各科知识结合到一起,比如我这次的课题,就将单片机,电工电子,电机拖动,计算机C语言等很多课程的知识结合到一起。很好达到了毕业设计让我们融会贯通的目的。这也为我们步入社会打下一个坚实有力的基础,让我们了解了一个产品在设计、研发、仿真、调试等过程中所遇到的一系列问题。为走入社会工作打下了牢固的基础。路漫漫其修远兮,吾将上下而求索。这漫长而曲折的道路上只要自己不放弃,一步一步慢慢来,很多东西都会被慢慢消化。作为即将毕业踏上工作岗位的大学生,我们没有经验,但是我们有的是一颗不断学习的心,哪里不会学哪里,只有不断学习,才能在以后的工作中不被淘汰。

马上就要毕业了,论文工作也接近尾声,这是令很多人揪心的几个月,从去年分到课题的茫然,到今年年初的紧张准备,大家都在努力的要完成自己的设计任务,期间,我们还要参加各种招聘会,找工作也成了很多同学的心头大石,几个月过去了,直到现在,很多人的工作都已基本签过,宿舍的人也陆续开始出去工作了,论文也马上要交稿了,大学时光就这样要结束了。

23

基于L298的直流电机调速控制

致谢

时光匆匆如流水,转眼又是一个毕业季,对于专升本的我们,毕业一不再新鲜,但是这次,是真的要毕业了,不用升本,没有考研,漫漫求学路终于要在此画上了一个句号。天下没有不散的宴席,可爱的室友也要纷纷各奔工作了,离校的日子一天天临近,在这青春即将逝去的时候,上映了致青春,我们都被电影的故事所感动,其实,又何尝不是我们自己的故事呢,他们是我生命中一辈子都会怀念的人,怀念大学的亲们,感谢你们让我的生活多姿多彩。

再此,也要衷心感谢我的指导老师耿国强老师,耿老师是一个幽默风趣的人,每次宿舍的人开完会回来都会讨论,各自讲讲老师的要求什么的,每次她们都羡慕我们开会和老师的互动。说你们老师太好了,讲话生活有趣,做事干净利索,当然,耿老师的专业知识更让我们获益匪浅。每次提出问题老师都会耐心的解答,直到我们所有人都说没有问题了,他才会说,那都没问题咱就都走吧。而且在设计方面,耿老师总是让我们自己按照自己的想法来,再帮我们完善我们想的不周到的部分。不会让我们很死板的按照别人的想法或者书上的想法来,他总是希望我们自己可以把问题看透解决。他说的一句:“你能懂不代表你能做。”很多时候我们觉得我看了懂了,但下次做你未必会,所以这就是创造性,人的思想不能缺乏创造,即使不懂不会,也要勇于尝试。

24

基于L298的直流电机调速控制

参考资料

[1]唐介.电机拖动[M].第二版,高等教育出版社,2000.6 :168-189

[2]陈伯时 电力拖动自动控制系统[M],上海:机械工业出版社,第三版,21-24

[3]宋健.基于L298的直流电动机PWM调速器[J].潍坊学院报,2004(4),1-87 [4]杨靖.用单片机控制的直流电机调速系统[J].机床电器,2008.(1) :45-47 [5]L298N电机驱动器使用说明书[M],2013:4-8

[6]孙绪才.L298N在直流电机PWM调速中的应用[J].潍坊学院学报,2009(4 ): 9-12

[7]何立民.单片机应用系统设计[M],北京:航天航空大学出版社,2003:1-40 [8]王东峰,王会良,董冠强.单片机C语言应用100例[M].电子工业出版社,2009:28-43 [9]李广弟.单片机基础[M],北京:北京航空航天大学出版社,2001:1-55

[10]李中发,胡锦,杨华.电工电子技术基础[M].中国水利水电出版社,2007:80-225 [11]杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2008 :1-51

[12]阎 石.数字电子技术基础[M].高等教育出版社,1989: 1-189

[13]傅丰林.模拟电子线路基础[M].西安电子科技大学出版社,2001: 25-58

[14]Zhao Hongtu research and development [J]. technology of PWM DC motor speed control system based on ATS9C51 2008: 73-76

[15]翁家民,冯建勤,陶春鸣.单片机应用开发技术[M].中国电力出版社,2009: 1-206 [16]谭浩强,卜家岐.C程序设计教程[M].高等教育出版社,2005: 1-96

[17]Chen Jingxian. Single chip microcomputer control DC motor PWM speed controller design [J] Journal of Zhanjiang Normal University, 2008 :123-126.

25

基于L298的直流电机调速控制

附 录 1

26

基于L298的直流电机调速控制

附 录 2

27

基于L298的直流电机调速控制

附 录 3

28

基于L298的直流电机调速控制

附 录 4

#include #include

#define uchar unsigned char #define uint unsigned int sbit add=P0^1; //+ sbit dec=P0^2; //- sbit fx=P0^3; //反向 bit fx1=1; //反向标志 sbit stp=P0^0; //停按钮 //bit fstp=0 ; //停止标志 //bit fspd=1; //记数标志

sbit en1=P3^0; /* L298的Enable A */ sbit s1=P3^1; /* L298的Input 1 */ sbit s2=P3^2; /* L298的Input 2 */ uchar t=0; /* 中断计数器 */ uchar m1=0; /* 电机速度值 */

uchar tmp1=0; /* 电机当前速度值 */ unsigned int f=0; sbit E=P3^7 ; sbit RW=P3^6; sbit RS =P3^5 ; sbit test =P3^4; int time = 0 ; int num_medium=0; int num_display = 0; int count_speed=0;

uchar wword[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

/* 电机控制函数 index-电机端口号; speed-电机速度 */ void motor(uchar index, char speed) /* { if(speed>=0 && speed<=100) {

if(index==1) {

m1=abs(speed); if(speed>0) {

29

基于L298的直流电机调速控制

s1=1; s2=0; } } } } */ {

if(speed>=0 && speed<=100) { index==1; /*if(fstp==1) { s1=0; s2=0; m1=abs(speed); } */ if(fx1==1) { s1=1; s2=0; //m1=abs(speed); } if(fx1==0) { s1=0; s2=1; // m1=abs(speed); } m1=abs(speed); } }

void delay1(uint j) /* 简易延时函数 */ {

for(j;j>0;j--); }

//延时t毫秒

void delay(uchar t) {

30

基于L298的直流电机调速控制

uint i ; while(t) {

for(i=0;i<125;i++); t--; } }

void wc51r(uchar j) {

RS=0; RW=0; P1=j; E=1; E=0;

delay(3); }

//写数据函数LCD

void wc51ddr(uchar j) {

RS=1; RW=0; P1=j; E=1; E=0;

delay(2); }

//初始化函数LCD void init () {

wc51r(0x01); //清屏

wc51r(0x38); //使用8位数据,显示两行,使用5*7的字型 wc51r(0x0c); //显示器件,光标开,字符不闪烁 wc51r(0x06); //字符不动,光标自动右移一格 }

/*****************************************************************************/

/***T1中断服务程序**************单位时间(S)方波的个数**********************/

void time1_int(void) interrupt 3 {

31

基于L298的直流电机调速控制

count_speed++; if(count_speed==20)

{ count_speed = 0;

num_display = num_medium; num_medium = 0; } }

/*****************************************************************************/

/***************************************速度显示的数据处理********************/ void datamade() {

uint data MM,NN; wc51r(0xc2); wc51ddr('S'); wc51ddr('p'); wc51ddr('e'); wc51ddr('e'); wc51ddr('d'); wc51ddr(0x3a);

NN = num_display0; MM = num_display/100; wc51ddr(wword[MM]); MM = NN/10; NN = NN;

wc51ddr(wword[MM]); wc51ddr(wword[NN]); }

/*****************************************************************************/

/************************主函数**********************************************/

void main() {

unsigned char i;

32

本文来源:https://www.bwwdw.com/article/4aq.html

Top