单片机如何接l298n驱动 如何让两个l298n输出电压口有l298n输出电压 程序怎么编写

L298n怎样用两个电源分别给电机和单片机供电_百度知道
L298n怎样用两个电源分别给电机和单片机供电
我有更好的答案
一、L298n的两个电源引脚、L298n与单片机、L298n与电机的供电(连接)L298n中的一个电源引脚与单片机电源引脚的连接L298n的逻辑控制部分的电源输人端口9引脚接单片机的电源引脚VCC,L298n的接地端8引脚接单片机的接地端。L298n与单片机的连接L298n的使能控制端6和11引脚分别接单片机的使能控制端,L298n的输入标准的TTL逻辑电平信号5、7、10、12引脚分别接单片机的输入接口。L298n中的另一个电源引脚与电动机的电源的连接L298n的电机驱动电源输入端4引脚接电动机的电源,L298n的接地端8引脚接电动机的接地端。L298n与电动机的连接L298n的全桥式驱动器A的两个输出端2和3引脚与电动机驱动端连接。L298n的全桥式驱动器B的两个输出端13和14引脚与电动机驱动端连接。二、L298NL298N是SGS(通标标准技术服务有限公司)生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。
采纳率:78%
问法有问题,不是L298n给单片机供电,应该是电源给单片机供电,用一个7福特以上直流电源(一般选9福特就行)加7805稳压块给单片机供电,再甩出两路9福特电源接l298n两个电源。
本回答被提问者和网友采纳
为您推荐:
其他类似问题
l298n的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机的L298N直流电机驱动(PWM)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机的L298N直流电机驱动(PWM)
&&基于51单片机,使用L298N驱动模块用PWM方式驱动直流电机
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢查看: 10329|回复: 16
新手求助:航模6通道遥控器+51单片机+L298N+2个减速电机控制原理
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
想DIY个履带小车,能遥控实现基本的前进、后退、加速、减速、拐弯、自转(将来随着单片机的学习再增加循迹、避障等高阶功能),用51单片机学习板+L298N动力驱动模块+2个直流减速电机(一个电机带动一边履带的主动轮),打算用直升机航模的6通道遥控器控制(混控)。
用单片机输出PWM信号控制L298N,驱动直流电机实现前进后退等功能,研究网上现成的程序后基本能够搞定。
现在的问题是不知道怎么将航模的6通道遥控器对单片机进行混控,遥控器配一个6通道的接收器,是将接收器的信号作为单片机的输入还是怎么搞,目前单片机的学习还没有学到这,请各位帮助大致指导一下是怎么个实现方法。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子精华
我认为最省轮子的跑法最快。曾经的西科4队
杰出人士, 积分 13855, 距离下一级还需 6145 积分
杰出人士, 积分 13855, 距离下一级还需 6145 积分
兑换币4115
在线时间3269 小时
如果是图上的天地飞6一代,则不能设置混控,但是可以在单片机里再对捕获到的信号做一次处理,即自己写混控的程序,输入信号就是从接收机捕获到的50hzpwm。
如果是带屏幕的控,则一般可以直接在控上设置混控,具体去查看对应遥控的说明书。
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
Jyoun 发表于
如果是图上的天地飞6一代,则不能设置混控,但是可以在单片机里再对捕获到的信号做一次处理,即自己写混控的 ...
多谢元老回复。
我刚入门,自己再潜水继续研究。
主题帖子精华
我认为最省轮子的跑法最快。曾经的西科4队
杰出人士, 积分 13855, 距离下一级还需 6145 积分
杰出人士, 积分 13855, 距离下一级还需 6145 积分
兑换币4115
在线时间3269 小时
瓦力他爸 发表于
多谢元老回复。
我刚入门,自己再潜水继续研究。
如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2ms的50hz的pwm。
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
Jyoun 发表于
如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2m ...
恩,刚买了个示波器,过几天就到货。
准备用示波器测一测,加深了解。
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
Jyoun 发表于
如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2m ...
这几天用示波器测了一下航模块遥控接收机每个通道的波形,确实是PWM信号。
现我想把要实现混控的2个通道的PWM信号作为输入与单片机通讯,再让单片机输出同步的PWM信号到l298n驱动板,来控制小车左右2个电机的转速。
还在继续研究中。。。。。。
主题帖子精华
我认为最省轮子的跑法最快。曾经的西科4队
杰出人士, 积分 13855, 距离下一级还需 6145 积分
杰出人士, 积分 13855, 距离下一级还需 6145 积分
兑换币4115
在线时间3269 小时
瓦力他爸 发表于
这几天用示波器测了一下航模块遥控接收机每个通道的波形,确实是PWM信号。
现我想把要实现混控的2个通 ...
嗯嗯,不难的,稍微有点想法就能弄出来了。其实就是捕获pwm和输出pwm,当然51只能用模拟的方法去捕获和输出,自己去想办法吧,过程才有意义。
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
Jyoun 发表于
嗯嗯,不难的,稍微有点想法就能弄出来了。其实就是捕获pwm和输出pwm,当然51只能用模拟的方法去捕获和输 ...
Jyoun兄:感谢鼓励!再稍微提示一下如何捕获PWM,是用A/D(D/A)模块还是用单片机的INT0/INT1外部中断来捕获?
我自学51单片机时间加起来不超过2周,现在还没有入门{:soso_e106:},你的提示可以让我明确学习的方向,少走很多弯路。
毕竟,现在不能像在学校那样系统的学习,只能用哪学哪啦。
主题帖子精华
我认为最省轮子的跑法最快。曾经的西科4队
杰出人士, 积分 13855, 距离下一级还需 6145 积分
杰出人士, 积分 13855, 距离下一级还需 6145 积分
兑换币4115
在线时间3269 小时
本帖最后由 Jyoun 于
00:17 编辑
瓦力他爸 发表于
Jyoun兄:感谢鼓励!再稍微提示一下如何捕获PWM,是用A/D(D/A)模块还是用单片机的INT0/INT1外部中断来捕 ...
精度不高的捕获很简单,接到io口,然后定时中断,比如定50us,定时中断后去查询io口,这样,输入的pwm(50hz)变化时就能得到20个等级(对应算成5%递增的占空比)的高电平时间。精确的捕获我也只在理论阶段,还没试,不过近期要做东西,也许会尝试。
精确的捕获就需要用外部中断和定时器中断,51这两种中断都很少,不够用,就需要一定的算法或者硬件来处理了,也许其他地方有资料,我没去查,自己想出了算法,还没尝试。反正粗略的捕获和输出是很容易的,我也用过很多次了。
主题帖子精华
高级会员, 积分 589, 距离下一级还需 411 积分
高级会员, 积分 589, 距离下一级还需 411 积分
在线时间28 小时
Jyoun 发表于
精度不高的捕获很简单,接到io口,然后定时中断,比如定50us,定时中断后去查询io口,这样,输入的pwm(5 ...
Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。
对于初选单片机的我来说,有个问题不太明白:
1,我学过怎么用单片机的I/O口捕获一个脉冲的宽度(就是测试一个按键按下时间的长度),这个能够理解。但是航模遥控器到通道的脉冲是连续的,且高电平宽度是随着遥控器摇杆的拨动动态变化的,这个怎么去捕获?
本帖子中包含更多资源
才可以下载或查看,没有帐号?
Powered by博客访问: 168185
博文数量: 52
博客积分: 2510
博客等级: 少校
技术积分: 320
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
摘要:本设计首先介绍了STC89C51单片机,L297和L298N驱动电路及步进电机的基本原理与功能;其次,设计步进电机实现起停、转向、速度、位置变化的控制方案;再次,在这些器件功能与特点的基础上,拟出设计思路,构建系统的总体框架;最后利用PROTEL软件绘出电路图,同时写出设计系统的运行流程和相关程序。整个系统通过写入单片机中的程序分配好控制字的存储单元以及相应的内存地址赋值;启动系统后,从单片机的I/O口输出控制脉冲,经过L297、L298N驱动电路对脉冲进行处理,输出能直接控制步进电机的脉冲信号。在此基础上,重新分配I/O资源,同时增加驱动芯片L297、L298N的个数,在负载能力范围允许内,就能实现多台步进电机独立起停、转向、速度、位置变化的控制。
关键字:STC89C51单片机; L297;& L298N;& 步进电机
&Design of the MCU to Realizes the Control of Many Stepping Motors
Abstract:The paper firstly introduces basic principles and functions of STC89C51 MCU, L297 L298 N drive circuits and stepping motor, secondly designs the control plan of stepping motor to realize starting and stopping, turning around, speeding, and position changes, thirdly produces the thought of design and builds the frame of system based on the principles and functions of these components, lastly designs circuit diagram in PROTEL and lists the operating process of design system and related programs. The whole system distributes saved units and composes values accord to corresponding memory addresses through the programs written in MCU. After starting the system, I/O interface of MCU outputs control pulses, which are handled by L297 and L298N drive circuits, then outputs pulse signals which can directly control stepping motors. In this foundation, the MCU redistributes the I/O resources and adds up the number of drive chips of L297 and L298N, in the meantime the design can realize many stepping motors’ independent starting and stopping, turning around, speeding, and position changes in the load's capability.
Keywords:STC89C51MCU;L297;L298N; stepping motor
步进电机是一种将电脉冲信号转换成相应角位移的控制电机。目前,数字技术、计算机技术和永磁材料的迅速发展,推动了步进电机的发展。本设计针对目前各个领域对自动化的需要,采用STC89C51单片机与L297,L298N驱动芯片驱动多台步进电机同时独立工作,将它应用于各种复杂的控制领域,能使许多半自动控制的系统完全成为真正的全自动,特别是用在机器人等领域,能极大的提高生产力和降低劳动强度。由于步进电机具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
&STC89C51单片机的特点
& STC89C51系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,是MCS-51系列单片机的派生产品;它们在指令系统中、硬件系统和片内资源与标准的8052单片机完全兼容,DIP-40封装系列与8051为pin-to-pin兼容,指令代码是与8051完全兼容的单片机。STC89C51单片机具有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5V-3.4V(5V单片机)/3.8V-2.0V(5V单片机);工作频率范围:0-40MHZ,相当于普通MHZ。实际频率可达48MHZ。用户应用程序空间为4K/8K/13K/16K/20K/32K/64K字节 ;片上集成1280字节/512字节RAM;有32/36个通用I/O口,P1/P2/P3/P4是准双向口;集成ISP(在系统可编程)/IPA(在应用可编程),无需专用的编程器/仿真器,可通过串行口(P3.0/P3.1)直接下载用户程序,8K程序3秒就可以完成一片,具备EEPROM功能,工作温度范围在0-750,共有3个16位定时器/计数器,其中定时器T0还可以当成2个8位定时器使用;封装形式有DIP-40,PLCC-44,PQFP-44等。&
步进电机的步进原理
步进电机是一种用电脉冲信号进行控制,并将电脉冲信号转换成相应的角位移或线位移的控制电动机。说通俗点,就是给一个电脉冲,步进电动机就转动一个角度或者前进一步,因此,步进电机也称脉冲电动机。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机是数字控制电机,它将脉冲信号转变成角位移,因此非常适合于单片机控制。步进电机的角位移或线位移量与电脉冲个数成正比,它的转速或线速度与电脉冲频率成正比。在负载能力范围内这些关系不因电源电压、负载大小、环境条件的波动而变化。通过改变脉冲频率的高低可以在很大范围内实现步进电机的调速,并能进行快速启动、制动和反转。
&&L298N的原理
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压;并可以直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。
&&L297的原理
L297芯片是具有20个引脚的双列直插式塑胶封装的步进电动机控制器(包括集成的硬件环形分配器)。它可产生四相驱动信号,能用半步(八拍)和全步(四拍)等方式驱动单片机控制两相双极或四相单极步进电机。该芯片内部的PWM斩波器允许在关模式下控制步进电动机绕组电流,由于相序信号也是由内部产生的,因此它只需要时钟、方向和模式输入信号便能控制步进电动机,可减轻微处理器和程序设计的负担。L297单片步进电动机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制线绕组电流,实现恒流斩波控制,以获得良好的转矩—-频率特性。适用于双极性两相步进电动机或单极性四相步进电动机的控制。L297只需从上位机接受方向(正/反转),模式(半步/基本步距),时钟(步进脉冲)3个输入信号。它产生3种相序的信号,对应于3种不同的工作方式:半步方式(四相八拍);基本步距,单相激励方式(单相四拍);基本步距,两相激励方式(两相两拍)。其工作方式输出的波形如图4~6所示,初状态(HOME)是ABCD= 0101。L297是20脚双列直插式塑料封装,常以+5V供电。该单片步进电机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制绕组电流,实现恒流斩波控制,以获得良好的转矩-频率特性,实用于双极两相步进电机或者单极四相步进电机的控制。
&步进电机起动及加/减速控制
速度控制中加/减控制是最基本的控制。电机由静止到达设定的最大的速度所需的时间是由调试决定的。加速度太大,电机甚至不能克服惯性而失步,加速度太少,则完成指定的运动耗费时间太多,
加速度有两中方案:线性加/减速度控制和等步距加/减速度控制。前者规定从加速度开始,每一加速度周期指令电机速度递增相同的增量△f;后者则是要求每一加速度周期电机走过相同的步数。等步距加/减速度控制的优点,在于加/减过程中电机走的步数可以非常精确的计算,这一点对于加/减的位置控制非常重要,但从电机要克服惯性力来看,线性加速方案好些。调试也方便。线性加/减控制曲线如下图:
&&&&&&&&&&&&&&&&&&&&线性加速控制曲线&
f=(f2-f1)/n,其中n为加速过程的台阶数,减速控制也类似,只是△f为负值。
步进电动机的最高起动频率(突跳频率)一般为0.1KHz到3-4KHz,而最高运行频率则可以达到N*102 KHz。以超过最高起动频率的频率直接起动,将出现"失步"现象,甚至无法起动。较为理想的起动曲线,应是按指数规律起动。但实际应用对起动段的处理可采用直线拟合的方法,即"阶梯升速法"。可按两种情况处理,①已知突跳频率则按突跳频率分段起动,分段数n=f/fq。②未知突跳频率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)△f=f/8,即采用8段拟合。在运行控制过程中,将起始的速度(频率)分为n分作为阶梯频率,采用"阶梯升速法"将速度连续升到所需要的速度,然后锁定,按预置的曲线运行。如(图9)所示。
&&& 用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,升速时,使脉冲频率增高,减速时相反。如果使用定时中断来控制电机的速度,加减速控制就是不断改变定时器的初值。速度从V1→V2如果是线性增加,则按给定的斜率升/降速;如果是突变,则按"阶梯升速法"处理。在此过程中要处理好两个问题:
①速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表的方法。结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为定时初值表。通过在不同的阶段调用相应的定时初值,控制电机的运行。定时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。
②保证控制速度的精确性;要从一个速度准确达到另外一个速度,就要建立一个校验机制,以防超过或未达到所需速度。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 阶梯升速起动
步进电机的换向控制
一般来说,驱动器的输入共有3路,它们是:步进脉冲信号CP、方向电平DIR、脱机信号FREE。它们在驱动器内部分别通过限流电阻接入光藕的负输入端,且电路形式完全相同,在这三路输入信号的共同的控制下,驱动器将输入合适的电流来控制步进电机完成指定的操作。另外,驱动器一般有一个接入端OPTO,该端口为三路信号的公共正端。三路输入信号在驱动器内部接成共阳方式,所以OPTO端须接外部系统的VCC,并在需要的情况下加限流电阻R,保证驱动器内部光藕提供合适的驱动电流。
① 步进脉冲信号CP
步进脉冲信号CP用于控制步进电机的位置与速度,也就是说:驱动器每接受一个CP脉冲就驱动步进电机一个旋转的步距角,CP脉冲的频率改变则会使步进电机的转速改变,控制CP脉冲的个数,则可以使步进电机精确定位。
② 方向电平DIR
方向电平信号DIR用于控制步进电机的旋转方向,此端为高电平时,电机一个转向,此端为低电平时,电机转向另外一个方向,电机转相必须在电机停机后进行,并且换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个脉冲前发出。
③ 脱机电平信号FREE
当驱动器上电后,步进电机处于锁定状态(未施加CP脉冲时)或者运行状态(施加CP脉冲时),但当用户想手动调整电机而又不想关闭驱动器电源,这时就可以用到此信号,当此信号起作用时(低电平有效),电机处于自由无力矩状态,当此信号为高电平时或悬空不接时,取消脱机状态。此信号用户可选用,如果不需要此功能,此端不接即可。
&& 步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内再换向,以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个CP脉冲前发出。如(图10)所示。对于CP脉冲的设计主要要求其有一定的脉冲宽度(一般不小于5μs)、脉冲序列的均匀度及高低电平方式。在某一高速下的正、反向切换实质包含了降速→换向→升速三个过程。
&&&&&&&&&&&&&&&&&&&&&&&& 转向信号起作用的时刻
&步进电机的位置控制
步进电机的位置控制是指要求电机从当前位置转过一个给定的步数。电机不丢步数这一控制的实际。就是要求精确地发出定量的步进脉冲,例如,机器人再现工作时的启动信号后,要走到示教时给出的初始作业位置,就是用到位置控制。不过不带加/减速控制,位置控制很容易实现的。将发给电机的脉冲,用计数器通道计数,到最后通过CPU停发脉冲就是了。但是这种不带加/减速的位置控制,除非速度特别低,否则会在起停时造成器械冲击、失步。图11示出了带加减速控制的速度曲线,此曲线、跟T轴间包含的面积正比于电机走过的步数S∑,显然,电机走过的总步数S∑由三部分构成:加速阶段电机走的步数向阶梯段电机走过的步数和减速阶段电机走的步数。
&&&&&&&& 位置控制速度曲线
&系统的设计思路
本设计的目的是实现单片机能同时实现3台或3台以上步进电机的起/停、转向、加/减速和位置控制。在熟悉好各芯片的性能特点后,接下来就是分配好各芯片的控制任务。
单片机主要完成脉冲的分配,使步进电机按照设定的方式运转,通过程序设定,从单片机的I/O口输出一系列有规律的脉冲信号;由于直接输出的脉冲信号驱动功率有限,很难直接驱动步进电机运转,所以必须经过驱动器进行脉冲放大,本设计采用的L297与L298N芯片能解决这个问题,它可以驱动两个二相电机,也可以驱动一个四相电机。但是如果要实现多台步电机控制的设计,就不仅要重新分配好I/O资源,还要增加相应驱动芯片的数量。再利用单片机程序分配好控制字的存储单元,以及相应的内存地址赋值,使单片机能控制步进电机的起停、换向顺序、速度和位置变化。
&系统的设计框架
L297、L298N与电机的电路设计
系统的总电路设计此电路由一块STC89C51,3块L297、3块L298N、3台4相4拍步进电机器以及相关的电路组成。利用单片机3个并行I/O口的部分引脚(P0.0~P0.6,P1.0.~P1.6,P2.0~P2.6)连接驱动芯片,各个端口直接与驱动芯片L297直接相连,L297与L298N共用一个+5V的电源,输出+36V的步进电机驱动电压;L298N的2、3、13、14四个输出引脚直接与一个四相四拍的步进电机相连。以同样的方式,连接另外两台电机的控制电路。
系统的总电路设计图
步进电机的转向控制任务
①判断旋转方向;
&&&&& ②按顺序送出控制字;
③判断字是否送完。
&四相四拍控制程序的设计方法 步进电动机所要走的步数在R4中,转向标志存放在程序状态寄存器PSW的用户标志位F(D5H)中。当F0=0时,步进电动机正转,当F0=1时,步进电动机反转。正反转控制字存放在单元见表1中。
表1&&& 反转控制字存放单元
表2&&& 正反转的内存地址赋值
内存字节地址
&&& 7.2 步进电机的运行控制
在升、降频率过程中,考虑到步进电机的惯性,要求每改变一次频率,需持续运行一定的步数,称频率阶梯步长,采用直线方式,频率阶梯步长的值为常数,由初始启动频率到恒速运行频率的阶梯步长数,称为频率的阶梯数。编写这段程序作如下标明:
①利用定时器T0延时,起初值存放在EPROM存储器的同一页面中。上半页面为升频段,定时器初值由大变小;下半页面为降频段,定时器初值由大变小。降频是升频的逆过程。
②步进电机的运行控制标志位定义见下表3:
表3&& 步进电机的运行控制标志位
运行方式:0恒速,1变速
变速方式:0降频,1升速
恒速转向:0正转,1反转
升速转向:0正转,1反转
降速转向:0正转,1反转
程序结束标志:02表示程序结束
③运行控制初值分配见表4
表4&& 运行控制初值分配
频率阶梯步长计数器R2的值
频率阶梯步长计数器R3的值
恒速段步长低8位
恒速段步长高8位
恒速段T0初始值低8位
恒速段T0段高8位
转速流程框图及相应的程序
步进电机转速控制可由程序延时来完成,也可由定时器延时来完成,相应的程序如下:
PUSH&&&&& A&&&&&&&&&&&&&&&& ;保护现场
&&&&& MOV&&&&& R4,#N&&&&&&&&&&& ;设置步长计数器
&&&&& CLR&&&&&& C&&&&&&&&&&&&&&&& ;转向标志为1,转移
ORL&&&&&& C,D5H
JC&&&&&&&& ROTE
MOV&&&&&&&& R0,#20H&&&&&&&&&&&&&&& ;正转控制字首址
AJMP&&&&&&& LOOP
ROTE:&& &MOV&&&&&&&& R0,27H&&&&&&&&&&&&&&&& ;反转控制字首址
LOOP:&&& MOV&&&&&&&& A,@R0
MOV&&&&&&&& P1,A&&&&&&&&&&&&&&&&& ;输出控制脉冲
ACALL&&&&&& DLY&&&&&&&&&&&&&&&&&&& ;调用延时程序
INC&&&&&&&&& R0&&&&&&&&&&&&&&&&&&&&& ;控制字存储地址增1
MOV&&&&&&&& A,#00H
.&&&&&&&& ORL&&&&&&&&& A,@R0&&& &&&&&&&&&&&&;是结束标志转移
JZ&&&&&&& TPL LOOP1: DJNZ& R4,LOOP&&&&&&& ;步数不为0,转移
POP&&&&&&&&& A
TPL:&&& MOV&&&&&&&& A,R0&&&&&&&&&&&&&&&&& ;恢复控制字首址
CLR&&&&&&&& C
SUBB&&&&&&& A,#06H
MOV&&&&&&& R0,A
AJMP LOOP1
DLY:&&& MOV&&&&&&& R2,#M
DLY1:&& MOV&&&&&&& A,#M1
LOOP:&& DEC&&&&&&& A
JNZ&&&&&&& LOOP
DJNZ&&&& R2,DLY1&&&&&&&&&&&&&&
7.4& 变频调速程序与相应的流程图
主程序:ORC&&&&&&&&&&&&& 0000H
&&&&&&&&&&&& SJMP&&&&&&&& START
&&&&&&&&&&&& ORG&&&&&&&&& 000BH
&&&&&&&&&&&& LJMP&&&&&&&& INT0
&&&&&&&&&&&& ORG&&&&&&&&& 0030H
START:&&&& MOV&&&&&&&& DPTR,addr16&&&&&&&&&& ;T0初值地址指针
&&&&&&&&&&&& MOV&&&&&&&& R3,1BH&&&&&&&&&&&&&& ;赋频率阶梯记数器值
&&&&&&&&&&&& MOV&&&&&&&& R2,1AH&&&&&&&&&&&&&& ;赋阶梯步长计数器值
&&&&&&&&&&&& CLR&&&&&&&&& C
&&&&&&&&&&&& ORL&&&&&&&&& C,73H
&&&&&&&&&&&& JC&&&&&&&&&&& ROTE
&&&&& &&&&&&&MOV&&&&&&&& R0,#20H&&&&&&&&&&&&&& ;正转控制字首址
&&&&&&&&&&&& AJMP&&&&&&&& PH
ROTE:&&&&& MOV&&&&&&&& R0,#27H&&&&&&&&&&&&&& ;反转控制字首址
PH:&&&&&&&& MOV&&&&&&&& TMOD,#01H&&&&&&&&&& ;T0方式1定时
&&&&&&&&&&&& MOV&&&&&&&& TL0,#00H&&&&&&&&&&&&& ;置T0初值
MOV&&&&&&&& TH0,&&&&&&& #00H&&
SETB&&&&&&& TR0&&&&&&&&&&&&&&&&&&& ;启动T0
SETB&&&&&&& ET0&&&&&&&&&&&&&&&&&&& ;允许T0中断
LOOP:&&&&&& MOV&&&&&&&& A,R3&&&&&&&&&&&&&&&&& ;等待中断
&&&&&&&&&&&&& JNZ&&&&&&&&&& LOOP
&&&&&&&&&&&&& CLR&&&&&&&&& EA&&&&&&&&&&&&&&&& &&&;CUP关中断
&&&&&&&&&&&&& SJMP&&&&&&&&& $&&&&&&&&&&&&&&&&& &&&;结束
中断服务程序:
INT0:&&&&&&&& PUSH&&&&&&&& A&&&&&&&&&&&&&&&&&&&&& ;保护现场
&&&&&&&&&&&&&& MOV&&&&&&&&& A,@R0
&&&&&&&&&&&&&& MOV&&&&&&&&& P1, A&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&& INC&&&&&&&&&& R0
&&&&&&&&&&& &&&MOV&&&&&&&&& A, #00H
&&&&&&&&&&&&&& ORL&&&&&&&&& A, @R0
&&&&&&&&&&&&&& JZ&&&&&&&&&&& TPL&&&&&&&&&&&&&&&&&&& ;是结束标志,转
RR:&&&&&&&&&&& DEC&&&&&&&&& R2&&&&&&&&&&&&&&&&&&&& ;步长计数器减1
&&&&&&&&&&&&&& MOV&&&&&&&& A, #00H
&&&&&&&&&&&&&&& ORL&&&&&&&&& A, R2
&&&&& &&&&&&&&&&JZ&&&&&&&&&&& THL&&&&&&&&&&&&&&&&&& ;阶梯步长计数器为0,转
PRL:&&&&&&&&&&& CLR&&&&&&&&& C
&&&&&&&&&&&&&&& CLR&&&&&&&&& C, 71H
JNC&&&&&&&&&&& ROTEL&&&&&&&&&& ;是降频,转移
&&&&&&&&&&&&&& MOV&&&&&&&&&& A, #00H
&&&&&&&&&&&&&& MOVC&&&&&&&&& A, @A+DPTR
&&&&&&&&&&&&&& MOV&&&&&&&&&& TL0,A&&&&&&&&&&& ;升频T0赋初值低8位
&&&&&&&&&&&&&& MOV&&&&&&&&&&& A, #01H
&&&&&&&&&&&&&& MOVC&&&&&&&&& A, @A+DPTR
&&&&&&&&&&&&&& MOV&&&&&&&&&&& TH0,A&&&&&&&&&& ;升频T0赋初值高8位
&&&&&&&&&&&&&& AJMP&&&&&&&&&& QQ&&&& &&&&&&&
ROTEL:&&&&&&& MOV&&&&&&&&&&& A, #80H
&&&&&&&&&&&&&& MOVC&&&&&&&&& A, @A+DPTR
&&&&&&&&&&&&&& MOV&&&&&&&&&&& TL0,A&&&&&&&&&& ;降频T0赋初值低8位
&MOV&&&&&&&&&&&&& A, #81H
&&&&&&&&&&&&&& MOVC&&&&&&&&&&& A, @A+DPTR
&&&&&&&&&&&&&& MOV&&&&&&&&&&&&& TH0,A&&&&&&& &&&;降频T0赋初值高8位
QQ:&&&&&&&&&&& POP&&&&&&&&&&&&& A&&&&&&&&&&&&&&& ;恢复现场
&&&&&&&&&&&&&& RETI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;中断返回
THL:&&&&&&&&&& DJNZ&&&&&&&&&&&& R3,AT&&&&&&&&&&& ;频率阶梯减1不为0,转
&&&&&&&&&&&&&& AJMP&&&&&&&&&&&& QQ
AT:&&&&&&&&&&& MOV&&&&&&&&&&&&& R2,1AH&&&&&&&&&& ;阶梯步长赋值
&&&&&&&&&&&&&& INC&&&&&&&&&&&&&& DPTR
&&&&&&&&&&&&&& INC&&&&&&&&&&&&&& DPTR&&&&&&&&&&& ;TO初值指针更新&
&&&&&&&&&&&&&& AJMP&&&&&&&&&&&&& PRL
TPL:&&&&&&&&&& CLR&&&&&&&&&&&&&& C
&&&&&&&&&&&&&& MOV&&&&&&&&&&&&& A, R0
&&&&&&&&&&&&&& SUBB&& &&&&&&&&&&A, #06H
&&&&&&&&&&&&&& MOV&&&&&&&&&&&&& R0, A
&&&&&&&&&&&&&& AJMP&&&&&&&&&&&&& RR
&&&&&&&&&&&&&& END
本设计首先分析了STC89C51单片机、L297、L298N驱动电路以及步进电机的基本原理和特点,其次逐步分析各自的连接原理及步进电机实现启停、加速、转向、位置控制的方案,接着综合性地阐述整个系统的设计思路及组成框图;再通过PROTEL软件绘制整个原理图并设计相应的PCB板模型。该系统主要是通过写入单片机中的程序进行控制,从I/O口输出控制脉冲,经过L297、L298N驱动电路进行处理,输出能直接控制步进电机的信号;在此基础上,重新分配I/O资源,同时增加驱动芯片L297、L298N的个数,使能同时控制3台四相四拍步进电机。如果在单片机上扩展键盘输入以及LED显示输出电路,更能增加系统的直观性与实用性。依照这个思路,如果通过8255可编程芯片扩展I/O口,并增加L297、L298N驱动电路的数目,在负载允许的范围内,就能同时控制实际所需的多台步进电机运行。把这个系统运用于许多复杂的领域,能使许多半自动控制的系统完全成为真正的全自动,特别是机器人设计与制作方面,能极大的提高生产力和降低劳动强度,有很大的应用前景。
[1]李鸿主编.单片机原理及应用[M], 湖南:湖南大学出版社,2004
[2]韩全立,王建明.单片机控制技术及应用[M],北京:电子工业出版社,2004
[3]周平,伍云辉.单片机应用技术[M], 四川:电子科技大学出版社,2004
[4]胡伟,季晓衡. 单片机C程序设计及应用实例[M],北京:人民邮电出版社,2004&
[5]朱定华.微型计算机原理及应用[M],北京:电子工业大学出版社,2005.12
[6]李文江,张岩.用L298实现雷管脚线合股剥皮机多步进电机控制[J],辽宁工程技术大学学报,2005.2
[7]赵龙庆,徐国栋.一种基与单片机的步进电机控制驱动器[J],西南林学院学报,2005.6
[8]赵景波,王劲松.PROTEL2004电路设计[M],北京:电子工业出版社,2004.7
[9]陈理璧. 步进电动机及其应用[M],上海科学技术出版社,1995
&&&&&&&&&&&&&&&&&&&&&&&&&&&& PCB板的3D模型图
阅读(37303) | 评论(10) | 转发(0) |
给主人留下些什么吧!~~
把东西复制到word上,有些图片可以显示出来的,谢谢分享
请登录后评论。

我要回帖

更多关于 单片机输出口驱动不够 的文章

 

随机推荐