单片机PWM控制C程序语言_第1页
单片机PWM控制C程序语言_第2页
单片机PWM控制C程序语言_第3页
单片机PWM控制C程序语言_第4页
全文预览已结束

下载本文档

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

文档简介

单片机PWM控制C程序语言单片机PWM控制C程序语言单片机PWM控制C程序语言资料仅供参考文件编号:2022年4月单片机PWM控制C程序语言版本号:A修改号:1页次:1.0审核:批准:发布日期:下面介绍一下单片机PWM控制C语言实例,单片机PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。PWM—脉冲宽度调制,是一种周期一定而高低电平可调的方波信号。广泛使用电机调速的项目中,用了S52单片机的T2定时器产生PWM波信号,用于控制直流电机的转速,虽然电机的平均速度与占空比不是严格的线性关系,但是在调节占空比可以明显的看出电机转速发生了改变,也算是满足了课题的要求。下面复习一下PWM的知识吧:

PWM—脉冲宽度调制,当输出脉冲的频率一定时,输出脉冲的占空比越大,相对应的输出有效电压越大。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。T1为脉冲宽度(就是导通时间),周期为T,则输出电压的平均值为U=VCC*T1/T=a*VCC,a是占空比,变化范围为0≤a≤1。VCC为电源电压。所以当电源电压不变的情况下,输出电压的平均值U取决于占空比a的大小,改变a的大小就可以改变输出电压的平均值,这就是PWM的工作原理。采用T2定时器产生PWM脉冲极其精确,误差只在几个us。

//单片机PWM控制C语言实例文件名:

//单片机PWM控制C语言实例功能:用T2定时器产生PWM波,频率实调1khz

//单片机PWM控制C语言实例说明:单片机AT89S52,晶振12MHZ;

#include""

#defineuintunsignedint

#defineucharunsignedchar

sbitPWM=P1^1;

ucharpluse;//占空比寄存器

voidTimer2()interrupt5

{

staticuchartime;

TF2=0;

if(++time==pluse)PWM=0;//达到脉宽设定值时,输出PWM低电平

elseif(time==40)//PWM的频率为1khz左右

{

time=0;

PWM=1;

}

}

voidInitTimer2(void)//初始化函数

{

RCAP2H=0xff;//定时25us初值

RCAP2L=0x0e7;//

ET2=1;

EA=1;

TR2=1;

}

voidmain(void)

{

InitTimer2();

while(1)

{

pluse=20;

}

}把PWM波的周期定为1ms,占空比分40级可调(即每级差%),这样定时器T2每25us产生一个定时中断,每40次中断后进入下一个PWM波的周期。在程序中,pluse=20,即占空比为50%,输出的平均电压为12*50%=6V。PWM产生的过程是这样的,开始

温馨提示

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

评论

0/150

提交评论