pwm直流电机调速单片机程序

pwm直流电机调速单片机程序

ID:21557084

大小:73.00 KB

页数:21页

时间:2018-10-22

pwm直流电机调速单片机程序_第1页
pwm直流电机调速单片机程序_第2页
pwm直流电机调速单片机程序_第3页
pwm直流电机调速单片机程序_第4页
pwm直流电机调速单片机程序_第5页
资源描述:

《pwm直流电机调速单片机程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WORD文档下载可编辑*******************************************************************//*程序名:PWM直流电机调速*//*晶振:11.00592MHzCPU型号:AT89C51*//*直流电机的PWM波控制,可以直接的调速从0到20级的调速*//*****************************************************************/#include#defineTH0_TL0(65536-10

2、00)//设定中断的间隔时长unsignedcharcount0=50;//低电平的占空比unsignedcharcount1=0;//高电平的占空比bitFlag=1;//电机正反转标志位,1正转,0反转sbitKey_add=P2^0;//电机减速sbitKey_dec=P2^1;//电机加速sbitKey_turn=P2^2;//电机换向sbitPWM1=P2^6;//PWM通道1,反转脉冲sbitPWM2=P2^7;//PWM通道2,正转脉冲unsignedcharTime_delay;/************函数声

3、明**************/voidDelay(unsignedcharx);voidMotor_speed_high(void);voidMotor_speed_low(void);voidMotor_turn(void);voidTimer0_init(void);/****************延时处理**********************/voidDelay(unsignedcharx){Time_delay=x;while(Time_delay!=0);//等待中断,可减少PWM输出时间间隔}/*****

4、**按键处理加pwm占空比,电机加速**********/voidMotor_speed_high(void)//{if(Key_add==0){  专业技术资料精心整理WORD文档下载可编辑Delay(10);  if(Key_add==0)  {   count0+=5;      if(count0>=100)   {    count0=100;   }  }  while(!Key_add);//等待键松开}}/******按键处理减pwm占空比,电机减速*****/voidMotor_speed_low(void)

5、{if(Key_dec==0){  Delay(10);  if(Key_dec==0)  {   count0-=5;      if(count0<=0)   {    count0=0;   }  }  while(!Key_dec);}}/************电机正反向控制**************/voidMotor_turn(void){if(Key_turn==0){  Delay(10);  if(Key_turn==0)  {   Flag=~Flag;  }  while(!Key_turn);}}专

6、业技术资料精心整理WORD文档下载可编辑/***********定时器0初始化***********/voidTimer0_init(void){TMOD=0x01;//定时器0工作于方式1TH0=TH0_TL0/256;TL0=TH0_TL0%256;TR0=1;ET0=1;EA=1;}/*********主函数********************/voidmain(void){Timer0_init();while(1){  Motor_turn();  Motor_speed_high();  Motor_speed

7、_low();}}/**************定时0中断处理******************/voidTimer0_int(void)interrupt1using1{TR0=0;//设置定时器初值期间,关闭定时器TL0=TH0_TL0%256;TH0=TH0_TL0/256;//定时器装初值TR0=1;if(Time_delay!=0)//延时函数用{  Time_delay--;}if(Flag==1)//电机正转{  PWM1=0;    if(++count1

8、资料精心整理WORD文档下载可编辑}   else    PWM2=0;   if(count1>=100)   {    count1=0;   }}  else//电机反转  {   PWM2=0;      if(++count1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。