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.![:) :) :)](/foro/bakaritas/106.gif)
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
![:) :) :)](/foro/bakaritas/106.gif)
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