Autor Tema: 16f628a Contador que si funciona en proteus pero no en protoboard  (Leído 3257 veces)

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

Desconectado pacocable

  • PIC10
  • *
  • Mensajes: 13
16f628a Contador que si funciona en proteus pero no en protoboard
« en: 29 de Noviembre de 2014, 05:12:43 »
Les adjunto el asm usado:
            LIST      P=16F628, F=INHX8M
            include "P16F628.inc"
            __CONFIG 0x3D30

            ORG     0x0000

            GOTO    Label_0001
Label_0019  MOVLW   0x08
            MOVWF   0x26
            MOVF    0x37      , W
            MOVWF   FSR
            MOVF    0x35      , W
            BTFSC   0x33      , 02
            CALL    Label_0002
            BTFSS   0x33      , 02
            CALL    Label_0003
            MOVF    0x36      , W
            MOVWF   FSR
            BSF     FSR       , 07
            COMF    0x34      , W
            ANDWF   INDF      , f
            MOVF    0x26      , W
            BTFSC   STATUS    , Z
            GOTO    Label_0004
            BTFSC   0x33      , 00
            CALL    Label_0005
Label_0007  MOVF    0x36      , W
            MOVWF   FSR
            RRF     0x21      , f
            RRF     0x20      , f
            MOVF    INDF      , W
            IORWF   0x34      , W
            BTFSS   STATUS    , C
            XORWF   0x34      , W
            MOVWF   INDF
            CALL    Label_0006
            DECFSZ  0x26      , f
            GOTO    Label_0007
            GOTO    Label_0004
Label_0006  MOVF    0x37      , W
            MOVWF   FSR
            MOVF    0x35      , W
            XORWF   INDF      , f
            NOP
            XORWF   INDF      , f
            RETURN
Label_0002  IORWF   INDF      , f
            GOTO    Label_0008
Label_0003  XORLW   0xFF
            ANDWF   INDF      , f
            GOTO    Label_0009
Label_0008  XORLW   0xFF
Label_0009  BSF     FSR       , 07
            ANDWF   INDF      , f
            GOTO    Label_0004
Label_0018  BSF     STATUS    , IRP
Label_000A  CLRF    INDF
            INCF    FSR       , f
            ADDLW   0xFF
            BTFSS   STATUS    , Z
            GOTO    Label_000A
            GOTO    Label_0004
Label_001B  CLRF    0x23
            MOVWF   0x22
Label_000C  MOVLW   0xFF
            ADDWF   0x22      , f
            BTFSS   STATUS    , C
            ADDWF   0x23      , f
            BTFSS   STATUS    , C
            GOTO    Label_0004
            MOVLW   0x03
            MOVWF   0x21
            MOVLW   0xDF
            CALL    Label_000B
            GOTO    Label_000C
            CLRF    0x21
Label_000B  ADDLW   0xE8
            MOVWF   0x20
            COMF    0x21      , f
            MOVLW   0xFC
            BTFSS   STATUS    , C
            GOTO    Label_000D
Label_000E  ADDWF   0x20      , f
            BTFSC   STATUS    , C
            GOTO    Label_000E
Label_000D  ADDWF   0x20      , f
            CLRWDT
            INCFSZ  0x21      , f
            GOTO    Label_000E
            BTFSC   0x20      , 00
            GOTO    Label_000F
Label_000F  BTFSS   0x20      , 01
            GOTO    Label_0010
            NOP
            GOTO    Label_0010
Label_0010  RETURN
Label_0022  ADDLW   0x01
            MOVWF   0x27
            MOVLW   0x0A
            MOVWF   0x22
            CLRF    0x23
Label_0012  CALL    Label_0011
            DECFSZ  0x27      , f
            GOTO    Label_0012
            MOVF    0x24      , W
            RETURN
Label_0005  CLRF    0x22
            CLRF    0x23
            GOTO    Label_0013
Label_0014  RRF     0x21      , f
            RRF     0x20      , f
            RLF     0x22      , f
            RLF     0x23      , f
Label_0013  ADDLW   0xFF
            BTFSC   STATUS    , C
            GOTO    Label_0014
            MOVF    0x23      , W
            MOVWF   0x21
            MOVF    0x22      , W
            MOVWF   0x20
            GOTO    Label_0004
Label_001F  MOVWF   0x22
            MOVLW   0x05
            MOVWF   0x28
            MOVF    0x23      , W
            SUBWF   0x21      , W
            BTFSS   STATUS    , Z
            GOTO    Label_0015
            MOVF    0x22      , W
            SUBWF   0x20      , W
Label_0015  MOVLW   0x04
            BTFSC   STATUS    , C
            MOVLW   0x01
            BTFSC   STATUS    , Z
            MOVLW   0x02
            ANDWF   0x28      , W
            BTFSS   STATUS    , Z
            MOVLW   0xFF
            GOTO    Label_0004
Label_0011  CLRF    0x25
            CLRF    0x24
            MOVLW   0x10
            MOVWF   0x26
Label_0017  RLF     0x21      , W
            RLF     0x24      , f
            RLF     0x25      , f
            MOVF    0x22      , W
            SUBWF   0x24      , f
            MOVF    0x23      , W
            BTFSS   STATUS    , C
            INCFSZ  0x23      , W
            SUBWF   0x25      , f
            BTFSC   STATUS    , C
            GOTO    Label_0016
            MOVF    0x22      , W
            ADDWF   0x24      , f
            MOVF    0x23      , W
            BTFSC   STATUS    , C
            INCFSZ  0x23      , W
            ADDWF   0x25      , f
            BCF     STATUS    , C
Label_0016  RLF     0x20      , f
            RLF     0x21      , f
            DECFSZ  0x26      , f
            GOTO    Label_0017
            MOVF    0x20      , W
            GOTO    Label_0004
Label_0004  BCF     STATUS    , IRP
            BCF     STATUS    , RP1
            BCF     STATUS    , RP0
            CLRWDT
            RETURN
;****************************************
Label_0001  MOVLW   0x07
            MOVWF   CMCON
            BSF     STATUS    , RP0
            MOVLW   0xFC
            MOVWF   TRISB
            MOVF    TRISB     , W
            BCF     STATUS    , RP0
            MOVWF   PORTB
            MOVLW   0x20
            MOVWF   FSR
            MOVLW   0x60
            CALL    Label_000A
            MOVLW   0xA0
            MOVWF   FSR
            MOVLW   0x50
            CALL    Label_000A
            MOVLW   0x20
            MOVWF   FSR
            MOVLW   0x30
            CALL    Label_0018
            MOVLW   0x06
            MOVWF   0x36
            MOVLW   0x02
            MOVWF   0x34
            MOVLW   0x06
            MOVWF   0x37
            MOVLW   0x01
            MOVWF   0x35
            CLRF    0x33
            MOVLW   0xFC
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
            MOVLW   0xFC
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
            MOVLW   0xFC
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
Label_0021  CLRWDT
            BTFSC   PORTA     , 01
            GOTO    Label_001A
            MOVLW   0xFA
            CALL    Label_001B
            GOTO    Label_001C
            MOVLW   0xE6
            MOVWF   0x3D
Label_001C  INCF    0x38      , f
            BTFSC   STATUS    , Z
            INCF    0x39      , f
            CALL    Label_001D
Label_001A  CLRWDT
            BTFSC   PORTA     , 00
            GOTO    Label_001E
            MOVLW   0xFA
            CALL    Label_001B
            CLRF    0x20
            CLRF    0x21
            MOVF    0x39      , W
            MOVWF   0x23
            MOVF    0x38      , W
            CALL    Label_001F
            BTFSS   STATUS    , Z
            GOTO    Label_0020
            MOVLW   0xE8
            MOVWF   0x38
            MOVLW   0x03
            MOVWF   0x39
Label_0020  MOVLW   0x01
            SUBWF   0x38      , f
            MOVLW   0x00
            BTFSS   STATUS    , C
            ADDLW   0x01
            SUBWF   0x39      , f
            CALL    Label_001D
Label_001E  GOTO    Label_0021
Label_001D  MOVF    0x38      , W
            MOVWF   0x20
            MOVF    0x39      , W
            MOVWF   0x21
            MOVLW   0x00
            CALL    Label_0022
            MOVWF   0x3D
            MOVF    0x3D      , W
            SUBLW   0x09
            BTFSS   STATUS    , C
            GOTO    Label_0023
            CALL    Label_0024
            MOVWF   0x3A
            GOTO    Label_0023
Label_0024  MOVLW   0x01
            MOVWF   PCLATH
            MOVF    0x3D      , W
            ADDLW   0x09
            BTFSC   STATUS    , C
            INCF    PCLATH    , f
            MOVWF   PCL
            RETLW   0xFC
            RETLW   0x60
            RETLW   0xDA
            RETLW   0xF2
            RETLW   0x66
            RETLW   0xB6
            RETLW   0xBE
            RETLW   0xE0
            RETLW   0xFE
            RETLW   0xF6
Label_0023  MOVF    0x38      , W
            MOVWF   0x20
            MOVF    0x39      , W
            MOVWF   0x21
            MOVLW   0x01
            CALL    Label_0022
            MOVWF   0x3D
            MOVF    0x3D      , W
            SUBLW   0x09
            BTFSS   STATUS    , C
            GOTO    Label_0025
            CALL    Label_0026
            MOVWF   0x3B
            GOTO    Label_0025
Label_0026  MOVLW   0x01
            MOVWF   PCLATH
            MOVF    0x3D      , W
            ADDLW   0x28
            BTFSC   STATUS    , C
            INCF    PCLATH    , f
            MOVWF   PCL
            RETLW   0xFC
            RETLW   0x60
            RETLW   0xDA
            RETLW   0xF2
            RETLW   0x66
            RETLW   0xB6
            RETLW   0xBE
            RETLW   0xE0
            RETLW   0xFE
            RETLW   0xF6
Label_0025  MOVF    0x38      , W
            MOVWF   0x20
            MOVF    0x39      , W
            MOVWF   0x21
            MOVLW   0x02
            CALL    Label_0022
            MOVWF   0x3D
            MOVF    0x3D      , W
            SUBLW   0x09
            BTFSS   STATUS    , C
            GOTO    Label_0027
            CALL    Label_0028
            MOVWF   0x3C
            GOTO    Label_0027
Label_0028  MOVLW   0x01
            MOVWF   PCLATH
            MOVF    0x3D      , W
            ADDLW   0x47
            BTFSC   STATUS    , C
            INCF    PCLATH    , f
            MOVWF   PCL
            RETLW   0xFC
            RETLW   0x60
            RETLW   0xDA
            RETLW   0xF2
            RETLW   0x66
            RETLW   0xB6
            RETLW   0xBE
            RETLW   0xE0
            RETLW   0xFE
            RETLW   0xF6
Label_0027  MOVLW   0x06
            MOVWF   0x36
            MOVLW   0x02
            MOVWF   0x34
            MOVLW   0x06
            MOVWF   0x37
            MOVLW   0x01
            MOVWF   0x35
            CLRF    0x33
            MOVF    0x3A      , W
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
            MOVF    0x3B      , W
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
            MOVF    0x3C      , W
            MOVWF   0x20
            CLRF    0x21
            CALL    Label_0019
            RETURN
Label_0029  SLEEP
            GOTO    Label_0029
 
 

            END
 este el circuito, en la protoborad se ponen todos a 8 y no se muve, supercomprobado el circuito


Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #1 en: 29 de Noviembre de 2014, 13:08:06 »
Hola pacocable, déjame ver si entiendo bien.....

Vienes con un esquema sacado de algún lugar, con un programa sacado probablemente del mismo lugar, todo en proteus funciona pero en el protoboard no, y quieres que alguien te de la solución y tú ni siquiera as intentado repararlo por tus medios?

Queda bien claro que el programa que posteaste no lo creaste vos, por lo complicado de leerlo parece un des-asembler desde un hexadecimal. Por lo menos yo me hubiera tomado el trabajo de acomodar la escritura para facilitar la lectura.

Prueba solucionarlo por tus medios y en las dudas pues pregunta en el foro, no esperes todo servido.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #2 en: 29 de Noviembre de 2014, 14:49:17 »
Hola pacocable, déjame ver si entiendo bien.....

Vienes con un esquema sacado de algún lugar, con un programa sacado probablemente del mismo lugar, todo en proteus funciona pero en el protoboard no, y quieres que alguien te de la solución y tú ni siquiera as intentado repararlo por tus medios?

Queda bien claro que el programa que posteaste no lo creaste vos, por lo complicado de leerlo parece un des-asembler desde un hexadecimal. Por lo menos yo me hubiera tomado el trabajo de acomodar la escritura para facilitar la lectura.

Prueba solucionarlo por tus medios y en las dudas pues pregunta en el foro, no esperes todo servido.

Un saludo.

Atte. CARLOS.



Me parecio ver un lindo gatito... !!!!  :mrgreen:


Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #3 en: 29 de Noviembre de 2014, 21:29:34 »
Hola Darkman_A, a eso me refería, el chavo quiere todo hecho..... A trabajar mijo, y si ne lo gusta, pues cómprelo hecho.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pacocable

  • PIC10
  • *
  • Mensajes: 13
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #4 en: 03 de Diciembre de 2014, 03:47:22 »
muchas gracias, si el asm y el circuito es bajado de la red, por algo tenia que empezar, al final me decidi a ponerlo en una placa con todos los componentes, en vez del protoboard. pero al conectarlo directamente aparecen  8 en los displays incluso si el pic conectado, la duda que tengo es si el pin 1hc164 hay que conectarlo a +5 dc o dejarlo sin conectar pues por el pin 9 ya esta en +5v

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #5 en: 03 de Diciembre de 2014, 13:44:32 »
muchas gracias, si el asm y el circuito es bajado de la red, por algo tenia que empezar, al final me decidi a ponerlo en una placa con todos los componentes, en vez del protoboard. pero al conectarlo directamente aparecen  8 en los displays incluso si el pic conectado, la duda que tengo es si el pin 1hc164 hay que conectarlo a +5 dc o dejarlo sin conectar pues por el pin 9 ya esta en +5v

http://pdf.datasheetcatalog.com/datasheet/philips/74HC_HCT164_CNV_2.pdf

Segun el datasheet, el pin 1 es una de las entradas al shift register, ambas entradas llegan a una compuerta AND, por lo tanto o unis ambas como esta en el circuito ( asi ambas se ponen a 1 para un 1 a la salida ) o pones a VCC uno de esos pines y el otro le mandas la señal ( Esta solucion es mas compleja de aplicar en una PCB ).

El pin 9 es de MR, o master reset, que para que funcione como shift register deberia estar en 1 ( por que esta negado )
En la pagina 4 tenes una tabla de que ocure cuando tenes en alto o en bajo las entradas.

Los pines de alimentacion son 14 VCC y 7 GND.

Toda esa info sacada del datasheet xD. Siempre busca los datasheet de los componentes para entenderlos.

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: 16f628a Contador que si funciona en proteus pero no en protoboard
« Respuesta #6 en: 03 de Diciembre de 2014, 17:28:05 »
muchas gracias, si el asm y el circuito es bajado de la red, por algo tenia que empezar, al final me decidi a ponerlo en una placa con todos los componentes, en vez del protoboard. pero al conectarlo directamente aparecen  8 en los displays incluso si el pic conectado, la duda que tengo es si el pin 1hc164 hay que conectarlo a +5 dc o dejarlo sin conectar pues por el pin 9 ya esta en +5v

Hola.
Me parece que le estas errando a la forma de empezar.
Se empieza estudiando, ya sea de tutoriales o de libros y realizando pequeños ejemplos. A medida que uno va aprendiendo se embarca en diseños mas complejos.
Y digo que le estas errando porque, por ejemplo, el codigo que acompaña ese esquematico esta en BASIC. Asi que hasta estas preguntando mal, porque tendrias que poner ese codigo y no el assembler. No, no voy a poner donde esta el codigo en BASIC :) .
Este proyecto emplea el uso de tablas, que es algo basico. Si te lo pidieron en la escuela tendrias que estudiar como se utiliza (implementa).
Cuando estudies y tengas alguna duda sobre TU proyecto, pregunta que con gusto, por lo menos yo, te voy (vamos) a responder.

Saludos.


 

anything