五路循迹小车
#include "reg51.h"
sbit l1=P1^1;
sbit l2=P1^2;
sbit r1=P1^3;
sbit r2=P1^4;
sbit g1=P3^1;
sbit g2=P3^2;
sbit g3=P3^3;
sbit g4=P3^4;
sbit g5=P3^5;
int l=0;
int r=0;
int t=0;
void init(){
EA=1;
TMOD=0x01;
TH0=(65536-9)/256;
TL0=(65536-9)%256;
ET0=1;
TR0=1;
}
void main(){
init();
while(1){
if(g1==1&&g2==1&&g3==0&&g4==1&&g5==1){
l=20;
r=20;
}else if(g1==1&&g2==1&&g3==1&&g4==0&&g5==1){
l=20+10;
r=20-10;
}else if(g1==1&&g2==0&&g3==1&&g4==1&&g5==1){
l=20-10;
r=20+10;
}else if(g1==1&&g2==1&&g3==1&&(g4==0||g5==0)){
l=20+20;
r=20-20;
}else if((g1==0||g2==0)&&g3==1&&g4==1&&g5==1){
l=20-20;
r=20+20;
}
}
}
void time_()interrupt 1
{
TH0=(65536-9)/256;
TL0=(65536-9)%256;
t++;
if(l<0&&-t>=l){
l1=0;
l2=1;
}else if(l>0&&t<=l){
l1=1;
l2=0;
}else{
l1=0;
l2=0;
}
if(r<0&&-t>=r){
r1=0;
r2=1;
}else if(r>0&&t<=r){
r1=1;
r2=0;
}else{
r1=0;
r2=0;
}
if(t>=60){
t=0;
}
}