五路循迹小车
#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;
}
}
转载请注明原文地址: https://mac.8miu.com/read-513226.html