历史上的今天

今天是:2024年11月12日(星期二)

正在发生

2019年11月12日 | 一个定时器生成多路PWM波形的原理和方法

发布者:雅逸之风 来源: 51hei关键字:定时器  PWM波形  脉宽调制 手机看文章 扫描二维码
随时随地手机看文章

在很多工程应用中,需要使用到PWM波(脉宽调制),例如电机调速、温度控制调整功率等。本文讲述怎么利用单片机的一个定时器生成多路PWM波形。


一般的,PWM的周期t1是一个固定值,如1ms,10ms,100ms等,在一个周期中包含了高电平t2和低电平t3,它们的关系是t2+t3=t1。改变一个周期中高电平的时间,就能达到速度或者功率调整的目的。PWM适用于高速开关器件的控制,不适合于继电器等低速开关元件的控制,因为继电器等低速元件达不到如此快的开关速度。


PWM控制的关键是控制改变PWM的高电平时间t2,这个时间在其他子程序中由控制算法中进行修改,如PID控制算法。
 
图 1


在微处理器,如单片机中,实现一个定时器生成多路PWM的方法如下。


首先来看看用一个定时器实现一路PWM输出的方法:
>>定义一个时间基准刻度t,这个也是计时器中断周期,一般在程序中t不改变。PWM的周期、高低电平时间由若干个基准时间t组成;
>>定义一个全局计时变量n,n表示这段时间经过了多少个基准时间t;
>>定义一个全局计时变量n1,n1表示一个PWM的周期包含多少个基准时间t,n1=t1/t。一般在程序中n1,t1不改变。


>>定义一个全局计时变量n2,n2表示一个PWM周期中高电平包含多少个基准时间t,n2=t2/t。由于高电平的时间受其他算法控制改变的,n2也是随时在改变。
程序的流程如下:


①初始化定时器,定时器中断时间设置为t,如设置t为1ms或其他;


②初始化变量:n=0;//计时变量n清零
n1=t1/t;//一个PWM的周期t1包含了多少个基准时间t.
//假如设PWM周期为100ms,则n1=100;

n2=t2/t;//计算一个PWM中高电平时间t2由多少个基准时间//t组成。t2由其他控制算法改变。


③开始计时,打开定时器中断。定时器中断程序中n++;
当n当n>=n2&& n当n>n1时,返回步骤①进行下一个周期的PWM.


程序流程图如下:
 
图2


如果在同一个定时器中需要多路PWM,再定义多组类似的变量,按照图2 中流程处理即可。

关键字:定时器  PWM波形  脉宽调制 引用地址:一个定时器生成多路PWM波形的原理和方法

上一篇:基于51单片机的DS18B20温控系统设计
下一篇:51单片机DS18B20温度传感四位数码管显示报警

推荐阅读

        集微网消息11月10日,台基股份发布公告表示,公司与北京亦庄国际投资发展有限公司(以下简称亦庄国投)及深圳海德复兴资本管理有限公司(以下简称海德资本)签署了《战略合作协议》,拟在半导体领域进行联合投资、并购重组等战略合作。        公告显示,台基股份、亦庄国投和海德资本的战略合作主要包括4个方向,首先是三方拟在半导...
球领先的半导体解决方案供应商瑞萨电子株式会社(TSE:6723)今日宣布推出首批10款合作伙伴解决方案,可支持Renesas Advanced(RA)产品家族32位Arm® Cortex®-M 微控制器(MCU)。RA MCU通过Flexible Software Package(灵活配置软件包,FSP)与合作伙伴的模组解决方案,优化系统性能及方案的易用性,用户可开箱即用地解决各种物联网(IoT)不同终端...
在疫情冲击下,各行各业都受到不同程度影响,加之中美贸易问题僵持不下,使得今年整个智能手机产业都处于复杂多变的大环境中。因此,许多厂商的业绩也在终端品牌备货需求、新品周期等因素影响下出现较大的波动。从产业链公司上半年的业绩表现来看,普遍较为低迷。值得注意的是,这样的局面在今年第下半年有了明显的改善,有部分厂商作为苹果和华为两大品牌...
Coating侧边指纹芯片成为手机端主流应用方案(2021年11月11日,中国深圳讯)近日,国产四大手机厂商之一的vivo推出了一款新型智能手机Y15s,其成功搭载了北京集创北方科技股份有限公司(简称“集创北方”)自主研发的生物识别芯片——Coating侧边指纹芯片ICNF7312。该款手机主要销往海外市场,取得了不错的销售业绩。Coating侧边指纹芯片ICNF7312属于生物...

史海拾趣

问答坊 | AI 解惑

DS18B20为何显示I5字符?我就是按照下面电路接法。。DS18B20为何显示I5字符?

DS18B20为何显示I5字符?我就是按照下面电路接法。。DS18B20为何显示I5字符?DS18B20为何显示I5字符?我就是按照下面电路接法。。DS18B20为何显示I5字符?…

查看全部问答∨

wince环境的can适配卡驱动设计

摘要:简要介绍了嵌入式实时操作系统WinCE环坑下驱动 程序的设计原理和CAN总线技术,并详细分析了依托PC/ 104总线的CAN适配卡底层驱动程序的设计与实现。…

查看全部问答∨

单片机工作电压要求在4.5V到5.5V之间,讨论下控制的方式

单片机工作电压要求在4.5V到5.5V之间,如果超过此范围单片机就停止工作,用硬件方式解决,大家讨论下有没有什么好的方式………

查看全部问答∨

LED计价称典型应用电路

LED计价称典型应用电路 好东东,用芯海科技CSU1221做的,手快有手慢无,只放一周!   …

查看全部问答∨

深圳华凯

我司专业从事电子产品克隆,PCB抄板,高速PCB设计,BOM单制作,反推原理图,样机制作,调试,芯片解密,PCB量产,半成品小批量加工等。  确保100%一次性成功,不成功不收任何费用。 您公司需要PCB打样吗? 我司是一家专业生产pcb样板的生产企 ...…

查看全部问答∨

【Lattice技术问题】ISPlever调用RAM,反正出错

# ELAB2: Fatal Error: ELAB2_0036 Unresolved hierarchical reference to \"PUR_INST.PURNET\" from module \"mac_add_tb.UUT.u4.u1.ram1_0_0_0\" (module not found).# ELAB2: Last instance before error: /UUT/u4/u1/ram1_0_0_0# KERNEL: Error ...…

查看全部问答∨

你教我嵌入式,我教你VC,可行?上海

我一直做上位机软件开发,VC又占其中的大多数时间。现在感觉嵌入式很重要,想找个人互补一下知识。 受一个帖子《你教我MFC,我教你英语,怎么样》的启发,想找个想学VC、却一直在做嵌入式开发的朋友,你教我嵌入式开发,我教你VC(Web开发我也做过一 ...…

查看全部问答∨

Ce6.0的usb同步连接,Ce提示连接成功,PC端activesync提示正在连接一会过后,下面自动断开

使用6.0自带模拟器的2410BSP,移植到自己的平台上了,但USB连接不上,usb定制的是serial功能。 开始是出现如下data abort: UsbFnMdd!UFN_Init: PDD has 5 endpoints UsbFnMdd!UFN_Init: PDD supports speeds 0x1 UsbFnMdd!CUfnBus::CreateChil ...…

查看全部问答∨

ARM LCD控制寄存器问题

根据时序要求,我们设定VM/VDEN信号作LCD的ENAB信号,VCLK信号作LCD的NCLK信号。要想得到合适的VM和VCLK波形,就要正确设定寄存器的值,根据寄存器的值与VM和VCLK波形的关系,我们设定了如下关键寄存器的值: HSPW=10;HBPD=100;HFPD=47; VSPW=1;VBPD=37 ...…

查看全部问答∨

【求助】问个关于看门狗的问题!

关闭看门狗是用 MOV #WDTPW+WDTHOLD,&WDTCTL 这句话的意思是将 HOLD置位吧? 那我用 bis #080H, &WDTCTL,这样可不可以呢? 还有,WDTPW究竟是个什么咚咚?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved