欢迎来到天天文库
浏览记录
ID:40555119
大小:14.70 KB
页数:6页
时间:2019-08-04
《l298n电机驱动直流电机各种程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、(1)#include#defineucharunsignedchar#defineuintunsignedintsbitINPUT1=P1^0;//控制口sbitINPUT2=P1^1;sbitINPUT3=P1^2;sbitINPUT4=P1^3;sbitENA=P1^4;//产生PWM波sbitENB=P1^5;uintMA=0,MB=0;uintSpeedA=20;//50%占空比uintSpeedB=20;voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=125;y>0;
2、y--);}voidmain(void){delay(1000);delay(1000);INPUT1=1;INPUT2=0;INPUT3=1;INPUT4=0;TH0=0xF4;TL0=0x48;TH1=0xF4;TL1=0x48;TMOD=0x11;TR0=1;TR1=1;ET0=1;ET1=1;EA=1;while(1){}}voidtime0_int()interrupt1using1{TR0=0;TH0=0xF4;TL0=0x48;MA++;if(MA3、;}TR0=1;}voidtime1_int()interrupt3using1{TR1=0;TH1=0xF4;TL1=0x48;MB=MB+1;if(MBsbitKEY1=P3^1;sbitPWM=P1^5;unsignedcharCYCLE;//定义周期该数字X基准定时时间如果是10则周期是10x0.1msunsignedcharPWM_ON;//定义高电平时间voiddelay(unsignedin4、tcnt){while(--cnt);}main(){unsignedcharPWM_Num;//定义档位TMOD5、=0x01;//定时器设置1msin12McrystalTH0=(65536-1000)/256;TL0=(65536-1000)%256;//定时1mSIE=0x82;//打开中断TR0=1;CYCLE=10;//时间可以调整这个是10步调整周期10ms8位PWM就是256步while(1){if(!KEY1){delay(10000);if(!KEY1){PWM_Num++;if(PWM_Num==4)PWM_Num=0;s6、witch(PWM_Num){case0:P1=0xFE;PWM_ON=0;break;//高电平时长case1:P1=0xFD;PWM_ON=4;break;case2:P1=0xFB;PWM_ON=6;break;case3:P1=0xF7;PWM_ON=8;break;default:break;}}}}}/********************************//*定时中断*//********************************/voidtim(void)interrupt1using1{staticunsig7、nedcharcount;//TH0=(65536-1000)/256;TL0=(65536-1000)%256;//定时1mSif(count==PWM_ON){PWM=1;//灯灭}count++;if(count==CYCLE){count=0;if(PWM_ON!=0)//如果左右时间是0保持原来状态PWM=0;//灯亮}}(3)/***************电子电机驱动模块直流电机控制程序**************************/#includesbitIN1=P1^0;sbitIN2=P1^1;sb8、itIN3=P1^2;sbitIN4=P1^3;sbitEN1=P1^4;sbitEN2=P1^5;unsignedintpwm_H;unsignedintpwm_L;/***********初始函数函数**********************************//*日期:2012年2月2日*//*版本号V1.2*//*说明:初始化系统,调用速度设置函数前请先初始化*/voidInitSpeed(){TMOD=0X01;TL0=0;TH0=0;TR0=1;ET0=1;EA=1;}/***********速度设置函数*********9、*************************//*日期:2012年2月2日*//*版本号V1.2*//*说明:0-1000级速度,值越高速度越快*/voidS
3、;}TR0=1;}voidtime1_int()interrupt3using1{TR1=0;TH1=0xF4;TL1=0x48;MB=MB+1;if(MBsbitKEY1=P3^1;sbitPWM=P1^5;unsignedcharCYCLE;//定义周期该数字X基准定时时间如果是10则周期是10x0.1msunsignedcharPWM_ON;//定义高电平时间voiddelay(unsignedin
4、tcnt){while(--cnt);}main(){unsignedcharPWM_Num;//定义档位TMOD
5、=0x01;//定时器设置1msin12McrystalTH0=(65536-1000)/256;TL0=(65536-1000)%256;//定时1mSIE=0x82;//打开中断TR0=1;CYCLE=10;//时间可以调整这个是10步调整周期10ms8位PWM就是256步while(1){if(!KEY1){delay(10000);if(!KEY1){PWM_Num++;if(PWM_Num==4)PWM_Num=0;s
6、witch(PWM_Num){case0:P1=0xFE;PWM_ON=0;break;//高电平时长case1:P1=0xFD;PWM_ON=4;break;case2:P1=0xFB;PWM_ON=6;break;case3:P1=0xF7;PWM_ON=8;break;default:break;}}}}}/********************************//*定时中断*//********************************/voidtim(void)interrupt1using1{staticunsig
7、nedcharcount;//TH0=(65536-1000)/256;TL0=(65536-1000)%256;//定时1mSif(count==PWM_ON){PWM=1;//灯灭}count++;if(count==CYCLE){count=0;if(PWM_ON!=0)//如果左右时间是0保持原来状态PWM=0;//灯亮}}(3)/***************电子电机驱动模块直流电机控制程序**************************/#includesbitIN1=P1^0;sbitIN2=P1^1;sb
8、itIN3=P1^2;sbitIN4=P1^3;sbitEN1=P1^4;sbitEN2=P1^5;unsignedintpwm_H;unsignedintpwm_L;/***********初始函数函数**********************************//*日期:2012年2月2日*//*版本号V1.2*//*说明:初始化系统,调用速度设置函数前请先初始化*/voidInitSpeed(){TMOD=0X01;TL0=0;TH0=0;TR0=1;ET0=1;EA=1;}/***********速度设置函数*********
9、*************************//*日期:2012年2月2日*//*版本号V1.2*//*说明:0-1000级速度,值越高速度越快*/voidS
此文档下载收益归作者所有