elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1]
1  Programación / ASM / Ayuda con código asm Pic16F84A en: 11 Abril 2019, 22:59 pm
Un saludo a todos, espero que alguien me pueda ayudar, necesito desarrollar una combinacion entre interruptores del dip conectados a los pines RA4 y RA3 del microcontrolador PIC16F84A, donde el circuito debe encender los leds, uno a uno, siguiendo un orden determinado. RA4=0 RA3=0 Apagado, RA4=0 RA3=1 secuencia de izquierda a derecha, RA4=1 RA3=0 secuencia de derecha a izquierda y por ultimo RA4=1 RA3=1 parpadeo intermitente.
Al compilar mi codigo no me aparece ni un solo problema, pero en la simulacion los led no encienden... al momento de compilar secuencia por secuencia al separado, me funciona de maravilla, pero todo junto no pasa nada. Seria de gran ayuda su aporte
Mi código es el siguiente:

;---------------------------------------------
LIST P = PIC16F84A
#include P16F84A.inc
__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON

cont1 EQU 0X0C
cont2 EQU 0X0D
Count equ 0x0E

ORG 0x00
INICIO            ;Inicio de programa

         BSF      STATUS,RP0;   PASAMOS AL BANCO 1
         CLRF   TRISB ;      PUERTO B COMO SALIDAS
         movlw b'11111'
         movwf TRISA ;PUERTO A COMO ENTRADAS
         movlw b'00000000'
         movwf TRISB
         BCF      STATUS,RP0; PASAMOS AL BANCO 0
         CLRF   PORTA;      LIMPIAMOS PUERTO A
         CLRF   PORTB;      LIMPIAMOS PUERTO B

;-------------------------------------------------
CONTROL

P1      btfsc PORTA,3
      goto P1
P1A      btfsc PORTA,4
      goto P1A
      call SECUENCIA1


P2      btfss PORTA,3
      goto P2
P2A      btfsc PORTA,4
      goto P2A
      call SECUENCIA2   
   
   
P3      btfsc PORTA,3
      goto P3
P3A      btfss PORTA,4
      goto P3A
      call SECUENCIA3


P4      btfss PORTA,3
      goto P4
P4A      btfss PORTA,4
      goto P4A
      call SECUENCIA4
      goto CONTROL

;-------------------------------------------------

SECUENCIA1   bcf PORTB,0
         bcf PORTB,1
         bcf PORTB,2
         bcf PORTB,3
         bcf PORTB,4
         bcf PORTB,5
         bcf PORTB,6
         bcf PORTB,7
         RETURN

SECUENCIA2   rlf PORTB
         call RETARDO
         return   
   
SECUENCIA3   rrf PORTB
         call RETARDO
         return
   
SECUENCIA4   BSF PORTB,0
         BSF PORTB,2
         BSF PORTB,4
         BSF PORTB,6
         CALL RETARDO
         BCF PORTB,0
         BCF PORTB,2
         BCF PORTB,4
         BCF PORTB,6
         BSF PORTB,1
         BSF PORTB,3
         BSF PORTB,5
         BSF PORTB,7
         CALL RETARDO
         BCF PORTB,1
         BCF PORTB,3
         BCF PORTB,5
         BCF PORTB,7
         RETURN   
;--------------------------------------
RETARDO

   movlw d'100' ; Mover 100 a W
   movwf cont1 ; Mover W a cont1 (cargar cont1)
   movlw d'255' ; Mover 255 a W
   movwf cont2 ; Mover W a cont2 (cargar cont2)

loop1
   decfsz cont1, f ; decrementar cont1, saltear si da 0
   goto loop2 ; saltar a loop2
   decfsz cont2, f ; decrementar cont2, saltear si da 0
loop2
   goto loop1 ; saltar a loop1
   return ; retornar de subrutina
   END ; Fin del cdigo
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines