您好,欢迎访问三七文档
#includereg52.h#defineucharunsignedchar#defineuintunsignedint#definepush_val_leftasbitKey=P2^7;//速度增加键sbitLeft_moto_pwm=P1^7;//接驱动模块ENBsbitIN1=P1^6;sbitIN2=P1^5;ucharpush_val_left;uchara=3;ucharpwm_val_left=0;ucharrad=0;uinttemp=0;uintencoder=0;/************************************************************************//*PWM调制电机转速*//************************************************************************//*左电机调速*/voidkeyscan1()//具有连加功能的的按键扫描程序{if(Key==0)//判断Key键是否按下?{if(Key==0)//如果真接下就去执行键盘程序{a++;//值加一if(a==10)//判断是否加到10{a=0;}//加到10清0}}}/*调节push_val_left的值改变电机转速,占空比*//***************************************************/voidpwm_out_left_moto(){if(pwm_val_left=push_val_left)Left_moto_pwm=1;elseLeft_moto_pwm=0;if(pwm_val_left=10)pwm_val_left=0;}/************************************************/voidmain(){TMOD=0x01;TH0=0xf8;//1ms定时TL0=0xc0;ET0=1;EX0=0;EA=1;IN1=1;IN2=0;while(1)/*无限循环*/{keyscan1();if(temp=1000)//1秒{temp=0;//计时清零rad=encoder/500;//计数清零encoder=0;}}}///*TIMER0中断服务子函数产生PWM信号*/voidtimer0()interrupt1{TH0=0xf8;//1Ms定时TL0=0xc0;temp++;pwm_val_left++;pwm_out_left_moto();}voidINT_0()interrupt0//外部中断0{encoder++;}
本文标题:电机调速程序
链接地址:https://www.777doc.com/doc-2213209 .html