PWM电机调速原理及51单片机PWM程序经典_第1页
PWM电机调速原理及51单片机PWM程序经典_第2页
PWM电机调速原理及51单片机PWM程序经典_第3页
PWM电机调速原理及51单片机PWM程序经典_第4页
PWM电机调速原理及51单片机PWM程序经典_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、抱米花特别说明此资料来自百度文库( )您目前所看到的文档是使用的抱米花百度文库下载器 所生成此文档原地址来自感谢您的支持http:/blog sina com cn/lotusbaobPwm电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的吋候, 电源并非连续地向电机供电,而是在 个特定的频率下以方波脉冲的形式提供电 能。不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个 人电感,它有阻碍输入电流和电丿力突变的能力,因此脉冲输入信号被平均分配到 作用时间上,这样,改变在始能端PE2和PD5上输入方波的占空比就能改变 加在电机两端的电压大小,从而改变了转

2、速。此电路小用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式來实现,即通过执行软件延吋循环程序交替改变端口某个二进 制位输出逻績状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。(2)硬件实验口动产生PWM信号,不占用CPU处理的吋间。这就要用到ATMEGA8515L的在PWM模式下的计数器1 ,具体内容可参考 相关书籍。51单片机PWM程序0/256,两个波形之间要错开,产生两个PWM, g求两个PWM波形占空都为不能同时为高电平!高电平之间和差48/256,PWM这个功能在PIC单片机丄就有,但是如果你就要用51单片机的话,也是可以的,但是比较的麻烦.可以用定时器T0

3、来控制频率,定时器T1来控制占空 比:大致的的编程思路是这样的:T0定吋器屮断是让一个I0 口输出高电平,在 这个定时器T0的中断为中起动定时器T1,而这个T1是让IO 口输出低电平, 这样改变定吋器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占牢比。.程序思路说明:*关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样 定时小断次数*设定为C=10,即0.01MS 'I'断 诙,则TH0=FF,TL0=F6;i于设定中断时间为0.01ms,这样*少可以设定占空比可从1-100变化。即0.01 ms*100=1 ms#include <R

4、EGX51.H> #define uchar unsigned char*计算办* THO和TLO是计数器0的高8位和低8位计数器,法:TL0=(65536-C)%256;* TH0=(65536-C)/256,K-'|' C为所耍计数的次数即多长吋间产生次屮断;TMOD是计数器协*工作模式选择.0X01衣示选用模式h它有16位计数器,最大计数脉冲为65536, 最长时* 少间为 1ms*65536=65.536ms#define V_THO OXFF#define V_TLO 0XF6#define V_TMOD 0X01void init_sys(void); voi

5、d Delay5Ms(void);广系统初始化函数”/unsigned char ZKB1 ,ZKB2;广占空比初始值设定看/ 广占空比初始值设定Tvoid main (void) init_sys();ZKB1=40;ZKB2=70; while(1)if (!P1_1)/如果按了+键,增加占空比Delay5Ms(); if(!P1_1)ZKB1+;ZKB2=100-ZKB1;if (!P1_2)/如果按了键,减少占空比Delay5Ms();if (!P1_2)ZKB1-;ZKB2=100-ZKB1;广对占空比值限定范围*/ if (ZKB1>99) ZKB1=1;if (ZKB1&l

6、t;1) ZKB1=99;*函数功能:对系统进行初始化,包括定吋器初始化和变量初始化*/ void init_sys(void)广系统初始化函数*/广定时器初始化"/TMOD=“V” TMOD;TH0=V THO;TLO=V_TLO;TR0=1;ET0=1;EA=”1”;延吋void Delay5Ms(void)unsigned int TempCyc = 1000;while 仃 empCyc);广中断函数勺void timerO(void) interrupt 1 using 2static uchar click=”0"广屮断次数计数器变量*/TH0=V_TH0;广恢

7、复定吋器初始值*/TL0=V_TL0;+click;if (click>=100) click="On;if (click<=ZKB1)广为小丁占空比值时输出低电平,高于时是高电平,从血实现占空比的调整*7P1_3=0;elseP1 3=1;if (click<=ZKB2)P1 4=0;elseP1 4=1;1. 是AVR的程序,51产生PWM波麻烦,可以用AVR。主耍是设置存放的TOP值(OCR1A的值),然后你耍多大的占空比再设置OCR1B的值,至于 持续时间就更简单了,你要产生多久,就调用此函数就可以了哈2.产生方波的频率计算公式(KHZ)f=fclk(晶振)/*N(1+OCRNA)N:代表分频因子根据你要的产生方波的频率,就能算出OCRNA的值,就可以了!广OCR1 B(PD4)±nJ测到 100HZ 的 PWMg*/(PD5) :"J于0 50HZ J#inelude <iom16v.h> include <macros.h> void PW

温馨提示

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

评论

0/150

提交评论