INDICADOR POR DISPLAY DE 7 SEG CON PIC 16F84A

#1
HOLA AMIGO AQUI LES DEJO UN INDICADOR CON UN DISPLAY DE 7SEG PUEDE SER UTIL COMO PARA SABER CUAL MOTOR A DEJADO DE FUNCIONAR BUENO A PONEN SU CREATIVIDAD SOLO ES PARA 3 MOTORES PARA VISUALIZAR. BUENO ES PEQUEÑO PARA COMENZAR JEJEJE.:)

si desean ver las imagenes entra aqui ....
http://cid-464d48e0f98db0b1.photos.live.com/self.aspx/Nuevo álbum/INDICADOR DE CON DISPLAY 7 SEG.gif

aqui esta el diagrama en proteus entra
http://cid-464d48e0f98db0b1.photos.live.com/self.aspx/Nuevo álbum/diagrama.png


aqui les dejo el codigo en ensamblador

Código:
  LIST P=16F84A                  ;DEFINIR AL PIC 16F84A
;----------------------------------------------------------------------------
;                          ZONA DE DIRECCIONES 
;----------------------------------------------------------------------------
  ESTADO   EQU 0X03              ;REGISTROS DE ESTADOS Y BITS DE CONTROL
  PA       EQU 0X05              ;PUERTO A Q ESTA EN LA DIRECCION 05 DE RAM
  PB       EQU 0X06              ;PUERTO B Q ESTA EN LA DIRECCION 06 DE RAM
;****************************************************************************
;   DIRECCION DE TEMPORIZADOR TIEMPOS POR CICLOS, TIEMPO FIJO EN SEGUNDOS
;****************************************************************************
  TIEMPO   EQU 0X0E              ;TEMPORIZADOR Y 
  TIEMPO1  EQU 0X10              ;POR BUCLE0 O CONTROL        
  TIEMPO2  EQU 0X11              ;POR BUCLE1                  
  TIEMPO3  EQU 0X12              ;POR BUCLE2     
;-----------------------------------------------------------------------------
;                          FIN DE DIRECCIONES
;----------------------------------------------------------------------------- 
 
;****************************************************************************
;COMPORTAMIENTO SI DESEAS EN ENTRADAS O SALIDAS DE ACUERDO A LO QUE DESEES
;****************************************************************************
         ORG 0X00                ;VECTOR DE RESET ES LA DIRECCION 0X00
         BSF     ESTADO,5        ;SE UBICA EN EL SEGUNDO BANCO
         MOVLW   0X1F            ;SE CARGA LOS 5 PIN COMO ENTRADA DEL PUERTO
         MOVWF   PA              ;Y SE CARGA DE W A F PUERTO A
         MOVLW   0X00            ;SE CARGA LOS PIN COMO SALIDAS DEL PUERTO
         MOVWF   PB              ;Y SE CARGA DE W A F PUERTO B
         BCF     ESTADO,5        ;SE UBICA EN EL PRIMER BANCO
         CLRF    TIEMPO          ;LIMPIAR O BORRAR 
         CLRF    TIEMPO1         ;LIMPIAR O BORRAR
         CLRF    TIEMPO2         ;LIMPIAR O BORRAR
         CLRF    TIEMPO3         ;LIMPIAR O BORRAR
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
;****************************************************************************
;             AQUI ES EL PROGRAMA O LA PROGRAMACION
;****************************************************************************
INICIO   BTFSC   PA,0            ;REALIZA UNA PREGUNTA AL PORTA/0 SI ES IGUAL 0
         GOTO    S1              ;SI NO ES = 0 PASA A GOTO IR S1
         GOTO    S2              ;SI ES = 0 PASA A GOTO IR S2
S2       BCF     PB,1            ;BCF ES PONER EN 0 AL BIT PB1
         BSF     PB,2            ;BSF ES PONER EN 1 AL BIT PB1
         BSF     PB,3            ;BSF ES PONER EN 1 AL BIT PB1
         BCF     PB,4            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,5            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,6            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,7            ;BCF ES PONER EN 0 AL BIT PB1
         MOVLW   .1              ;CARGO TEMPORIZADOR A UN 1 SEGUNDO CON LIMITE 255
         CALL    DEMORA          ;LLAMO A LA SUB RUTINA DEMORA
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         BCF     PB,1            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,2            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,3            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,4            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,5            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,6            ;BCF ES PONER EN 0 AL BIT PB1
         BCF     PB,7            ;BCF ES PONER EN 0 AL BIT PB1
         MOVLW   .1              ;TEMPORIZADOR A UN SEGUNDO
         CALL    DEMORA         
         BTFSC   PA,1            ;REALIZA UNA PREGUNTA AL PORTA/1 SI ES IGUAL 0 
         GOTO    ADELAN
         GOTO    ENCEND
ENCEND   BSF     PB,1
         BSF     PB,2
         BCF     PB,3
         BSF     PB,4
         BSF     PB,5
         BCF     PB,6
         BSF     PB,7
         MOVLW   .1
         CALL    DEMORA
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         BCF     PB,1
         BCF     PB,2
         BCF     PB,3
         BCF     PB,4
         BCF     PB,5
         BCF     PB,6
         BCF     PB,7
         MOVLW   .1
         CALL    DEMORA
ADELAN   BTFSC   PA,2            ;REALIZA UNA PREGUNTA AL PORTA/2 SI ES IGUAL 0             
         GOTO    INICIO
         GOTO    ENCEND1
ENCEND1  BSF     PB,1
         BSF     PB,2
         BSF     PB,3
         BSF     PB,4
         BCF     PB,5
         BCF     PB,6
         BSF     PB,7 
         MOVLW   .1
         CALL    DEMORA
         BCF     PB,1
         BCF     PB,2
         BCF     PB,3
         BCF     PB,4
         BCF     PB,5
         BCF     PB,6
         BCF     PB,7
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         MOVLW   .1
         CALL    DEMORA
         GOTO    INICIO          ;UNA VEZ REALIZADO GOTO BUSCA A INICIO Y
                                 ;EMPIEZA DE NUEVO
S1       BTFSC   PA,1            ;LO MISMO REALIZA UNA PREG. AL PORTA PIN 1
         GOTO    SIGA
         GOTO    ENCE
ENCE     BSF     PB,1
         BSF     PB,2
         BCF     PB,3
         BSF     PB,4
         BSF     PB,5
         BCF     PB,6
         BSF     PB,7
         MOVLW   .1
         CALL    DEMORA
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         BCF     PB,1
         BCF     PB,2
         BCF     PB,3
         BCF     PB,4
         BCF     PB,5
         BCF     PB,6
         BCF     PB,7
         MOVLW   .1
         CALL    DEMORA
SIGA     BTFSC   PA,2
         GOTO    INICIO
         GOTO    ENCE1
ENCE1    BSF     PB,1
         BSF     PB,2
         BSF     PB,3
         BSF     PB,4
         BCF     PB,5
         BCF     PB,6
         BSF     PB,7
         MOVLW   .1
         CALL    DEMORA
         CLRF    PA              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         CLRF    PB              ;LIMPIAR O BORRAR AUN QUE NO ES NECESARIO
         BCF     PB,1
         BCF     PB,2
         BCF     PB,3
         BCF     PB,4
         BCF     PB,5
         BCF     PB,6
         BCF     PB,7
         MOVLW   .1
         CALL    DEMORA
         GOTO    INICIO
;................................................................
;SUB RUTINA DEL TERPORIZADOR EN SEGUNDOS CON UN LIMITE
;................................................................
DEMORA        MOVWF   TIEMPO
              GOTO    TMP1     ;TEMPORIZADOR 1
TMP1_BUCLE2                    ;TEMPORIZADOR DE CONTROL2
              NOP              ;NO OPERAR, NO REALIZA 
              NOP              ;OPERACION ALGUNA
              NOP              ;EN REALIDAD CONSUME UN CICLO
              NOP              ;DE INSTRUCCION SIN HACER NADA
              NOP 
              NOP
              NOP
TMP1          MOVLW    .10     ;CARGA A W
              MOVWF    TIEMPO1 ;PASA DE W A F
TMP1_BUCLE1                    ;TEMPORIZADOR DE CONTROL1
              NOP
              NOP
              MOVLW    .99
              MOVWF    TIEMPO2
TMP1_BUCLE0                    ;TEMPORIZADOR DE CONTROL0
              NOP
              NOP
              NOP
              MOVLW    .200
              MOVWF    TIEMPO3
TMP1_BUCLE                     ;TEMPORIZADOR DE CONTROL
              NOP
              NOP
              DECFSZ   TIEMPO3,1   ;DECREMENTAR
              GOTO     TMP1_BUCLE 
              NOP
              NOP
              NOP
              DECFSZ   TIEMPO2,1
              GOTO     TMP1_BUCLE0
              NOP
              NOP
              NOP
              DECFSZ   TIEMPO1,1
              GOTO     TMP1_BUCLE1
              DECFSZ   TIEMPO,1
              GOTO     TMP1_BUCLE2
              RETURN
              END
 
Arriba