⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.txt

📁 这个是用单片机控制直流电机的程序
💻 TXT
字号:
 
 
 	#include<reg51.h>
 	void initial(void);
 	void _set_time(int,int,int,int,int,int,int,int,int,int,int,int);
	void delay1ms(int);
	unsigned int t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12;
	int	flag1,flag2;
	main()
	{	p1^7=1;
		inital();
		while(1)
		{if(p1^7==0)
			{	_set_time(1620,1830,1620,1620,1620,1830,1620,1620,1620,1830,1620,1620);	//电机2,6,10正转11°,2,4,6脚抬起;
				delay1ms(200);
				_set_time(1830,1830,1620,1620,1830,1830,1620,1620,1830,1830,1620,1620);	//电机1,5,9正转11°,2,4,6脚前摆;
				delay1ms(200);
				_set_time(1830,1620,1620,1620,1830,1620,1620,1620,1830,1620,1620,1620);	//电机2,6,10反转11°,2,4,6脚放下;
				delay1ms(200);
				_set_time(1830,1620,1620,1830,1830,1620,1620,1830,1830,1620,1620,1830);	//电机4,8,12正转11°,1,3,5脚抬起;
				delay1ms(200);
				_set_time(1620,1620,1620,1830,1620,1620,1620,1830,1620,1620,1620,1830);	//电机1,5,9反转11°,身体向前移动;
				delay1ms(200);
				_set_time(1620,1620,1830,1830,1620,1620,1830,1830,1620,1620,1830,1830);	//电机3,7,11反转11°,1,3,5脚向前摆;
				delay1ms(200);
				_set_time(1620,1620,1830,1620,1620,1620,1830,1620,1620,1620,1830,1620);	//电机4,8,12反转11°。1,3,5脚放下;
				delay1ms(200);
				_set_time(1620,1830,1830,1620,1620,1830,1830,1620,1620,1830,1830,1620);	//电机2.6.10正转11°,2,4,6脚抬起;
				delay1ms(200);
				_set_time(1620,1830,1620,1620,1620,1830,1620,1620,1620,1830,1620,1620);// 电机3,7,11反转11°。身体向前移动;
				delay1ms(200);
				_set_time(1620,1620,1620,1620,1620,1620,1620,1620,1620,1620,1620,1620);//电机2,6,10反转11°。2,4,6脚放下;
				delay1ms(200);
			}
		}



		//初始化子程序//
		void  initial(void)
		{	TMOD=0x11;
			flag1=flag2=1;
			TH0=TH1=(65536-1620)/256;
			TL0=TL1=(65536-1620)%256;
			EA=1;
			_set_time(1620,1620,1620,1620,1620,1620,1620,1620,1620,1620,1620,1620);
			ET0=1;TR0=1;PT0=1;
			ET1=1;TR1=1;PT1=1;
			delay1ms(200);
		}

		//延时子程序//
		void  delay1ms(int x)
		{	int i,j;
			for(i=0;i<x;i++)
				for(j=0;j<120;j++);
		}
		
		
		//定时时间设定程序定时器0//
		viod  timero(void)interrupt 1
		{	switch(flag1)
			{
				case1:{p0^0=1;TH0=(65536-t1)/256;TL0=(65536-t1)%256;break;}
				case2:{p0^0=0;TH0=(65536-2540+t1)/256;TL0=(65536-2540+t1)%256;break;}
				case3:{p0^1=1;TH0=(65536-t2)/256;TL0=(65536-t2)%256;break;}
				case4:{p0^1=0;TH0=(65536-2540+t2)/256;TL0=(65536-2540+t2)%256;break;}
				case5:{p0^2=1;TH=(65536-t3)/256;TL0=(65536-t3)%256;break;}
				case6:{p0^2=0;TH0=(65536-2540+t3)/256;TL0=(65536-2540+t3)%256;break;}
				case7:{p0^3=1;TH=(65536-t4)/256;TL0=(65536-t4)%256;break;}
				case8:{p0^3=0;TH0=(65536-2540+t4)/256;TL0=(65536-2540+t4)%256;break;}
				case9:{p0^4=1;TH=(65536-t5)/256;TL0=(65536-t5)%256;break;}
				case10:{p0^4=0;TH0=(65536-2540+t5)/256;TL0=(65536-2540+t5)%256;break;}
				case11:{p0^5=1;TH0=(65536-t6)/256;TL0=(65536-t6)%256;break;}
				case12:{p0^5=0;TH0=(65536-8150+t6)/256;TL0=(65536-8150+t6)%256;flag1=0;}
				defaut:flag1=0;
			 }
			flag1++;
		  }

		 //定时器1//

 		
		 viod  timer1(void)interrupt 2
		 {	switch(flag2)
			{
				case1:{p1^0=1;TH0=(65536-t7)/256;TL0=(65536-t7)%256;break;}
				case2:{p1^0=0;TH0=(65536-2540+t7)/256;TL0=(65536-2540+t7)%256;break;}
				case3:{p1^1=1;TH0=(65536-t8)/256;TL0=(65536-t8)%256;break;}
				case4:{p1^1=0;TH0=(65536-2540+t8)/256;TL0=(65536-2540+t8)%256;break;}
				case5:{p1^2=1;TH=(65536-t9)/256;TL0=(65536-t9)%256;break;}
				case6:{p1^2=0;TH0=(65536-2540+t9)/256;TL0=(65536-2540+t9)%256;break;}
				case7:{p1^3=1;TH=(65536-t10)/256;TL0=(65536-t10)%256;break;}
				case8:{p1^3=0;TH0=(65536-2540+t10)/256;TL0=(65536-2540+t10)%256;break;}
				case9:{p1^4=1;TH=(65536-t11)/256;TL0=(65536-t11)%256;break;}
				case10:{p1^4=0;TH0=(65536-2540+t11)/256;TL0=(65536-2540+t11)%256;break;}
				case11:{p1^5=1;TH0=(65536-t12)/256;TL0=(65536-t12)%256;break;}
				case12:{p1^5=0;TH0=(65536-8150+t12)/256;TL0=(65536-8150+t12)%256;flag1=0;}
				defaut:flag2=0;
			 }
			flag2++;
		  }





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -