51单片机PWM调速程序_第1页
51单片机PWM调速程序_第2页
51单片机PWM调速程序_第3页
51单片机PWM调速程序_第4页
51单片机PWM调速程序_第5页
全文预览已结束

下载本文档

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

文档简介

1、51单片机PWM调速程序2011-05-07 19:30/*/*程序名:PWM直流电机调速*/* 晶报:11.00592 MHz CPI【型号:AT89C51 /*立流电机的波控制,可以直接的训速从0到20级的调速*/*/#inclide<reg51. h>ttdefire TIIO TLO (65536-1000)/设定中断的间隔时长unsigred char countO = 50;/低电平的占帘比unsigred char count 1 = 0;/高电平的打空比bit Flag = 1;/电机正反转标志位,1正转,0反转sbil Key_add=P2 - 0; 电机减速sb

2、i t Key dec=P2 I: /电机加速sbit Key turn=P2 " 2; 电机换向sbit PWM1=P26:/PWM 通道 b 反转脉冲sbit PWM2=P27;/PWM 通道 2.止转脉冲unsigred char Time delay:void Delay(unsigned char x):void Motor speed high(void);void Motor speed low(void);void Motor turn(void);void TimerO init(void):/* * 延 时处理 * 林林 * 林林/void Delay(unsig

3、ned char x)Time relay = x;whiledime delay != 0);/等待中断,可减少PWM输出时间间陽 /*按健处理加pwin人空比,电机加速*林/ void Motor speed high(void)/if(Key add=O)Delay(10);if(Key add=0)cc-untO += 5;if(countO >= 100)ccunlO = 100;while(!Key add) ;/等待键松开/*按键处理减pwm山空比,电机减速*/ void Nk)tor speed low (void)if(Key dec=0)Delay (10);if(K

4、ey dec=0)ccuntO -= 5;if(countO <= 0)countO = 0;while(!Key dec );/* 林* 电机卜:反 向控制 */void Motor turn(void)if(Key turn = 0)Delay(10);if(Key turn = 0)Flag = 'Flag;while(!Key turn);/*定时器 o 初始化*/ void TimerO init(void)TM()D=0xOl; 疋时器0工作于方式1THO=TEO TLO/256:TLO=TFO TL0%256:TRO=1:ETO=1:EA=1;void main(v

5、oid)TimerO ini t 0 ;whi led)Motor LurnO :Motor speed highO :Motor speed low():/*宦|寸 0 屮晰处理*/void TimerO int(void) interrupt 1 using 1TRO = 0;/设置定时器初值期间,关闭定时器TLO = THO TLO % 256;THO = THO TLO / 256 ; 定时器装初值TRO = 1;if (Time delay != ()/延时函数川Time delay;if (Flag = 1)电机正转PWM1 = 0:if(count 1 < count0)(

6、mz = 1:elsePWM2 = 0;if(count 1 >= 100)count1=0;else 电机反转PO2 = 0;if(+counll < count0)PO1 = 1:elsePWM1 = 0:if(count1 >= 100)(count 1=0;这个程用是我转來的卜我存唤件上是能通过的。但不知道你是否能看懂,开始我对有歧部分是没有看 懺。在网友“艺术纸箱”的帮助下我算是彻底明白了。在这我直说我没右看懂然后右看懂的部分吧(这句话感觉说的有点毛病? ? ?)°注盘这咚部分:/*延的 处理*/void Delay(unsigned char x)Time celay = x;while(Time_delay != 0);/等待中断,可减少PWM输出时间间隔Delay(10);if (Time delay != 0)/延时函数用Time delay;就是上而这三个部分。耍是当时我将这三个能这样放在 块也许能看怖。其实这三个部分是相关联的。Delay (10)这是延时防抖的这是抵无疑问的,但这个消抖在消抖的同时将 开始只是声明了卜的 Time-cel ay賦值了,賦值还不第他还牵扯到沱时器里去了。你看在赋值后Time-delay变成了 10,看 第二个部分的while (Time-delay! =10);这个语句止如注释

温馨提示

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

评论

0/150

提交评论