Autor Tema: (AYUDA) GRABAR DATOS EN EEPROM DE CONTADOR 0 A 99 PIC16F84A  (Leído 1841 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado GABICABRERA

  • PIC10
  • *
  • Mensajes: 1
(AYUDA) GRABAR DATOS EN EEPROM DE CONTADOR 0 A 99 PIC16F84A
« en: 01 de Octubre de 2015, 15:46:23 »
BUENAS TARDES GENTE! NECESITO AYUDAAAAAAAAA!
TENGO UN PROGRAMA CONTADOR DE 0 A 99 CON PULSADOR EN PIC16F84A, Y NECESITO HACER QUE LA MEMORIA EEPROM ME CUENTE LA CANTIDAD DE VECES QUE FUE ACCIONADO EL PULSADOR Y LA VERDAD QUE NO TENGO IDEA DE COMO HACERLO, SI ME PUEDEN AYUDAR SE LOS AGRADESCO, LES PASO MI PROGRAMA!



  LIST P=16F84A
                         #INCLUDE P16F84A.INC
                         #DEFINE BANCO_0 BCF STATUS,5
                         #DEFINE BANCO_1 BSF STATUS,5
                         CONT EQU 0XC
                  CONT2   EQU 0XD         
                          ORG 0H
                          GOTO INICIO
                       

INICIO                BANCO_1
                             CLRF PORTB   ; ESTAS LÍNEAS CONFIGURADAS COMO SALIDAS.
                             BSF PORTA,4   ; LÍNEA DEL PULSADOR CONFIGURADA COMO ENTRADA.
                     BCF PORTA,0
                     BCF PORTA,1
                          BANCO_0  ; ACCESO AL BANCO 0.
                     clrf CONT2
                     clrf CONT
                          CALL VISUALIZA
                       
ARRIBA               BTFSC PORTA,4   ; ¿PULSADOR PRESIONADO?, ¿(PULSADOR)=0?
                          GOTO PULSO   ; NO. VUELVE A LEERLO.
                          BTFSC PORTA,4   ; COMPRUEBA SI ES UN REBOTE.
                          GOTO PULSO   ; ERA UN REBOTE Y SALE FUERA.
                          CALL INCREMENTO  ; INCREMENTA EL CONTADOR Y LO VISUALIZA.
                         
NO_PULSO          CALL VISUALIZA
                     BTFSS PORTA,4   ; ¿DEJÓ DE PULSAR?. ¿(PULSADOR)=1?
                          GOTO NO_PULSO  ; NO. ESPERA QUE DEJE DE PULSAR.

PULSO                     CALL VISUALIZA
                   
                  GOTO ARRIBA
INCREMENTO       INCF CONT,F  ; INCREMENTA EL CONTADOR Y COMPRUEBA SI HA
                          MOVLW .15   ; LLEGADO A SU VALOR MÁXIMO MEDIANTE UNA
                          SUBWF CONT,W  ; RESTA. (W)=(CONTADOR)-10.
                          BTFSC STATUS,C  ; ¿C=0?, ¿(W) NEGATIVO?, ¿(CONTADOR)<10?
                          CLRF CONT   ; NO, ERA IGUAL O MAYOR. POR TANTO, RESETEA.

VISUALIZA                   MOVF CONT,W
                          CALL DISPLAY ; LO PASA A SIETE SEGMENTO PARA PODER SER
                          MOVWF PORTB   ; VISUALIZADO EN EL DISPLAY.
                    BCF PORTA,0
                    BSf PORTA,0
                   movf CONT2,W
                    CAll DISPLAY
                    MOVWF PORTB
                    BCF PORTA,1
                    BSF PORTA,1
                          RETURN
DISPLAY              ADDWF PCL,F ;HACE SALTAR EL PROG. AL LUGAR PERTINENTE DE LA TABLA
                           RETLW 0X3F                                    ;TOMA EL CARACTER "0" EN W Y RETORNA
                           RETLW 0X06                                    ;TOMA EL CARACTER "1" EN W Y RETORNA
                           RETLW 0X5B                                    ;TOMA EL CARACTER "2" EN W Y RETORNA
                            RETLW 0X4F                                    ;TOMA EL CARACTER "3" EN W Y RETORNA
                            RETLW 0X66                                    ;TOMA EL CARACTER "4" EN W Y RETORNA
                            RETLW 0X6D                                    ;TOMA EL CARACTER "5" EN W Y RETORNA
                            RETLW 0X7D                                    ;TOMA EL CARACTER "6" EN W Y RETORNA
                            RETLW 0X07                                    ;TOMA EL CARACTER "7" EN W Y RETORNA
                            RETLW 0X7F                                    ;TOMA EL CARACTER "8" EN W Y RETORNA
                            RETLW 0X67
                          CLRF CONT
                     incf CONT2
                             RETLW 0X3F                                    ;TOMA EL CARACTER "9" EN W Y RETORNA

                              RETURN
                              END    ; FIN DEL PROGRAMA.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: (AYUDA) GRABAR DATOS EN EEPROM DE CONTADOR 0 A 99 PIC16F84A
« Respuesta #1 en: 01 de Octubre de 2015, 15:51:01 »
Primero, por favor no escribas todo en mayusculas

Segundo, Sabes que es lo mas interesante?, en el datasheet tenes el codigo EXACTO  de como grabar y leer del la EEPROM.

Tercero. Recorda que la EEPROM tiene un limite de escrituras, si te la pasas ecribiendo vas a "quemarla".

PD: Tu programa tiene varios errores.

Nunca se resetea CONT2, y estas comparando con 0x0F = 15 en ves de 0x0A = 10 luego de incrementar.
« Última modificación: 01 de Octubre de 2015, 22:39:59 por KILLERJC »


 

anything