Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/05/2012 #1


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
18/05/2012 #2


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

Un saludo
18/05/2012 #3


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 =)
19/05/2012 #4


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
20/05/2012 #5


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
21/05/2012 #6


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
21/05/2012 #7


Entonces la parte de activa salida ya no la usariamos?? porque ya no la estas definiendo en ninguna parte del principal saludos
21/05/2012 #8


La etiqueta activasalida esta cambiada por la etiqueta DERECHA e IZQUIERDA

Un saludo
21/05/2012 #9


Entonces puedo quitar esa instruccion sin problemas?
22/05/2012 #10


Tienes que aplicarte mas en los estudios
Activasalida no es una instruccion, es una etiqueta

Repasa con tus compañeros, las dos definiciones para sacar una conclusion y tambien podrias dale un repaso a esto
http://www.forosdeelectronica.com/f2...de-cero-16898/

Un saludo
22/05/2012 #11


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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.