Control de luces para auto en ensamblador (asm) para pic16f628a
;Control de luces para automovil (prototipo) hecho en ensamblador para el pic 16f628A
list p=16f628A
radix hex
;***** CONFIGURATION BITS
include P16F628A.INC__CONFIG _WDT_OFF&_INTRC_OSC_NOCLKOUT&_CP_OFF&_PWRTE_OFF&_MCLRE_OFF&_LVP_OFF&_BODEN_OFF
;
;Puerto A para entradas
;Puerto B para salidas
;Cuartos: quedan encendidos cuando esta activo el carro;Freno: Se activa el freno (mayor intencidad de corriente al led (resistencia))
;Dir, izquierda: Parpadea cuando se selecciona
;Dir, Derecha: Parpadea cuando se selecciona
MEMORIA EQU 0X20;//////declara variables
CBLOCK MEMORIA
key1
key2
key3
key4
i
j
k
var1
endc
org 0
GOTO inicio
org 0x10
inicio
;//////inicio de el programa
call PUERTOS;//////llamopuertos
principal;//////punto de inicio de ciclo infinito
;//////Este fragmento de codigo analiza si ha apretado el boton de los cuartos del carro
;//////debido a que el tiempo de presionadopuede ser mayor a 1 microsegundo entonces vuelve a la misma etiqueta para evitar
;//////cambiar de instruccion hasta que este boton se suelte.
btfsc PORTA,0;//////si bit es 0 en la posicion 0ignora siguiente linea y salta a la otra
call CUARTOS;//////llama a cuartos
ala btfsc PORTA,0;//////misma situacion
goto ala;//////se cicla si se encuentra apretado el boton.
;//////Estefragmento de codigo guarda los estados de los puertos PORTB debido a que seran modificado cada vez que se utilizan
;//////freno, luz derecha y luz izquierda.
call SALVAR;//////guarda estados actuales delos puertos PORTB
;//////Este fragmento de codigo hace prender la luz de freno, todos las instrucciones se paralizan hasta que se suelte el freno
;//////posteriormente se ejecutara la secuenciaoriginal
btfsc PORTA,1;//////si bit es 0 en la posicion 1 ignora siguiente linea y salta a la otra
call FRENO;//////llama a freno
alb btfsc PORTA,1;//////si sigue apretado llama a alb si no...
Regístrate para leer el documento completo.