产品选型

单片机pwm口 PIC单片机之PWM原理

小编 2025-07-03 产品选型 23 0

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脉冲的两种方法

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的值。

相关问答

32 单片机 pwm口 有哪些?

那得看你stm什么型号和什么封装了,选型手册上有,普通定时器4个,高级可以出6+1个那得看你stm什么型号和什么封装了,选型手册上有,普通定时器4个,高级可以出6+1个

单片机 有多少 PWM 输出的引脚 - Sz 的回答 - 懂得

PWM功能,不同单片机有所不同。一般指的PWM是指单片机包含硬件PWM模块,不需要软件模拟,可实现稳定、高速的PWM占空比输出,且不占用太多软件资源。部...

pwm 的单双边沿是什么?

PWM里面单边沿和双边沿的提法,只是LPC176X处理器中的两个PWM控制模式。单边沿模式的起始状态总是高电平。单边沿模式只需要设置两个寄存器,一个决定PWM周期,另...

stc12c5A60s2 单片机pwm 输出怎么写,两路的CCAPM0=0x42这是P1.3 的?

P1.4是模块1来控制的,初始化后给CCAPM1赋值就可以。P1.4是模块1来控制的,初始化后给CCAPM1赋值就可以。

stc15 单片机pwm 工作原理?

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

stc 单片机 关闭 pwm 管脚是什么电平?

在STC单片机中,关闭PWM(脉冲宽度调制)管脚一般是将其设置为低电平。具体来说,对于STC单片机中的PWM输出管脚,通过相应的寄存器设置,可以将其输出设置为高电...

单片机pwm 是什么原理 - 131****4864 的回答 - 懂得

模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的...这种方...

单片机PWM 程序是肿么编写的啊,能给一个简单的例子吗?-ZOL问答

有PWM功能的单片机入STC12系列单片机,直接给专用寄存器赋值开启相应定时器就可以了。普通单单片机,PWM需要用自己来调配。比如:#includeunsigne...

单片机PWM 驱动mos管?

不建议使用以下这类用通用光耦搭的电路,有诸多麻烦。建议使用TLP250或类似芯片。不建议使用以下这类用通用光耦搭的电路,有诸多麻烦。建议使用TLP250或...

pwm 输出在51 单片机 哪个位置?

1.PWM输出在51单片机的P1口。2.这是因为51单片机的P1口具有PWM输出功能,可以通过设置相关寄存器来实现PWM输出。3.PWM输出是通过调整占空比来控制输出信号...

猜你喜欢