设计与开发

单片机输出pwm波 单片机输出PWM脉冲的两种方法

小编 2024-10-06 设计与开发 23 0

单片机输出PWM脉冲的两种方法

51单片机没有PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的。采用高速光隔6N137输出,并将PWM的信号倒相。

本文引用地址:http://www.eepw.com.cn/article/201609/296668.htm

一、 工作原理

二、PWM输出

1. 固定脉宽PWM输出

用T0定时器完成PWM输出,脉宽固定为65536μs。T0定时器设置成16位定时器,PWM波形如图2所示。

程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字)

PwmData1 ;T0定时t2的初值(字)

PwmF     ;PWM输出标志

;***************************

setb tro ;启动T0

……

T0Int:;T0中断服务程序

JB PwmF ,PwmOutH

;PWM输出未完成返回

Mov TH0,High(PwmData0)

Mov TL0,Low(PwmData0)

Setb tr0

Setb PwmF

Clr p1.0 ;PWM输出脚

reti

PwmOutH:Setb p1.0

Clr tr0

Mov TH0,High(PwmData1)

Mov TL0,Low(PwmData1)

Setb tr0

Clr PwmF

reti

说明:在主程序中计算PwmData0、PwmData1的值。

2. 可变脉宽PWM输出

用T0定时器控制PWM的占空比,T1定时器控制脉宽(最大65536μs。)

T0、T1定时器设置成16位定时器。

程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字)

PwmData1 ;T1定时T的初值(字)

;***************************

setb tro ;启动T0

setb tr1

……

T0Int:Clr tr0   ;T0中断服务程序

setb p1.0 ;PWM输出脚

reti

T1Int:Clr p1.0 ;T1中断服务程序

Clr tr0

Clr tr1

Mov TH0,High(PwmData0)

Mov TL0,Low(PwmData0)

Mov TH1,High(PwmData1)

Mov TL1,Low(PwmData1)

Setb tr1

Setb tr0

reti

说明:在主程序中计算PwmData0、PwmData1的值。

PIC单片机之PWM原理

1,什么是PWM

什么是PWM,专业点说脉宽调制,通俗点说 就是不断的输出高低电平。 比如 单片机 40ms的时间 输出高电平然后60ms的时间 输出低电平接着一直不断周期性的交替输出高低电平 这就是典型的PWM波。高电平输出的时间40ms就是传说中的脉宽,40ms+60ms=100ms 便是PWM的周期。假定我们把周期定为100ms.我们可以根据我们的需要 把高电平的时间加大或者减小,比如 高电平输出时间加大为80ms.那么低电平的时间就变为20ms. 也可以 高电平输出时间减小为20ms.那么低电平的时间就变为80ms.这即是脉宽调制 调的便是这高电平的时间。 而高电平(脉宽)在周期中,所占用的时间比例 就被称为占空比。用数学公式表示 高电平的时间/周期的时间=占空比。

2,PWM的实现方式

我们如何让单片机输出PWM波。有两种方式 一种是直接用I/O输出,另一种方式利用模块。

2.1利用I/O口输出PWM

如果你的单片机没有带有PWM输出功能模块,那么你可以自己写个程序输出PWM波。因为PWM不就是高低电平。一个I/O在加上一个定时器,对于任何单片机来说都是很容易做到的。

2.2利用模块输出PWM

对于PIC单片机而言就带有输出PWM的功能模块。利用模块输出PWM其实比利用I/O输出PWM更加简单便捷精确。

3,PWM的作用

PWM能用来做什么PWM比较典型的应用就是对LED调光和电机调速。那PWM是如何进行调光和调速的呢,其实也很好理解。以给LED调光为例。给LED一直通电LED是最亮的。不给LED断电LED是不亮的。那要是在极短的时间内给LED不断的通电断电。那给人眼的感觉就是LED虽然是亮的,但亮度较低。

如果单片机高平输出时LED是亮的。那么在PWM波中高电平输出的时间越长LED就越亮,反之则越暗。

相关问答

单片机 是怎么通过 pwm波 来控制电机运转的,工作原理是什么?

PWM的英文全称是PulseWidthModulation的缩写,翻译成中文就是脉冲宽度调制,PWM是一种利用数字输出来对模拟电路进行控制的技术,它的实质就是使用数字信号...

51 单片机 产生 pwm波 的c程序是什么?

用定时器产生程序如下:unsignedinta=0,b=10;voidmain(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000...

pwm 是怎么调节 输出 频率的?

电压变化是通过占空比的调节改变的。改变频率输出是通过改变开关的动作频率实现的。在理想条件下以电压型PWM为例:直流侧是电容器,然后通过全控器件(如IGBT...

单片机 产生 pwm 的方法?

在单片机中生成脉宽调制(PWM)信号的方法可以根据具体的单片机型号和架构而异,但是通常有几种常见的实现方法。以下是其中两种较为常见的单片机产生PWM信号的方...

pwm波 和方波的区别?

方波是一种波形,其中信号只有两个电平。信号在这些电平之间定期切换,并且切换是即时的。这些特性意味着波形随时间变化的图形将产生具有方形角的形状。PWM是...

stc15 单片机pwm 工作原理?

STC15W内部集成了一个15位的PWM模块,可以6路独立输出.此外PWM模块每一路都有两个用于控制波形翻转的计数器T1和T2,可以灵活地控制每路PWM的高低电平宽度,...

关于 单片机PWM输出 的问题?

Pwm输出一般指的是脉冲宽度调制,这个一般是在电流控制的时候需要用到的,一般是是稳压的作用,至于具体的问题的话要具体的分析Pwm输出一般指的是脉冲宽度调...

求详细解释这个51 单片机PWM波 原理初学者,求逐步详解.#includ...

[最佳回答]这个程序每一条语句你肯定能看懂,给你加注释没有必要,给你讲讲PWM的原理,你再对照程序看就明白了你要用51产生PWM去控制LED,首先你要确定PWM的周期T...

PWM 与电压如何高速转换?

PWM信号是脉宽调制信号,可以转化成电压信号,所转化成的电压信号与PWM的占空比有着直接的关系。所谓占空比,就是指在一个周期中高电平占整个周期的比例。1PWM...

0-5V转 PWM 谁有做过单片机方案,为什么我的 单片机输出PWM 老是不稳?

一般在模拟信号采集成数字信号后做个平均,估计会好。如果你只是用到了电压转PWM这一个功能的话,可以直接使用APC芯片,不需要编程序,厂家估计已经固化了。GP93...

猜你喜欢