Gracias y saludos.
Código
////////Coche rastreador////////// //Características del microcontrolador #include <16F873.h> #fuses XT,NOWDT,NOPROTECT #use delay(clock=4000000) #define NEGRO 0 #define BLANCO 1 #define S1 input(pin_A5) #define S2 input(pin_A4) #define S3 input(pin_A3) #define S4 input(pin_A2) #define S5 input(pin_A1) #define S6 input(pin_A0) #define S7 input(pin_B7) #define S8 input(pin_B6) void derecha() { output_low(pin_B3); //Motor derecho 1 output_high(pin_B4); //Motor derecho 2 output_high(pin_B1); //Motor izquierdo1 output_low(pin_B2); //Motor izquierdo 2 } void izquierda() { output_high(pin_B3); //Motor derecho 1 output_low(pin_B4); //Motor derecho 2 output_low(pin_B1); //Motor izquierdo1 output_high(pin_B2); //Motor izquierdo 2 } void recto() { output_high(pin_B3); //Motor derecho 1 output_low(pin_B4); //Motor derecho 2 output_high(pin_B1); //Motor izquierdo1 output_low(pin_B2); //Motor izquierdo 2 } void parado() { output_low(pin_B3); //Motor derecho 1 output_low(pin_B4); //Motor derecho 2 output_low(pin_B1); //Motor izquierdo1 output_low(pin_B2); //Motor izquierdo 2 void main() { int estado=0; while (1) { if(S1==NEGRO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=1; } if(S1==BLANCO&&S2==NEGRO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=2; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=3; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==NEGRO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=4; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==NEGRO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=5; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=6; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==NEGRO&&S8==BLANCO) { estado=7; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==NEGRO) { estado=8; } if(S1==NEGRO&&S2==NEGRO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=9; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=10; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==NEGRO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=11; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==NEGRO&&S5==NEGRO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=12; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==NEGRO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=13; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=14; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==NEGRO&&S8==NEGRO) { estado=15; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=16; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=17; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=18; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=19; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=20; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=21; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=22; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=23; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=24; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=25; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=26; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=27; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=28; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=29; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=30; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==BLANCO&&S8==BLANCO) { estado=31; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=32; } if(S1==BLANCO&&S2==BLANCO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=33; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==BLANCO) { estado=34; } if(S1==BLANCO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=35; } if(S1==NEGRO&&S2==NEGRO&&S3==NEGRO&&S4==NEGRO&&S5==NEGRO&&S6==NEGRO&&S7==NEGRO&&S8==NEGRO) { estado=36; } if(S1==BLANCO&&S2==BLANCO&&S3==BLANCO&&S4==BLANCO&&S5==BLANCO&&S6==BLANCO&&S7==BLANCO&&S8==BLANCO) { estado=37; } if ((estado==0) || (estado==37)) { parado(); } if ((estado==4) || (estado==5) || estado==12) || (estado==18) || (estado==19) || (estado==23) || (estado==24) || (estado==25) || (estado==28) || (estado==29) || (estado==32) || (estado==36)) { recto(); } if ((estado==1) || (estado==2) || estado==3) || (estado==9) || (estado==10) || (estado==11) || (estado==16) || (estado==17) || (estado==22) || (estado==27) || (estado==31) || (estado==34)) { izquierda(); } if ((estado==6) || (estado==7) || estado==8) || (estado==13) || (estado==14) || (estado==15) || (estado==20) || (estado==21) || (estado==26) || (estado==30) || (estado==33) || (estado==35)) { derecha(); } } } FIN