martes, 28 de septiembre de 2010

SECUENCIA DE LEDS1 EN PROTEUS Y CÓDIGO

A CONTINUACIÓN ENCONTRARÁ EL CÓDIGO .ASM PARA LA SECUENCIA DE LEDS1 PARA QUE CREE SU ARCHIVO .HEX MEDIANTE MATLAB Y LO QUEME A UN PIC REAL O A UNO DE PROTEUS.
ESPERO LES SEA DE UTILIDAD.
PRONTO VENDRÁN MÁS CÓDIGOS.
SOLO LO COPIAN Y LO PEGAN EN BLOC DE NOTAS Y YA SABRÁN QUE HACER CON ÉL.(no se preocupen al copiarlo, pues solo lo seleccionan, copian y pegan en el bloc de notas y listos, si algo, lo editan en el bloc de notas, lo unico que puede fallar son los espaciados sangría.)
EL VÍDEO LO ENCUENTRA EN:
http://www.youtube.com/watch?v=NxSwz_gFb8Q

PARA COLOCAR ESTOS ARCHIVOS EN SUS PÁGINAS CITE POR FAVOR LA FUENTE Y EL AUTOR.
EL AUTOR NO ES RESPONSABLE DEL MAL USO DE ESTE MATERIAL.









;------------------------------------------------------------
;------------------------------------------------------------
;<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>
;<<<<<<<<<<<>>>>>>>>>>>>>>>>
;------------------------------------------------------------
;------------------------------------------------------------
;<<<<<<<<8 SECUENCIAS DE 8 LEDS DISTINTAS SEGUIDAS EN UN PIC 16F84A>>>>>>>>>>>>>>
;------------------------------------------------------------
;------------------------------------------------------------



LIST P=16F84A                           ;PIC A UTILIZAR
#INCLUDE          ;INCLUIR LAS LIBRERÍAS DEL PIC
RADIX HEX                                 ;CONVERTIR TODOS LOS VALORES A HEXADECIMAL


CONT       EQU 0X0C      ;REGISTROS DE PROPÓSITO GENERAL
CONT2      EQU 0X0D      ;PARA ALMACENAR LOS VALORES
CONT3      EQU 0X0E      ;PARA EL CONTADOR




ORG 0                           ;VECTOR RESET DEL PIC UTILIZADO
GOTO INICIO                     ;EN CASO DE RESET EL PIC EMPIEZA A TRABAJAR EN LA ETIQUETA INICIO
ORG 5                           ;LA MEMORIA DE TRABAJO SE EMPIEZA DESDE LA POSICIÓN 5 O 0X05H







INICIO

BSF STATUS,RP0                 ;ACCEDEMOS AL BANCO 1 DE CONFIGURACION DE PUERTOS
MOVLW B'00000000'              ;CONFIGURAMOS LAS 8 LÍNEAS DEL PUERTO B COMO SALIDA
MOVWF TRISB                    ;......................................................
MOVLW B'11111'                 ;CARGAMOS 5 UNOS LÓGICOS EN W, CORRESPONDIENTES A LAS 5 LINEAS DEL PUERTO A
MOVWF TRISA                    ;LLEVAMOS EL CONTENIDO DE W AL REGISTRO TRISA CORRESPONDIENTE AL PUERTO A, QUIEN LO CONFIGURAMOS COMO ENTRADA
BCF STATUS,RP0                 ;ACCEDEMOS AL BANCO 0 DE CÓDIGO DEL PROGRAMA
   

;SECUENCIAS DE ENCENDIDO DE LOS LED´S

SECUENCIA1 CLRF PORTB
                      CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                      BSF PORTB,0              ;PRENDO EL LED1
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,1              ;PRENDO EL LED2
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,2             ;PRENDO EL LED3
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,3           ;PRENDO EL LED4
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,4           ;PRENDO EL LED5
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,5           ;PRENDO EL LED6
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,6           ;PRENDO EL LED7  
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,7           ;PRENDO EL LED8
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO

SECUENCIA2 CLRF PORTB
                      CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                     BSF PORTB,7           ;PRENDO EL LED8
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,6           ;PRENDO EL LED7
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,5           ;PRENDO EL LED6
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,4           ;PRENDO EL LED5
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,3           ;PRENDO EL LED4
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,2             ;PRENDO EL LED3
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,1              ;PRENDO EL LED2
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,0              ;PRENDO EL LED1
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO

SECUENCIA3 CLRF PORTB
                     CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                     BSF PORTB,0              ;PRENDO EL LED1
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,2             ;PRENDO EL LED3
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,4           ;PRENDO EL LED5
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                     BSF PORTB,6           ;PRENDO EL LED7
                     CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO

SECUENCIA4 CLRF PORTB
                      CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                      BSF PORTB,7           ;PRENDO EL LED8
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,5           ;PRENDO EL LED6
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,3           ;PRENDO EL LED4
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                      BSF PORTB,1              ;PRENDO EL LED2
                      CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO

SECUENCIA5 CLRF PORTB
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,0              ;PRENDO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BCF PORTB, 0          ;APAGO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,1           ;PRENDO EL LED2
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 1          ;APAGO EL LED2
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,2           ;PRENDO EL LED3
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 2          ;APAGO EL LED3
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,3           ;PRENDO EL LED4
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 3          ;APAGO EL LED4
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,4           ;PRENDO EL LED5
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 4          ;APAGO EL LED5
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,5           ;PRENDO EL LED6
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 5          ;APAGO EL LED6
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,6           ;PRENDO EL LED7
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 6          ;APAGO EL LED7
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,7           ;PRENDO EL LED8
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 7          ;APAGO EL LED8
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO

SECUENCIA6 CLRF PORTB
                      CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,7           ;PRENDO EL LED8
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 7          ;APAGO EL LED8
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,6           ;PRENDO EL LED7
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 6          ;APAGO EL LED7
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,5           ;PRENDO EL LED6
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 5          ;APAGO EL LED6
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,4           ;PRENDO EL LED5
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 4          ;APAGO EL LED5
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,3           ;PRENDO EL LED4
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 3          ;APAGO EL LED4
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,2           ;PRENDO EL LED3
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 2          ;APAGO EL LED3
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,1           ;PRENDO EL LED2
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 1          ;APAGO EL LED2
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,0              ;PRENDO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BCF PORTB, 0          ;APAGO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO

SECUENCIA7 CLRF PORTB
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,0              ;PRENDO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BCF PORTB, 0          ;APAGO EL LED1
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,2           ;PRENDO EL LED3
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 2          ;APAGO EL LED3
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,4           ;PRENDO EL LED5
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 4          ;APAGO EL LED5
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,6           ;PRENDO EL LED7
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 6          ;APAGO EL LED7
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO

SECUENCIA8 CLRF PORTB
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,7           ;PRENDO EL LED8
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 7          ;APAGO EL LED8
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,5           ;PRENDO EL LED6
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 5          ;APAGO EL LED6
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,3           ;PRENDO EL LED4
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 3          ;APAGO EL LED4
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO
                  BSF PORTB,1           ;PRENDO EL LED2
                  CALL UNSEGUNDO      ;LO MANTENGO ENCENDIDO POR UN SEGUNDO Y LUEGO
                  BCF PORTB, 1          ;APAGO EL LED2
                  CALL UNSEGUNDO      ;ESPERO UN SEGUNDO Y LUEGO

FINSECUENCIAS CLRF PORTB
              CALL UNSEGUNDO
              BSF PORTB,0 
              BSF PORTB,1
              BSF PORTB,2
              BSF PORTB,3
              BSF PORTB,4
              BSF PORTB,5
              BSF PORTB,6
              BSF PORTB,7
              CALL UNSEGUNDO
              CLRF PORTB             
              CALL UNSEGUNDO
              BSF PORTB,0 
              BSF PORTB,1
              BSF PORTB,2
              BSF PORTB,3
              BSF PORTB,4
              BSF PORTB,5
              BSF PORTB,6
              BSF PORTB,7
              CALL UNSEGUNDO
              CLRF PORTB

GOTO SECUENCIA1

;SUBRUTINA DE RETARDO DE 1 SEGUNDO

UNSEGUNDO MOVLW .100
          MOVWF CONT3
CICLO3    MOVLW .97
          MOVWF CONT2
CICLO2    MOVLW .33
          MOVWF CONT
CICLO     DECFSZ CONT,F
          GOTO CICLO
          DECFSZ CONT2,F
          GOTO CICLO2
          DECFSZ CONT3,F
          GOTO CICLO3
RETURN




END                             ;FINALIZA EL PROGRAMA

2 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. hola amigo, me gusto lo que hiciste, me podrias decir como se le puede hacer que por medio de una interrupcion externa(dip-switch) se escogiera una secuencia.
    si me puedes decir te lo aagradeceria mucho...

    ResponderEliminar