首页 >> 高频电缆

基础福利 占空比可调的波形发生器实例解析退火机

时间:2022/10/10 01:18:08 编辑:

基础福利 占空比可调的波形发生器实例解析

对很多刚刚开始接触占空比可调电路设计的新人工程师来说,PWM程序的设计以及扩展电路设计方面是比较容易出问题的两个环节,同时,这两个部分也是实现占空比可调节的重点。在今天的基础福利分享过程中,小编将会为大家分享一种占空比可调的波形发生器实例解读,下面就让我们一起来学习吧。

在我们所设计的这一占空比可调的波形发生器案例中,直流电机PWM控制系统的主要功能包括实现对直流电机转速的调整,能够很方便的实现电机的智能控制。主体电路部分即直流电机PWM控制模块。这部分电路主要由AT89C51单片机的I/O端口、定时计数器、外部中断扩展等调整直流电机的转速,能够很方便的实现电机的智能控制。其间是通过AT89C51单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。该直流电机PWM控制系统由设计输入模块、设计控制部分、LED数码显示部分组成。

系统框架设计

在熟悉了设计要求后,我们依据设计要求所提出的总体方案的硬件部分详细框图,如下图图1所示。


图1 硬件部分详细框图

通过图1所展示的硬件部分详细框图可以看到,在这一占空比可调的PWM波形发生器系统中,直流电机PWM调速系统以AT89C51单片机为控制核心,由命令输入模块、LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给L298直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转和急停控制;同时单片机不停的将PWM脉宽调制占空比送到LED数码管完成实时显示。

系统硬件设计

硬件模块主要由单片机控制模块、L298电机驱动模块、LED显示模块和独立键盘控制模块3.3系统硬件各模块电路组成。在本方案中,我们主要利用定时计数器让单片机P2口的P2.6、P2.7引脚输出占空比不同的方波,然后经驱动芯片L298放大后控制直流电机。驱动芯片的输入电压是两引脚的电压差,在调速时一根引脚线为低电平,另一个引脚产生调速方波,这样两个引脚的电压差就可通过控制其中一个引脚来控制。当需要改变电机转动方向时,两个引脚的输出相反。本系统的硬件设计情况如下图图2所示。


图2 占空比可调的波形发生器硬件设计图

在图2所展示的这一PWM波形发生器的硬件系统设计中,单片机的定时计数器若干时间(1us)就会中断一次,就使P2.6或P2.7产生一个高电平或低电平。直流电机的速度分成100个等级,因此一个周期就有100个脉冲,周期为一百个脉冲的时间,速度等级对应一个周期的高电平脉冲的个数。占空比为高电平脉冲个数占一个周期总脉冲个数的百分数。一个周期加在电机两端的电压为脉冲高电压乘以占空比。占空比越大,加在电机两端的电压越大,电机转动越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比。当我们改变占空比时,就可以得到不同的电机平均速度,从而达到调速的目的。


软件设计

在这一占空比可调的PWM波形发生器设计过程中,软件设计同样是非常重要的一环,也是新人工程师们非常容易出错误的一个环节,下面我们将会进行重点介绍。在该方案中,我们所设计的主程序部分主要对定时计数器T1的工作方式、中断入口地址、计数初值、中断产生、进行设置,为了方便程序编程。


图3 主程序流程图

在了解了图3所示的主程序流程图后,下面我们首先来看一下这一软件程序中的定时计数器TMOD设置。这里我们选用T0作为产生脉冲用的定时器并且使它工作在模式1下。在模式1中,寄存器TH0和TL0以全8位参与操作,构成一个16位定时/计数器,当TH0溢出时向中断标志位TF0进位,并申请中断。在这种模式下,T0定时时间最长,有利于在更大的范围内对电机进行调速。工作模式寄存器TMOD的高4位用于T1,低4位用于T0,其中,GATE为门控位,C/T为定时/计数器方式选择位,C/T=0为定时器方式,C/T=1时为计数器方式。M1M0的工作模式选择位具体如下图图4所示。因为在程序中,T0是作为定时器而存在的,因此T0的C/T控制位就应设置为0,T0工作在模式1,TMOD中控制T0的M1M0应设置为01,其它位全部设置为0,即应给工作模式寄存器TMOD赋值01H。


图4 M1M0的工作模式选择位

工作方式1及初值计算

下面我们来看一下,这种占空比可调的PWM波形发生器软件设计中最关键的一步,那就是单片机当M1,M0=01时,定时/计数器处于工作方式1,此时,定时/及数器的等效电路仍以定时器0为例,定时器1与之完全相同。方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,而方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字(GATA、C/T、TF0、TR0)和方式0相同。在工作方式1下,计数器的计数值范围是: 1—65536(216)。当为定时工作方式1时,定时时间的计算公式为:(216—计数初值)╳晶振周期╳12。

如果单片机的晶振选为6.000MHz,则最小定时时间可以计算为:

[213—(216—1)]╳1/6╳10-6╳12=2╳10-6(s)=2(us)

(216—0)╳1/6╳10-6╳12=131072╳10-6(s)=131072(us)

定时/计数器中的计数器是在计数初值基础上以加法计数的,并能在计数器从全“1”变为全“0”时自动产生溢出中断请求。因此,可以把计数器计数初值设定为TC,定时器定时时间T的计算公式为:T=(M-TC)T。计数2式中M为计数器模值,该值和计数器工作模式有关。在模式1时M为216。在定时器模式下,T计数是单片机振荡周期的12倍。上式也可写成:TC=M-T/T计数在程序设计中工作模式为模式1,则计数器模值M=216=65536。假设单片机仿真器的晶振频率为22.1184MHz,则:T计数=12/(22.1184×106)=5.425347×10

若定时时间长度为30ms,则:TC=65536-30×10-3/5.425347×10-7=10240=2800H

给定时器赋值时程序为:

MOVTL0,#00H

MOVTH0,#28H


在软件程序的设计过程中,该种波形发生器的电视终端子程序流程图设计如下图图5所示。


图5 定时中断子程序流程

在进行定时中断子程序的设计过程中,我们根据中断子程序的需要,首先需要为IE的各位赋值。首先来看外部中断0的中断允许位的设置,此时EX0=1,则允许外部中断SETBEX0。定时器T0溢出中断允许位时ET0=1,允许中断请求SETB ET0。允许中断时EA=1,CPU允许中断,则应设置为SETBEA。串行口中断允许位时ES=1,允许串行口中断SETBES。以上各位等于1时,CPU开放中断;等于0时,CPU禁止该中断。单片机系统复位后,IE中各位均被清零,即禁止所有中断。因此程序中开T0中断则应将ET0置1,另外如果要使用中断EA也要置1,故应给IE赋值为82H。

在完成了该种占空比可调的波形发生器硬件、软件设计后,我们对该系统进行调试,得到的仿真整体图如下图图6所示:


图6 仿真整体图

在进行PWM波形测试时,将加速分为5档,所得到的波形图如下图图7所示,减速分5档,波形如下图图8所示。


图7 加速波形图测试结果


图8 减速波形图测试结果

以上就是本文为大家所分享的一种占空比可调的PWM波形发生器的实例分析全过程,希望能够通过本文的分享,为各位工程师的设计和研发工作带来一定的帮助。

标签:占空比 波形发生器
空调不出水是什么原因
燃气灶打不着火了怎么办
海尔空调化霜不停机
海尔空调有异味
相关资讯