PWM电机调速原理及51单片机PWM程序经典_第1页
PWM电机调速原理及51单片机PWM程序经典_第2页
PWM电机调速原理及51单片机PWM程序经典_第3页
PWM电机调速原理及51单片机PWM程序经典_第4页
全文预览已结束

付费下载

下载本文档

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

文档简介

1、Pwm电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候, 电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电 能。不同占空比的方波信号能对电机起到调速作用, 这是因为电机实际上是一个 大电感,它有阻碍输入电流和电压突变的能力, 因此脉冲输入信号被平均分配到 作用时间上,这样,改变在始能端 PE2和PD5上输入方波的占空比就能改变 加在电机两端的电压大小,从而改变了转速。此电路中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进 制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时

2、间得到不同的占空比。(2)硬件实验自动产生PWM信号,不占用CPU处理的时间。这就要用到ATMEGA8515L 的在PWM模式下的计数器1 ,具体内容可参考 相关书籍。51单片机PWM程序产生两个PWM,要求两个PWM波形占空都为80/256,两个波形之间要错开, 不能同时为高电平!高电平之间相差 48/256,PWM这个功能在PIC单片机上就有,但是如果你就要用 51单片机的话,也是 可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1来控制占空 比:大致的的编程思路是这样的:T0定时器中断是让一个I0 口输出高电平,在 这个定时器T0的中断当中起动定时器 T1,而这个T1是让IO

3、 口输出低电平, 这样改变定时器T0的初值就可以改变频率,改变定时器 T1的初值就可以改变 占空比。* 程序思路说明:* 关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样 定时中断次数* 设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为 0.01ms ,这样* 可以设定占空比可从 1-100变化。即0.01ms*100=1ms*/#include <REGX51.H> #define uchar unsigned charI* TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%25

4、6;* TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器*工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536, 最长时* 问为 1ms*65536=65.536ms*/#define V_TH0 0XFF#define V_TL0 0XF6#define V_TMOD 0X01void init_sys(void);/*系统初始化函数 */void Delay5Ms(void);unsigned char ZKB1,ZKB2;void main (void)init_sys();ZKB1=40;/*占空比初始值设定

5、*/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<1) ZKB1=99;)/*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/void init_sys(void)/*系统初始化函数 */(/*定时器初始化*/TMOD=

6、"V"_TMOD;TH0=V_TH0;TL0=V_TL0;TR0=1;ET0=1;EA="1")/延时void Delay5Ms(void)(unsigned int TempCyc = 1000;while(TempCyc-);)/*中断函数*/void timer0(void) interrupt 1 using 2(static uchar click="0"/*中断次数计数器变量*/TH0=V_TH0;/*恢复定时器初始值*/TL0=V_TL0;+click;if (click>=100) click="0&q

7、uot;if (click<=ZKB1)/*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/P1_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的值,就可以了!/*在 OCR1B(PD4)上可测到 100HZ 的 PWM 波* #include <iom16v.h> #include <macros.h> void PWM()/*在OCR1A(PD5)上可测到50HZ的方波*/DD

温馨提示

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

评论

0/150

提交评论