Necesito ayuda com mi Primer proyecrto estoy comstruyendo un robot rastreador.
;************************************ Randon_1.asm **************************************
; Sistema de gorbierno RS232 del Microbot Randon v1.0.
;
;
;
;
; La pulsación de cualquiera de estas teclas (A, T, L) activa el estado de las salidas correspondiente
; RB2 (Adelante), RB1 (Atrás), RB0 (Luz) y apaga el resto.
;
; ZONA DE DATOS **********************************************************************
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
ENDC
#DEFINE SalidaAdelante PORTB,2 ; Define dónde se sitúan las salidas.
#DEFINE SalidaAtras PORTB,1
#DEFINE SalidaLuz PORTB,0
TECLA_ADELANTE EQU 'a' ; Código de las teclas utilizadas.
TECLA_ATRAS EQU 't'
TECLA_LUZ EQU 'l'
TECLA_PARADA EQU ' ' ; Código de la tecla espaciadora.
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
Inicio
call RS232_Inicializa
bsf STATUS,RP0 ; Configura como salidas las 3 líneas del
bcf SalidaAdelante ; del Puerto B respetando la configuración del
bcf SalidaAtras ; resto de las líneas.
bcf SalidaLuz
bcf STATUS,RP0
call Parado ; En principio todas las salidas deben estar
Principal ; apagadas.
call RS232_LeeDato ; Espera a recibir un carácter.
call TesteaTeclado
goto Principal
; Subrutina "TesteaTeclado" -------------------------------------------------------------
;
; Testea el teclado y actúa en consecuencia.
TesteaTeclado
movwf TeclaPulsada ; Guarda el contenido de la tecla pulsada.
xorlw TECLA_ADELANTE ; ¿Es la tecla del movimiento hacia adelante?
btfsc STATUS,Z
goto Adelante ; Sí, se desea movimiento hacia adelante.
;
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_ATRAS ; ¿Es la tecla del movimiento hacia atrás?
btfsc STATUS,Z
goto Atras ; Sí, se desea movimiento hacia atrás.
;
movf TeclaPulsada,W
xorlw TECLA_LUZ
btfsc STATUS,Z
goto Luz
;
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_PARADA ; ¿Es la tecla de parada?.
btfss STATUS,Z
goto Fin ; No es ninguna tecla de movimiento. Sale.
Parado
bcf SalidaAdelante ; Como se ha pulsado la tecla de parada se
bcf SalidaAtras ; desactivan todas las salidas.
bcf SalidaLuz
Adelante
bcf SalidaAtras
bsf SalidaAdelante
bcf SalidaLuz
Atras
bcf SalidaAdelante
bsf SalidaAtras
bcf SalidaLuz
Luz
bcf SalidaAdelante
bsf SalidaLuz
bcf SalidaAtras
Fin return
INCLUDE <RS232.INC>
INCLUDE <RETARDOS.INC>
END
Con este programa solo conseguria el movimiento acia adelante y acia atras alguien sabes coomo podria implemtar dicho programa para poder controlar un servo que actuaria como direccion del robot.