Buenos días!
Veréis, tengo un pequeño problema con un proyecto de clase con el pic 16F886, he probado 1001 formas y no hay manera de hacerlo funcionar.
La idea es que al pulsar un pulsador, giren números en un 7 segmentos, y al soltar el pulsador, se quede el ultimo número.
Lo he intentado con tablas, y me ha resultado imposible, así que al final lo he hecho a lo bestia, y sigue dándome el mismo problema:
Los números giran, pero al soltar el pulsador aparece el 7 segmentos apagado.
Es curioso, porque en el Proteus funciona a la perfección.
Sospecho que sea alguna configuración del PIC o algo similar, que no deja que al soltar el pulsador se siga mostrando un numero.
Os proporciono el programa en cuestión:
Aqui el circuito:
Sabéis que puede pasar?
Muchas gracias por adelantado!
Veréis, tengo un pequeño problema con un proyecto de clase con el pic 16F886, he probado 1001 formas y no hay manera de hacerlo funcionar.
La idea es que al pulsar un pulsador, giren números en un 7 segmentos, y al soltar el pulsador, se quede el ultimo número.
Lo he intentado con tablas, y me ha resultado imposible, así que al final lo he hecho a lo bestia, y sigue dándome el mismo problema:
Los números giran, pero al soltar el pulsador aparece el 7 segmentos apagado.
Es curioso, porque en el Proteus funciona a la perfección.
Sospecho que sea alguna configuración del PIC o algo similar, que no deja que al soltar el pulsador se siga mostrando un numero.
Os proporciono el programa en cuestión:
Código:
INCLUDE <P16F886.INC>
CBLOCK 0x20
PDel0
PDel1
PDel2
ENDC
ORG 0
;configuro puertos
BANKSEL ANSEL
clrf ANSEL
clrf ANSELH
;PORTA y PORTB son digitales
BANKSEL TRISC
clrf TRISC ;PORTC es out
movlw 0xFF
movwf TRISB ;PORTB es in
BANKSEL PORTA
;fin de configuracion de puertos
clrf PORTC
;movwf PORTC
num1
movlw b'00000110'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num1
num2
movlw b'01011011'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num2
num3
movlw b'01001111'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num3
num4
movlw b'01100110'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num4
num5
movlw b'01101101'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num5
num6
movlw b'01111101'
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num6
num7
movlw b'01111101' ;en realitatm num7 es el 6, per augmentar la probabilitat de que surti aquest
movwf PORTC
call DEMORA
btfsc PORTB,4
goto num7
goto num1
;-------------------------------------------------------------
; Generado con PDEL ver SP r 1.0 el 26/04/2008 Hs 22:30:53
; Descripcion: Delay 12000 ciclos
;-------------------------------------------------------------
DEMORA movlw .67 ; 1 set numero de repeticion (B)
movwf PDel0 ; 1 |
PLoop1 movlw .35 ; 1 set numero de repeticion (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
clrwdt ; 1 ciclo delay
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2
return ; 2+2 Fin.
;-------------------------------------------------------------
END
Aqui el circuito:
Sabéis que puede pasar?
Muchas gracias por adelantado!
Adjuntos
Última edición: