Hola buenas, tengo un problema que no me acaba de salir, es el siguiente
-Realiza un programa .asm que permita el parpadeo de dos LEDs ubicados en RA0/RA1. Cuando RA0 enciende, RA1 se apaga. El tiempo de parpadeo será de unos 100ms. Usar retardos por software
A ver si me podeis ayudar, gracias, esto es lo que tengo hecho de momento, me faltan retardos y algo más
List p=16F876 ;Tipo de procesador
include "P16F876.INC" ;Definiciones de registros internos
;Ajusta los valores de la palabra de configuración durante el ensamblaje:
;protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT
__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC
reg1 equ 0x20 ; Estos 3 registros los utilizar
reg2 equ 0x21 ; para hacer el retardo
reg3 equ 0x22
;-------Configuración de puertos-------
org 0x00 ; Origen del programa, aqu comenzar
goto inicio ; salta a la etiqueta inicio.
inicio bsf STATUS,RP0 ; Pone rp0 a 1 y pasa al banco1
movlw b'00000000' ; Carga W con 00000000
movwf TRISB ; y pasa el valor a TRISB.
bcf STATUS,RP0 ; pone rp0 a 0 y regresa al banco0
;----Aquí enciende y apaga el LED-----
bucle
bsf PORTA,0 ; Pone un 1 en RA0 enciende el LED
bcf PORTA,1 ; Pone a 0 RA1 apaga el LED
call retardo ; Llamamos a la subrutina retardo.
bsf PORTA,1 ; Pone un 1 en RA1 enciende el LED
bcf PORTA,0 ; Pone a 0 RA0 apaga el LED
call retardo ; Llamamos a la subrutina retardo.
goto bucle ; Repite el bucle infinitamente