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
 
Entonces la parte de activa salida ya no la usariamos?? porque ya no la estas definiendo en ninguna parte del principal saludos
 
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
 

Temas similares


Arriba