IMPORTANTE recomiendo comparar este codigo con el que no tiene pulsadores.
Video de la implementacion
Video de la implementacion
y el codigo fuente
LIST P=16F886
INCLUDE P16F886.INC
ERRORLEVEL -302
__CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
__CONFIG _CONFIG2, _BOR40V & _WRT_OFF
CBLOCK 0X20
PDel0, PDel1, DECENAS, UNIDADES
ENDC
ORG 00
GOTO CONFIGURA
RET_10MS movlw .8 ; 1 set number of repetitions (B)
movwf PDel0 ; 1 |
PLoop1 movlw .249 ; 1 set number of repetitions (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
clrwdt ; 1 cycle delay
decfsz PDel1, 1 ; 1 + (1) is the time over? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) is the time over? (B)
goto PLoop1 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 cycles delay
PDelL2 clrwdt ; 1 cycle delay
return ; 2+2 Done
TABLA ADDWF PCL,F
RETLW B'00111111'
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111100'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01101111'
MOSTRAR MOVF UNIDADES,W ;cargo el valor de las unidades
CALL TABLA
BSF PORTC,5 ;activo el display unidad
BCF PORTC,4 ;desactivo el display decena
MOVWF PORTB
CALL RET_10MS
MOVF DECENAS,W ;cargo el valor de las decenas
CALL TABLA
BCF PORTC,5 ;desactivo el display unidad
BSF PORTC,4 ;activo el display decena
MOVWF PORTB
CALL RET_10MS
RETURN
VER CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR ;LOGRO UN RETARDO DE 160ms
RETURN
CONFIGURA NOP
BANKSEL ANSEL ;paso al banco 3
CLRF ANSEL
CLRF ANSELH
BANKSEL TRISB
MOVLW B'01101100'
MOVWF OSCCON
MOVLW B'00000011'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
BANKSEL PORTB ;paso al banco 0
CLRF PORTB
CLRF DECENAS
CLRF UNIDADES
INICIO CALL MOSTRAR
BTFSC PORTA,0
GOTO UP
BTFSC PORTA,1
GOTO DOWN
GOTO INICIO
UP CALL VER
INCF UNIDADES,F
MOVLW .10
XORWF UNIDADES,W
BTFSC STATUS,Z
GOTO INC_DECENAS
CALL MOSTRAR
GOTO INICIO
INC_DECENAS CLRF UNIDADES
INCF DECENAS,F
MOVLW .10
XORWF DECENAS,W
BTFSC STATUS,Z
CLRF DECENAS
CALL MOSTRAR
GOTO INICIO
DOWN CALL VER
DECF UNIDADES,F
MOVLW .255
XORWF UNIDADES,W
BTFSC STATUS,Z
GOTO DEC_DECENAS
CALL MOSTRAR
GOTO INICIO
DEC_DECENAS MOVLW .9
MOVWF UNIDADES
DECF DECENAS,F
MOVLW .255
XORWF DECENAS,W
BTFSS STATUS,Z
GOTO INICIO
MOVLW .9
MOVWF DECENAS
CALL MOSTRAR
GOTO INICIO
END
Copyright 2012 edwtron
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o una version superior.
Leer la licencia GNU gpl para mas detalles.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
Copyright 2012 edwtron
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o una version superior.
Leer la licencia GNU gpl para mas detalles.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
vieja por favor pone el archivo(el programa del PIC) de assembler para poder descargarlo, por que así como esta no lo podemos utilizar me ayudarías mucho a terminar un proyecto gracias.
ResponderEliminarListo socio, ya puedes descargar el codigo, al final esta el enlace. mucha suerte!!
EliminarSocio me has salvado la vida enserio, gracias, ademas tu introducción a MPBALX me ayudo demasiado, yo solo usaba la versión pasada de MPLAB & el PIC16F886 no viene en sus librerías, un gran saludo de un próximo Técnico en Telecomunicaciones!
ResponderEliminarQue grande Edwtron sos mi Heroe loco muchas gracias por tu aporte!
ResponderEliminarDISCULPA CON QUE PROGRAMA ESTA HECHA LA CODIFICACION???
ResponderEliminarEl programa es el MPLAB X, lo puedes descargar gratis de la pagina de Microchip, http://www.microchip.com/mplab/mplab-x-ide y el lenguaje es Assembler para PICs
Eliminarhola amigo me justo mucho tu proyecto pero no me compila bien el programa me ayudarias mucho en un proyecto que estoy realizando me podrias compartir tu codigo este es mi correo crizdj123@hotmail.com
ResponderEliminar