Modificacion programa Assembler Sigue Lineas

Tengo duda de como modificar este programa para que de el recorrido por el extremo derecho y para que tambien lo de por el extremo izquierdo ya que este programa solo lo da por el extremo derecho


List P=16f84A
#include P16F84A.inc

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

#DEFINE SensorDerecha PORTA,0 ;Sensor óptico Derecho.
#DEFINE SensorIzquierda PORTA,1 ;Sensor óptico Izquierdo.

;ZONA DE CODIGOS********************************************************************

ORG 0
Inicio bsf STATUS,RP0 ;Selecciona Banco 1 de registros.
bsf SensorDerecha ;Estas lineas se configuran como entradas.
bsf SensorIzquierda
clrf PORTB ;Las lineas del puerto B se configuran como salidas.
bcf STATUS,RP0 ;Selecciona Banco 0 de registros.

Principal
movlw b'00001110' ;Para girar a la derecha.
btfss SensorDerecha ;¿Ha salido por la derecha?,¿Detecta blanco?
goto ActivaSalida ;No,el detector derecho está encima de la linea
;negra gira a la derecha.
movlw b'00000111' ;Para girar a la izquierda.
btfss SensorIzquierda ;¿Ha salido tambien por la izquierda?
movlw b'00001111' ;No,está en el borde derecho.Sigue recto.

ActivaSalida
movwf PORTB
goto Principal


END
Gracias foreros
 
En el codigo viene para detectar en ambos sensores y hacer la correccion
Si pudieras esplicar un poco mas la cuestion

Un saludo
 
Como explicartelo solo hace el recorrido si el coche esta en sentido para --->>>>>
Si quiero voltear el coche el coche no da el recorrido <------ asi y para mi proyecto final tengo que entregar el proyecto de esa manera debe dar el recorrido de las dos formas ya se que detecta de los dos lados y asi funciona muy bien pero del otro lado no espero su ayuda amigos =)
 
Disculpame por no interpretar bien el significado de tu esplicacion, pido disculpas.
Debo interpretar, que quieres, que el programa decida de dar marcha atras ?

Un saludo
 
Hola pues mira basicamente el programa funciona geneal el circuito tambien lo unico que necesito cambiar es que pongo el coche de este sentido -------> y el recorrido lo da geneal
pero el maestro voltea completamente el coche en este sentido <------- y no da el recorrido solo cabece retrocede y avanza ya que este coche esta basado en el borde derecho y en el borde izquierdo no da el recorrido yo lo que quiero es que el programa de el recorrido de los dos bordes que lo de en este sentido -----> y al voltear el coche completamente asi <------- tambien de el recorrido porque la condicion del coche debe ser asi muchas gracias y espero puedas ayudarme gracias =P

Saludos
 
Prueba asi

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

#DEFINE SensorDerecha PORTA,0 ;Sensor óptico Derecho.
#DEFINE SensorIzquierda PORTA,1 ;Sensor óptico Izquierdo.

;ZONA DE CODIGOS******************************************* *************************

ORG 0
Inicio bsf STATUS,RP0 ;Selecciona Banco 1 de registros.
bsf SensorDerecha ;Estas lineas se configuran como entradas.
bsf SensorIzquierda
clrf PORTB ;Las lineas del puerto B se configuran como salidas.
bcf STATUS,RP0 ;Selecciona Banco 0 de registros.

Principal
btfss SensorDerecha ;¿Ha salido por la derecha?,¿Detecta blanco?
goto DERECHA ;No,el detector derecho está encima de la linea
;negra gira a la derecha.

btfss SensorIzquierda ;¿Ha salido tambien por la izquierda?
goto IZQUIERDA
movlw b'00001111' ;No,está en el borde derecho.Sigue recto.

ActivaSalida
movwf PORTB
goto Principal


DERECHA movlw b'00001110' ;Para girar a la derecha
movwf PORTB
goto Principal

IZQUIERDA movlw b'00000111' ;Para girar a la izquierda.
movwf PORTB
goto Principal

END

un saludo
 
Pues quite la Etiqueta de ActivaSalida ya que no la estamos usando y no sirve de nada en nuestro programa lo probare hoy y te dire aunque no es que no me aplique simplemente que estoy apunto de salir y no vimos nada de lenguaje de programacion pero acepto tu correccion y espero poder aprender mas gracias

Saludos
 
Atrás
Arriba