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

📄 remotev3.c

📁 常用经典小车程序常用经典小车程序常用经典小车程序
💻 C
字号:
#include <at89X52.h>

#define pulse 3
#define period 8

int count1=period;
int count2=pulse;
int go1=0x0a;
int back1=0x05;
int leftgo1=0x32;
int rightgo1=0x38;
int reversecount=0;

void delay(int degree)
{
 unsigned int m=0;
 for(m=0;m<degree*100;m++); 
}


void go(int degree)
{
	int grade1=degree;
	TR0=1;
	P1=go1;
	delay(grade1);
	P1=0;
}

void back(int degree)
{
	int grade2=degree;
	TR0=1;
	P1=back1;
	delay(grade2);
	P1=0;
}

void rightgo(int degree)
{	
	int i;
	int grade3=degree;
	ET0=0;
	for(i=0;i<grade3;i++)
	{
 	P1=rightgo1;
	delay(10);
	P1=0;
	delay(3);
	}

}


void leftgo(int degree)
{
  int i;
  int grade4=degree;
  ET0=0;
  for(i=0;i<grade4;i++)
  {
  P1=leftgo1;
  delay(10);
  P1=0;
  delay(3);
  }
}

void reverse(void)
{
	if(reversecount==1)
		{	
			go1=0x0a;
			back1=0x05;
			leftgo1=0x02;
			rightgo1=0x08;	
			reversecount--;
		}
	back1=0x0a;
	go1=0x05;
	leftgo1=0x01;
	rightgo1=0x04;
	reversecount++;
	 
}

int recev=0;

main()
{	TMOD=0X01;
	TH0=0XEE;
	TL0=0X58;
   	IT0=1;
	EX0=1;
	ET0=1;
	EA=1;
	TR0=1;
	while(1)
	{
	
		switch(recev)
			{
				case 0x06:	{recev=0;go(100);}break;
				case 0x07:	{recev=0;back(100);}break;
				case 0x08:	{recev=0;leftgo(100);}break;
				case 0x09:	{recev=0;rightgo(100);}break;
				case 0x0a:	{recev=0;reverse();}break;
				case 0x0b:	{recev=0;P1_0=0;}break;
				case 0x0c:	{recev=0;P1_1=0;}break;
				case 0x0d:	{recev=0;P1_2=0;}break;
				case 0x0e:	{recev=0;P1_3=0;}break;
			}
	}
}

void recevkey(void) interrupt 0
{
	recev=P0&0x0f;
}
	 
void  timer0(void) interrupt 1

{ 
  TH0=0XEE;
  TL0=0X58;  
  count1--; 
  if(count1==0)
      {
	   	count1=period;
		count2=pulse;
		P1_4=1;  
  		P1_5=1;
	  }
  
  count2--; 
  if(count2==0)  {P1_4=0;P1_5=0;count2++;}

}

⌨️ 快捷键说明

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