📄 remotev3.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 + -