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

📄 step heixian4.c

📁 基于51单片机或者ARM2131的电子小车的设计
💻 C
字号:
#include "reg51.h"
#define uchar unsigned char 
#define uint unsigned  int

sbit STK_CP1=P1^3;	//电机1
sbit STK_DIR1=P1^2;

sbit STK_CP2=P1^1;	//电机2
sbit STK_DIR2=P1^0;

sbit p14=P1^4;		//右转
sbit p15=P1^5;		//左转
sbit p16=P1^6;		//变速

sbit p32=P3^2;

uchar 	n=0;	//shijian
uint	m=0;
bit    youzhuan=0,zuozhuan=0;
bit    zanting=0;
uchar  heixian=0;	// 黑线数
uint  T00,T11;
	
void time0() interrupt 1	//电机1
{	if(zanting==1)
		{	m++;
			if(m==400)		//5000ms*400=2s
				{	TR1=1;
					zanting=0;
				}
	  	}
  	else
		{	if(youzhuan==1)
				{	TR0=0; 
					TH0=(64536-T00)>>8; 	TL0=(64536-T00)%256;  //-1ms
					TR0=1;
					n++;
					if(n==180)
						{	n=0;
							youzhuan=0;
						}
				}
			else
				{	TR0=0; 
					TH0=(65536-T00)>>8; 	TL0=(65536-T00)%256;  //ms
					TR0=1;
				}	
			STK_CP1=~STK_CP1;
	 	}
}

void time1() interrupt 3	//电机2
{	if(zuozhuan==1)
		{	TR1=0; 
			TH1=(64536-T11)>>8; 	TL1=(64536-T11)%256;  //-1ms
			TR1=1;
			n++;
			if(n==180)
				{	n=0;
					zuozhuan=0;
				}
		}
	else
		{	TR1=0; 
			TH1=(65536-T11)>>8; 	TL1=(65536-T11)%256;  //ms
			TR1=1;
		}	
	STK_CP2=~STK_CP2;
}

void int0() interrupt 0	
{	if( (P1&0x70)!=0x30 )	//不能同时左右转
		{	if(p16==0)
				heixian++;
			if(p14==0)
				{	youzhuan=1;	//右转
					zuozhuan=0;
					n=0;	
				}
		   	if(p15==0)
				{	youzhuan=0;
					n=0;
					zuozhuan=1;		//左转				
				}	
	   	}
}

main()
{	EA=0;
	TMOD=0x11;
	T00=5000;
	TH0=(65536-T00)>>8; 	TL0=(65536-T00)%256;  //5ms	//中速
	TR0=1; 		ET0=1;

	T11=5000;
	TH1=(65536-T11)>>8; 	TL1=(65536-T11)%256;  //5ms
	TR1=1; 		ET1=1;
	
	IT0=1;		EX0=1;
	EA=1;
	STK_DIR1=0;
	STK_DIR2=1;
	while(1)
		{	switch(heixian)
				{	case 1:	T00=6000;
							T11=6000;	break;	//慢速//6ms
					case 2:	T00=4000;
							T11=4000;	break;	//加速//4ms
					case 3:	T00=5000;
							T11=5000;	break;	//爬坡//5ms
					case 4:	//zanting=1;
							//TR1=0;	
							//zuozhuan=0;	youzhuan=0;	n=0;
										break;	//坡上暂停2S
					case 5:	T00=6000;
							T11=6000;	break;	//到顶减速//6ms
					case 6:	//TR0=0; TR1=0; 
										break;	//停
					default:break;
			   	}
	 	}
}

⌨️ 快捷键说明

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