单片机产生PWM信号的原因是什么_第1页
单片机产生PWM信号的原因是什么_第2页
单片机产生PWM信号的原因是什么_第3页
单片机产生PWM信号的原因是什么_第4页
单片机产生PWM信号的原因是什么_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页单片机产生PWM信号的原因是什么?

随着(电子)技术的飞速发展,PWM控制技术渐趋成熟,主要应用于在(电力电子)技术行业。采用(模拟)控制方式生成的脉冲宽度调制(PWM)(信号),是根据相应载荷的变化来调制(晶体管)基极或MOS管栅极的偏置,实现晶体管或MOS管导通时间的改变,最终实现开关稳压(电源)输出的改变产生PWM信号,这种方式较复杂,成本也高。而采用(单片机)产生PWM信号,既简单又方便,成本低,因此,本文就单片机产生PWM信号进行分析。

1PWM

脉冲宽度调制作为控制技术常采用的控制方式,以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式。随着(微机)技术在控制领域的广泛应用,单片机控制的PWM技术迅速发展,其突出特点是可以比较容易地选择最佳的脉冲调制频段。但在(智能)化(产品)开发中,许多常用的单片机没有提供脉宽调制(PWM)电压信号输出功能,而在某些特定的场合需要得到PWM信号。因此,基于单片机产生PWM信号的分析就显得非常必要。

脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。可见,PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流(供电)要么完全有,要么完全无。电压或(电流源)是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

2PWM****信号的产生

脉冲宽度调制信号本质上是由占空比不同的矩形脉冲周期变化来构成的,其占空比与信号的瞬时采样值成一定的比例。根据这种方式可以采用单片机定时中断的方法,使单片机的I/O口输出一定频率的高、低电平信号,通过调节高、低电平的持续时间,即占空比的改变,这样就可以实现一定周期一定占空比的PWM信号,采用这种方式更加有效。比如采用AT89S52单片机来产生的PWM信号控制直流电动机的转速,可以很方便的在电动自行车及相关诸多领域的调速系统中进行使用。

2.1单片机定时器中断

中断是指当(CPU)执行主程序时,系统中若出现某些急需处理的异常情况和特殊请求时,CPU会暂时中止程序的运行,去执行中断服务函数,处理完毕后,CPU将自动返回到原来主程序的端点处继续执行。而单片机(定时器)中断是在定时器工作方式下,根据设定的定时时间进行单片机内部(时钟)脉冲进行计数,当计满溢出时产生中断请求,即定时器中断。定时中断是单片机技术中经常采用的中断方式,应用非常广泛。

2.2AT89S52单片机产生PWM信号

采用单片机产生PWM信号是一种非常可靠、有效的控制方式,本文以AT89S52单片机为例来产生PWM信号,通过定时中断程序来确定脉冲周期以及高低电平各自占用时间,从而形成不同的占空比,产生PWM脉冲信号。

如图所示,取AT89S52的I/O口的P3.0和P1.0两个引脚,使用P1.0接一按键开关,作为PWM信号产生的开关使用,按键闭合表示开始产生PWM信号,按键断开表示不产生PWM信号。使用P3.0用来输出PWM信号,通过P3.0输出一定的高电平信号作为脉宽,达到脉宽的设定值时,输出低电平,到达周期的设定值时又重复输出高电平,进行周期循环,从而实现PWM信号的产生。通过单片机产生的PWM信号,可以灵活的改变周期和脉冲宽度参数,从而产生不同周期和占空比的PWM信号。以产生周期为10ms、占空比为60%的PWM信号为例进行分析,采用(Proteus)对电路进行(仿真)来产生PWM信号。

图1AT89S52产生PWM信号Proteus仿真电路图

本例中时钟频率为12MHz,采用定时器T0,工作方式设置为方式2,定时器T0的初值设定为0.1ms,即100us,因此,TH0=-100,TL0=-100。PWM的周期参数PWM_T(周期定义为10ms)参数设定为100,脉冲宽度参数PWM_mk设定为60。源程序如下:

#include

#defineucharunsignedchar

#defineuintunsignedint

#definePWM_T100

sbitK1=P1^0;

ucharPWM_mk;

ucharPWM_count;

uchar(ti)me_i;

sbitPWM=P3^0;

voiddelay(uintms)

{uchari;

uintj;f(or)(j=0;j}

voidmain()

{PWM_mk=0;

PWM=0;TMOD=0x02;TH0=-100;TL0=-100;EA=1;ET0=0;TR0=0;while(1){if(K1==0)delay(10);if(K1==0){PWM_mk=60;ET0=1;TR0=1;}}}

vo(idt)ime0(void)interrupt1using0

{time_i++;

if(time_i>=PWM_T)time_i=0;if(time_i}

采用(keil)软件编译程序,程序编译成功,采用仿真软件Proteus进行仿真产生需要的PWM信号,如图2所示。

图2占空比为60.%的PWM信号波形

2.3PWM信号的调节

通过单片机来产生PWM信号灵活方便,如果需要改变占空比,只需要改变程序中的脉冲宽度参数即可,程序中脉冲宽度参数为PWM_mk,如将PWM_mk设为30,则PWM信号的占空比为30%;若要改变PWM的周期,应该改变程序中PWM_T的值即可,此时应注意定时器工作方式2的最大计数,以免溢出无法计数,若超出计数最大值,可以选择工作方式1进行程序编写。

**3**结语

综合以上分析可以看出,采用单片机产生的PWM信号电路简单,成本低,无需通过对模拟电路个(元器件)参数进行计算及(电路设计)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论