51单片机产生PWM方法

发布时间:2023-03-14  

89C51芯片没有自带PWM发生器,如果要用51来产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器产生两种方法。下面将逐一介绍。


1 软件延时法

利用软件延时函数,控制电平持续的时间,达到模拟pwm的效果。

程序如下:

#include

sbit pwm=P1^0;

main()

{

while(1)

{

pwm=1;

delayus(60);//置高电平后延时60us,占空比60%

pwm=0;

delayus(40);

}

}

void delayus(uint x)

{

while(x--);

}

proteus软件仿真结果如下:

可见,用这种延时函数的方法就能简单地模拟出pwm输出。但是这种方法的缺点也相当明显。当程序除了要输出pwm波还要执行其他操作比如键盘扫描、显示等操作时,需要占用CPU一定的机器周期,这样就会影响pwm的准确度。现在很少会用到这种方法,接下来要介绍的是比较常用的方法。


2 定时器产生pwm

这种方法利用了定时器溢出中断,在中断服务程序改变电平的高低,在程序较复杂、多操作时仍能输出较准确的pwm波形。


2.1注意事项

2.2.1中断服务程序的内容。

一般来说中断服务程序只完成改变标志位、转换高低电平的功能,如果中断服务程序中有太多的操作会影响pwm波的输出,尤其是除法、取余、浮点数运算会占用大量的机器周期,应在中断外完成运算。


2.2.2定时器装入初值的问题。

装入初值不能太接近于定时器的溢出值。如我们使用定时器方式1,最多能计65536个数,假设我们转入的初值为65534,那么定时器计两个数就会进入中断,这样会使程序紊乱而其他功能无法正常地执行,所以一般要留50-100个数的裕量。


2.2定时器工作方式

在定时器工作方式的选择上,可以选择定时器的工作方式0、1、2都可以,本文采用的是工作方式1,即16位定时器,这样可以获得较宽的调频范围。

2.3定时器初值的计算

设占空比为α,频率为f

产生高电平时装入定时器高8位的值应为

产生高电平时装入定时器低8位的值应为

显然,产生低电平时的公式只要把α换成(1-α)就行了。

然而在51单片机中,浮点数运算需要消耗cpu很长的时间,为了提高程序效率,通常用100倍的占空比来计算。同时,要注意数据类型,避免超出范围,影响计算结果。关于C51的乘除法问题,可以看以下这篇文章(点击阅读原文直接进入):

http://blog.163.com/ssou_1985/blog/static/295320362010311102232210/

修改后的公式如下:

a为100倍占空比,fr为0.01倍频率

TH0 = (65535-a*100/fr)/256; //高位初值

TL0= (65535-a*100/fr)%256;

同样,低电平的公式只需把a换成(100-a)即可。


2.4例程

本例程采用定时器T0在工作方式1下产生一路PWM,用独立键盘控制频率、占空比的加减,频率可调范围100Hz-10kHz,占空比0-100%(均为理论值,实际值略低)

部分代码如下:

注:T0_H , T0_L , T1_H , T1_L 均用于暂时存储初值,进入中断服务程序后直接给寄存器TH0、TL0赋值,避免了在中断中计算。

注:flag为pwm输出标志,flag=1输出高电平,flag=0输出低电平

完整的代码请到我的网盘下载(已失效)

http://yunpan.cn/QzKaWM8VesFyc


2.5软件仿真结果

2.5.1频率为100Hz

a.占空比约15%

b.占空比95%

2.5.2 频率为10KHz

a.占空比15%

b.占空比90%


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    pwm控制的基本原理 pwm是怎么驱动电机的;pwm控制的基本原理 PWM(脉宽调制)是一种常用的控制方法,通过调节信号的脉冲宽度来控制电路中的设备或器件的工作状态。其基本原理如下: 1. 脉冲......
    也会影响变频器自身的稳定性和可靠性。为了解决这些问题,需要使用变频器滤波器来过滤干扰信号。一、变频器滤波器的原理在变频器的输出端,通常使用PWM(脉宽调制)技术生成交流输出信号。PWM信号的基本原理......
    功率分析仪的有功功率测量基本原理;现今功率分析仪测量的基本原理为通用有功功率算法。功率分析仪的每个测量通道,对输入的电流或者电压信号进行采样,对采样得到的数据按下列所示公式进行计算获取结果: 其中......
    这个反馈值后我们就可以使用经典的PID算法,对电机的转速进行准确的控制了,这篇文章主要分享PID基本原理和Keil5的PID编程。 02 PID的基本原理 PID算法是上个世纪30年代......
    变频器的基本原理、分类及应用领域;引言 变频器(Variable-frequency Drive,简称VFD)是一种电力控制设备,通过改变电机工作电压和频率来实现对电机运行速度的调节。自20世纪70......
    么我们说话或者唱歌没有明显感觉到声音变小了呢?那是因为我们研发早就设计了参数,做了充分的实验,尽可能保证不影响用户的正常使用。 2、基础知识 本文主要讲解数字功放中的限幅压限。一起回顾一下功放的基本原理。 首先将模拟音频信号转换为可驱动MOS......
    PWM控制电机速度的基本原理;做STM32智能小车的实验中会用到定时器PWM输出,来改变直流电机的转速。分享本文了解如何通过PWM实现对电机速度的控制。 PWM控制电机速度的基本原理 PWM......
    ,直流无刷电机因为有霍尔元件做反馈所以转速几乎是稳定恒速的。 PWM基本原理 脉冲宽度调制即是PWM,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。主要的特点是脉冲,也就......
    和性能特点,下面将详细介绍其电压、电流波形及其相关内容。1.三相交流电输入变频器的基本原理三相交流电输入变频器是将三相交流电源输入到电机控制电路中,并通......
    眨眼学会PWM(2024-08-21)
    果给到输出端,根本不是数电书上异步2分频的结果!另外再次强调,由于FPGA的设计收到实际因素的限制,数电书上某些理模型是难以在实际中大量应用的,所以FPGA内部很多结构和综合结果都与数电书上有差异,但是数字电路的基本原理......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>