VOLTIMETRO - AMPERIMETRO D.C CON PIC ARTICULO COMPLETO..!

Vallecaucano · 208341

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

Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
HOLA AMIGOS SUBO ARTICULO COMPLETO DE VOLTIMETRO-AMPERIMETRO DC CON MICROCONTROLADOR PIC, ESTE ARTICULO SALIO EN LA REVISTA RESISTOR NUMERO 225.    ESPERO LES SEA DE UTILIDAD....     :brindis:
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #1 on: agosto 07, 2008, 12:52:36 pm
SUBO PROGRAMA PARA EL MICROCONTROLADOR.....        alab_
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #2 on: agosto 19, 2008, 17:04:12 pm
SUBO DISEÑO DE CIRCUITO IMPRESO PARA ESTE PROYECTO...     %&//
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #3 on: agosto 23, 2008, 17:52:03 pm
OTRAS FOTOS.......    fiestafiesta
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado gelo

  • Usuario Standard
  • *
    • Mensajes: 16
    • ACTIVIDAD:
      0%
    • DT$ 16
Respuesta #4 on: septiembre 01, 2008, 22:33:04 pm
Hola estoy a ver si monto un voltimetro amperimetro a mi fuente este parece muy bueno ya mire la info
A la hora de compilar me da error in parameter "-" no doy compilado para el .hex quien me ayuda niidea utilizo MPASMWIN

PD: yo hago las placas con insoladora y placa positiva que tecnica utilizas Vallecaucano  ohhhhh.
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #5 on: septiembre 01, 2008, 23:00:43 pm
gelo

usando el mplab  v 8.14 y el MPASM toolsuite que esta incluso en el MPLAB, compilo ok.

te estoy enviando el directorio completo en anexo

te sugiero hacer lo siguiente

1>bajar MPLAB 8.14 que puedes encontrar en el microchip site
2>instalar
3>bajar en anexo de esta nota en el disco
4>clickar encima de programa_voltimetro.mcp, lo que debería abrir automáticamente MPLAB y compilar

ou

abrir MPLAB y en project, abrir el programa_voltimetro.mcp

o, si no quieres tomarte el trabajo, en el anexo esta ja el HEX, resultado de la compilación

suerte

jjose


informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #6 on: septiembre 02, 2008, 08:52:09 am
Hola,  yo uso el MPLAB version 8.10 con  el programador Picstar Plus,  estuve ensayando la version  8.14, pero ésta version tiene algunos problemas e incluso la version de firmware para el Picstar Plus tiene problemas.... 

Yo compile todo el programa y no tuve ningun problema, realice algunos cambios al programa y todo me funciono a la perfeccion. Es muy importante en el circuito  a lo que corresponde al voltaje de referencia usar resistencias de precision,  yo use resistencias con una tolerancia de 0,1% y la precision es muy buena..!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #7 on: septiembre 02, 2008, 09:24:53 am
Hola Gelo:

En cuanto a las placas de PCB, uso la técnica del Screen; es la usada generalmente para estampar ropa, articulos como souvenirs, etc.
la calidad de la PCB depende directamente de la calidad del patron usado, es decir, si el diseño de la tarjeta lo haces a mano, la calidad es muy relativa, pero si para el diseño usas un programa de computador y el diseño lo imprimes a alta resolucion, obtendras una PCB de altisima calidad. Los pasos son los siguiente:

1.- Diseño del circuito PCB con Prolite ISIS Lite.
2.- Imprimo el diseño en un acetato a maxima resolución.
3.- Uso un marco con malla suiza No. 90  (ver foto abajo)
4.- Se sensibiliza la malla con emulsion fotosensible.
5.- Revelo la malla usando el patron que previamente imprimi.
6.- Imprimo la PCB (virgen) con tinta Polietileno. (se pueden imprimir gran cantidad...)
7.- Usando Percloruro sumerjo la placa y al cabo de unos 6 minutos la placa está lista.
8.- Perforo todo los puntos donde seran montados los diferentes componentes.
9.- ensamblo la tarjeta....  aplico una capa protectora.... y  FIN.
 
Este es el método que uso desde hace mucho tiempo... unos meses atras intente usar el método de la "Plancha", pero lo único que obtuve fué frustraciones, ademas no se obtiene la misma calidad del método del screen.....  El método del screen solo requiere practicar un poco y siempre vas a la segura en tus trabajos..!

MUCHA SUERTE A TODOS...!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado gelo

  • Usuario Standard
  • *
    • Mensajes: 16
    • ACTIVIDAD:
      0%
    • DT$ 16
Respuesta #8 on: septiembre 02, 2008, 10:50:01 am
Muchas gracias por contestar a todos  :DTFM:

No entiendo muy bien como es la técnica pero me informaré mas a fondo ...es muy interesante y el resultado es muy bueno.

Gracias tambien por  el .hex intentare compilarlo yo tambien ....aun estoy empezando y estoy muy verde aún a ver si poco a poco puedo compilar yo que ya va siendo hora........

 graciassss a todos amigos  :DTFM2: 
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado gelo

  • Usuario Standard
  • *
    • Mensajes: 16
    • ACTIVIDAD:
      0%
    • DT$ 16
Respuesta #9 on: septiembre 02, 2008, 21:01:30 pm
Lo siento pero no lo tengo claro...... niidea
He bajado la ultima version del MPLAB la 8.14 y abro en proyect el archivo.mcp pero no paso de ahi como compilo cuales son los pasos...... lo siento de verdad :-\ por mas que lo intento no consigo mas que errores o no se como hacerlo esto es un cut/paste:

Debug build of project `G:\voltimetro - amperimetro\SOFT\programa_voltimetro.mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 01:57:26 2008
----------------------------------------------------------------------
Couldn't locate build tool.  Check tool locations.
----------------------------------------------------------------------
Debug build of project `G:\voltimetro - amperimetro\SOFT\programa_voltimetro.mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 01:57:26 2008
----------------------------------------------------------------------
BUILD FAILED

Esto es lo que hace cuando le doy a MAKE  niidea

Es la primera vez que uso este soft asi que no se que hago mal hasta llegar a obtener el .Hex


Gracias por vuestra paciencia
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #10 on: septiembre 02, 2008, 22:59:51 pm
Hola Gelo:

lo primero que te recomiendo, es que uses la version 8.10 la más reciente tiene algunos problemas... ademas de lo anterior, en la medida de lo posible trabaja con Windows XP, en mi portatil tengo Windows Vista version Bussiness pero ha sido imposible hacer funcionar este software correctamente.

Es muy sencillo, talvez no le haz anexado al proyecto los archivos adicionales....  sigue los siguientes pasos:

mira al final del archivo "Voltimetro_4.asm", encontraras que a el proyecto se le debe agregar los siguientes archivos:

                      INCLUDE   <LCD_4BIT.INC>
         INCLUDE <RETARDOS.INC>
         INCLUDE <BIN_BCD_2.INC>
         INCLUDE   <LCD_MENS.INC>
         INCLUDE <PRODUCTO16.INC>

Estos 5 archivos son "fundamentales"  para que la compilacion tenga exito, todos estos archivos tienen ciertas "rutinas que son indispensables, para que el programa principal realice todo lo que se deseamos.

Como anexar los 5 archivos al proyecto principal:

1.- abrir el proyecto y hacer click en la pestaña "project" de la barra de menus del programa Mplab.
2.- se abre inmediatamente una venta, ir a la opcion "add files to project".
3. nuevamente se abre otra ventana donde podras ubicar los 5 archivos que debes anexar, (debes buscarlos en el foder donde los  guardaste en tu PC).
4.- luego que hayas anexados todos los archivos .... debes ejecutar la opcion "build" de la pestaña "Project".

Pienso que si has hecho todo como te digo, no tendras ningun problema....

Suerte..!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #11 on: septiembre 02, 2008, 23:29:07 pm
Gelo.

Te recomiendo el libro "Microcontrolador PIC16F84 Desarrollo de proyectos",  según mi opinion es "lo mejor de lo mejor" ahi podras aprender absolutamente todo lo requieres para aprender el maravilloso mundo de los PICs.
Los autores son paisanos tuyos....  desde luego facilmente podras comprarlo en tu pais...   no te arrepentiras...!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado jjose

  • GOLD MEMBER
  • *
    • Mensajes: 819
    • ACTIVIDAD:
      0%
    • DT$ 675
Respuesta #12 on: septiembre 02, 2008, 23:29:23 pm
Precisas hacer el setup del MPASM toolsuite

Seguir lo siguiente

En el MPLAB
1>   clickar en al oreja  “project”
2>   clickar en la anteúltima línea “set language tool location”
3>   clickar en el símbolo + a la izquierda del “microchip mpasm Toolsuite”
4>   clickar en el símbolo + a la izquierda del “executables”
5>   clickar en “MPASM assembler (mpasmwin.exe)

en al ventana abajo tiene que aparecer el path del programa mpasmwin.exe, en mi caso aparece
C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe
6>   lo mismo para mplib.exe  y mplink.exe


completado, cerrar COM APPLY Y OK

A SEGUIT APRETAR “CTRL + F10”,

La compilacion debería dar el siguiente mensaje ( salvo alguna diferencia por estar en directorios diferentes)

---------------------------------------------------------------------- Debug build of project `Z:\dt_forum\Programas voltimetro\programa_voltimetro.mcp' started. Preprocessor symbol `__DEBUG' is defined. Tue Sep 02 23:22:23 2008
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "Z:\dt_forum\Programas voltimetro\Voltimetro_4.err".
Clean: Deleted file "Z:\dt_forum\Programas voltimetro\Voltimetro_4.cod".
Clean: Deleted file "Z:\dt_forum\Programas voltimetro\Voltimetro_4.hex".
Clean: Deleted file "Z:\dt_forum\Programas voltimetro\Voltimetro_4.lst".
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F819 "Voltimetro_4.asm" /l"Voltimetro_4.lst" /e"Voltimetro_4.err" /d__DEBUG=1
Warning[215] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 10 : Processor superseded by command line.  Verify processor symbol.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 42 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 50 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 52 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 97 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 200 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 201 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\VOLTIMETRO_4.ASM 202 : Register in operand not in bank 0.  Ensure that bank bits are correct.
 Message[302] Z:\DT_FORUM\PROGRAMAS VOLTIMETRO\LCD_4BIT.INC 90 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Loaded Z:\dt_forum\Programas voltimetro\Voltimetro_4.cod.
----------------------------------------------------------------------
Debug build of project `Z:\dt_forum\Programas voltimetro\programa_voltimetro.mcp' succeeded.
Preprocessor symbol `__DEBUG' is defined.
Tue Sep 02 23:22:25 2008
----------------------------------------------------------------------
BUILD SUCCEEDED


jjose



informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado gelo

  • Usuario Standard
  • *
    • Mensajes: 16
    • ACTIVIDAD:
      0%
    • DT$ 16
Respuesta #13 on: septiembre 03, 2008, 07:53:26 am
Conseguido!!!!!   :DTFM2:

Tenia mal configurada la localización del MPASM ya que lo habia bajado  antes que el MPLAB
ahora todo ha ido bien ...no me ha dado problemas la version 8.14 con XP.
Tomare nota del libro......
Gracias de nuevo a todos  :brindis:
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #14 on: septiembre 11, 2008, 17:40:37 pm
Esta es una aplicacion en la cual use  éste proyecto la precision es muy buena....    cuidadito: 
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



johnniewalker

  • Visitante
Respuesta #15 on: mayo 10, 2009, 00:05:14 am
hola a todos, bueno, para los que no tienen privilegios para descargar el articulo posteado aca aqui esta el codigo del VOLTIMETRO - AMPERIMETRO de la revista resistor:



;************************************************************************************
; Programa     VOLTIMETRO.ASM                                        FECHA:    17-11-2004     
;************************************************************************************               
;   
;    Voltímetro y amperímetro digital implementado con PIC16F819
;
;    Autor: Alberto Moreno Tejada
; ***********************************************************************************

    LIST        P=P16F819
    INCLUDE        <P16F819.inc>
    __CONFIG    _INTRC_IO & _PWRTE_ON & _WDT_OFF & _LVP_OFF

        CBLOCK    0x20                    ; la primera posición de la memoria RAM en
        ContaC                            ;  la que se escribe es la 0x20
        Temporal_1
        Dato_H
        Dato_L
        MilesI       
        CentenasI
        DecenasI
        UnidadesI
        ADRESH_Suma
        ADRESL_Suma   
        ADRESH_Old
        ADRESL_Old
        Umbral
        ENDC               

; ***********************************************************************************
;    Programa principal
;
; ***********************************************************************************

            org        0x00                ; vector de reset       
            goto    INICIO               
            ORG        0x05                ; una posición después del vector de
                                        ;     interrupción

INICIO        bsf        STATUS,RP0            ; banco 1       
            movlw    b'01000000'            ; selecciona 1 MHz como frecuencia de reloj
            movwf    OSCCON
            bcf        STATUS,RP0            ; banco 0
            clrf    ADRESH_Old
            clrf    ADRESL_Old
            call    LCD_Inicializa        ; se inicializa la pantalla LCD

PRINCIPAL    bsf        STATUS,RP0            ; banco 1 de registros
            movlw    b'10000001'            ; se configuran las entradas y salidas
            movwf    ADCON1                ;     del puerto A como digitales
            movlw    b'00111111'            ; se configura el puero A como entradas
            movwf    TRISA               
            bcf        STATUS,RP0            ; banco 0 de registros
           
            movlw    b'10001001'            ; se selecciona la entrada de intensidad
            movwf    ADCON0                ;
            Call    ConversionAD        ; Conversión A/D
            call    Convierte            ; Conversión a BCD

            movf    BCD_Miles,W            ; copia el resultado de la conversión a BCD
            movwf    MilesI                ;     de la intensidad a unos registros
            movf    BCD_Centenas,W        ;     auxiliares para que no se pierda la
            movwf    CentenasI            ;    información al hacer la conversión del
            movf    BCD_Decenas,W        ;    voltaje
            movwf    DecenasI
            movf    BCD_Unidades,W
            movwf    UnidadesI
           
            movlw    b'10100001'            ; Se selecciona la entrada de tensión
            movwf    ADCON0
            call    ConversionAD        ; conversion A/D
            call    Convierte            ; conversion a BCD

            call    RestaShunt            ; le resta al valor de la tensión el valor
                                        ;     de la tensión que cae en la resistencia
                                        ;     shunt
            call    Visualiza            ; se visualizan los datos en la pantalla
            goto    PRINCIPAL           

; ***********************************************************************************
; Subrutina ConversionAD: realiza la conversión anañógica-digital
;                 hace 4 conversiones y halla la media aritmética                           
; ***********************************************************************************

ConversionAD           
            clrf    ADRESH_Suma            ; borra los registros donde se sumarán
            clrf    ADRESL_Suma            ;     los resultados de las conversiones
            movlw    .4                    ; carga 4 en contaC
            movwf    ContaC
MediaAD       
            call    Retardo_20ms        ; retardo de 20 ms
            bcf        PIR1,ADIF            ; se borra el FLAG    ADIF
            bsf        ADCON0,GO            ; se da la orden de conversion
ADC_Wait    btfss    PIR1,ADIF            ; esperar hasta que se realice la conversión
            goto    ADC_Wait           
            bsf        STATUS,RP0            ; banco 1  de registros
            movf    ADRESL,W            ; mueve ADRESL a W
            bcf        STATUS,RP0            ; banco 0 de registros
            addwf    ADRESL_Suma,F        ; suma la conversion al total acumulado
            movf    ADRESH,W            ; mueve ADRESH a W
            btfsc    STATUS,C            ; comprueba si el resultado de la suma fue
                                        ;     mayor de FF
            addlw    0x01                ; si : suma 1 a W
            addwf    ADRESH_Suma,F        ; no : suma normalmente el número al
                                        ;     acumulado
            decfsz    ContaC,F            ; decrementa contac y si es 0, sale
            goto    MediaAD

            bcf        STATUS,C            ; banco 1 de registros
            rrf        ADRESH_Suma,F        ; rota el total acumulado dos veces para
            rrf        ADRESL_Suma,F        ;     dividir por 4
            bcf        STATUS,C            ; banco 0 de registros
            rrf        ADRESH_Suma,F        ; rota el total acumulado dos veces para
            rrf        ADRESL_Suma,F        ;     dividir por 4

           
            return

; ***********************************************************************************
;    Subrutina Restashunt: le resta a la tensión el valor de la tensión que cae en la
;                            resistencia de 1 ohmio.
;                        como el valor de la tensión es 10 veces superior, resta las
;                        unidades de V con las decenas de A
; ***********************************************************************************

RestaShunt
            movf    DecenasI,W            ; mueve decenas de intensidad a W
            subwf    BCD_Unidades,F        ; se lo resta a las unidades de V
            movf    CentenasI,W            ; mueve centenas de I a W
            btfsc    STATUS,C            ; comprueba si el resultado de la resta fue
                                        ;     menor de cero
            goto    RestaDecenas        ; no: continua con la siguiente resta
            movlw    0xF6                ; si: le resta F6 al número e incrementa las
            subwf    BCD_Unidades,F        ; centenas de intensidad
            incf    CentenasI,W
RestaDecenas
            subwf    BCD_Decenas,F        ; le resta las centenas de intensidad a las
                                        ;     decenas de V
            movf    MilesI,W            ; mueve los millares de intensidad a W
            btfsc    STATUS,C            ; comprueba si el resultado de la resta fue
                                        ;     menor de cero
            goto    RestaCentenas        ; no: continua con la siguiente resta
            movlw    0xF6                ; si: le resta F6 al número e incrementa los
            subwf    BCD_Decenas,F        ; millares de intensidad
            incf    MilesI,W
RestaCentenas
            subwf    BCD_Centenas,F        ; le resta los millares de intensidad a las
                                        ;     centenas de V
            btfsc    STATUS,C            ; comprueba si el resultado es menor de cero
            return                        ; no: retorna
            clrf    BCD_Unidades        ; si: la tensión menos la tensión en la
            clrf    BCD_Decenas            ;     resistencia nunca puede ser menor que
            clrf    BCD_Centenas        ;     cero. si se diera el caso, el valor de
            clrf    BCD_Miles            ;     la tensión como mínimo es cero

            return                        ; retorno

; ***********************************************************************************
;    Subrutina Convierte: toma el valor resultante de la conversión, lo multiplica
;                         por el tamaño del escalón del ADC, lo convierte a BCD y lo
;                        devuelve
;************************************************************************************

Convierte       
            movf    ADRESH_Suma,w        ; Mueve la parte alta de la conversion a
            movwf    DatoB_H             ;     DatoB_H
            movf    ADRESL_Suma,w        ; Mueve la parte baja de la conversion a
            movwf    DatoB_L                ;     DatoB_L
            movlw    0x0C                ; tension de referencia = 3146 mV. Mueve primero
            movwf    DatoA_H                ;     la parte alta a DatoA_H
            movlw    0x4A                ; mueve la parte baja de la tensiónd de
            movwf    DatoA_L                ;    referencia a DatoA_L
            call    Mul16x16            ;    Subrutina que multiplica DatoA por DatoB
       
                               
            movlw    .10                    ; carga 10 en temporal   
            movwf    Temporal_1
BUCLE_V        bcf        STATUS,C            ; rota a la derecha para dividir por 1024
            rrf        DatoD_H,F
            rrf        DatoD_L,F
            rrf        DatoC_H,F
            rrf        DatoC_L,F

            decfsz    Temporal_1,F        ; decrementa temporal, y si llega a cero sale
            goto    BUCLE_V                ;     del bucle           

            movf    DatoC_H,W            ; mueve la parte alta a BCD_High
            movwf    BCD_High           
            movf    DatoC_L,W            ; la parte baja la mueve a W
            call    BIN_a_BCD            ; hace la conversión a BCD
            return

; ***********************************************************************************           
;    Subrutina Visualiza: se encarga de mostrar en el LCD los valores de tension e
;                         intensidad
; ***********************************************************************************

Visualiza    bsf        STATUS,RP0            ; banco 1 de registros
            movlw    b'00000110'            ; configura las lineas del puertoA como
            movwf    ADCON1                ;     digitales
            bcf        TRISA,0                ; RA0 y RA2 las configura como salidas
            bcf        TRISA,2
            bcf        STATUS,RP0            ; banco 0 de registros
            call    Retardo_20ms        ; retardo de 20 ms

            call    LCD_Linea1            ; cursor al principio de la línea 1
;            call    LCD_UnEspacioBlanco
            movf    BCD_Miles,W            ; comprueba si las decenas de Voltios son
            btfsc    STATUS,Z            ;     cero
            goto    NOMIL                ; es cero : va a NOMIL
            call    LCD_Nibble            ; no es cero: presenta las decenas en
                                        ;    pantalla
            goto    SIMIL                ; va a SIMIL
NOMIL        call    LCD_UnEspacioBlanco    ; en lugar de las decenas pone un espacio
SIMIL        movf    BCD_Centenas,W        ; mueve las unidades de voltio a W
            call    LCD_Nibble            ; envia el caracter a la pantalla
            movlw    '.'                    ; representa el punto decimal
            call    LCD_Caracter
            movf    BCD_Decenas,W        ; representa las décimas de voltio en la
            call    LCD_Nibble            ;     pantalla
       
            movf    BCD_Unidades,W        ; representa las centésimas de voltio en la
            call    LCD_Nibble            ;     pantalla
            movlw    ' '                    ; un espacio en blanco
            Call    LCD_Caracter
            movlw    'V'                    ; símbolo del voltio
            Call    LCD_Caracter
            Call    LCD_DosEspaciosBlancos        ; dos espacios en blanco para
                                                ;     separar la intensidad
            movf    MilesI,W            ; representa las unidades de amperios
            call    LCD_Nibble
            movlw    '.'                    ; punto decimal
            call    LCD_Caracter       
            movf    CentenasI,W            ; representa las décimas de amperio
            call    LCD_Nibble
            movf    DecenasI,W            ; representa las centésimas de amperio
            call    LCD_Nibble
            movf    UnidadesI,W            ; representa los miliamperios
            call    LCD_Nibble
            call    LCD_UnEspacioBlanco    ; un espacio en blanco
            movlw    'A'                    ; símbolo del amperio
            call    LCD_Caracter        ; un espacio en blanco
            call    LCD_UnEspacioBlanco

            Call    LCD_Linea2            ; Se situa al comienzo de la línea 2
            movlw    Mensaje0            ; envia al LDC un mensaje personalizable
            call    LCD_Mensaje            ;     en la tabla Mensaje0
            return   

; ***********************************************************************************

Mensajes    addwf    PCL,F
Mensaje0    DT"Made by Alberto!" ,0x00        ; mensaje personalizable que se
                                            ; muestra en al linea 2 del LCD

            INCLUDE    <LCD_4BIT.INC>
            INCLUDE <RETARDOS.INC>
            INCLUDE <BIN_BCD_2.INC>
            INCLUDE    <LCD_MENS.INC>
            INCLUDE <PRODUCTO16.INC>

            END

; ***********************************************************************************

SALUDOS A TODOS
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado OHMEGA

  • GOLD MEMBER
  • *
    • Mensajes: 832
    • ACTIVIDAD:
      0%
    • DT$ 937
Respuesta #16 on: mayo 21, 2009, 01:19:38 am
SALUDOS AL FORO

 :brindis:
VALLECAUCANO FANTASTICO TU INFORMACION PERO ME PUEDES AYUDAR EN ALGO PUEDES PUBLICAR EL CIRCUITO ELECTRONICO, ESTOY TRABAJANDO CON LEGUAJE PICBASIC PRO Y LO TRABAJO CON EL PROTEUS, ADEMAS EL LENGUAJE QUE PUBLICAS ES EL DEL ENSAMBLADOR
GRACIAS X TU APORTE TE ENVIO UN DT
TAN PRONTO LO TERMINO EN PICBASIC PRO buen_aporte LO PRUEBO Y LO PUBLICO
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



saikosbk

  • Visitante
Respuesta #17 on: mayo 23, 2009, 19:32:42 pm
Disculpe pero no se si tenga el circuito electronico dado que el diseño de archivo PDF es diferente...................... GRACIAS
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



elrusox

  • Visitante
Respuesta #18 on: mayo 28, 2009, 20:44:46 pm
Excelente la información. Una pregunta, sirve para voltajes negativos?
Salutes.
 abrazoo
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado Vallecaucano

  • Member
  • **
    • Mensajes: 49
    • ACTIVIDAD:
      0%
    • DT$ 70
Respuesta #19 on: julio 03, 2009, 16:19:02 pm
Hola Cordial Saludo...
Bueno, casi todo es posible... pienso que deben hacerse algunos cambios en las rutinas de manejo de control del Display... hay que chequear las caracteristicas del display que deseas usar, y comparar con las caracteristicas de las rutinas usadas para un display de 2X16.  Mucha suerte...   cuidadito:
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



KUENNE

  • Visitante
Respuesta #20 on: julio 03, 2009, 17:41:29 pm
Gracias, por tu respuesta, pero me podrias hacer el favor es que he estado buscando las subrutinas  <BIN_BCD_2.INC> y la <PRODUCTO16.INC>, pero no la encuentro, y desafortunadamente no tengo privilegios para descargar el paquete de archivos en zip, me podrias decir en que pagina las encuentro o sime las podrias facilitar, te suplico este favor enormemente.

Gracias
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



lewisr

  • Visitante
Respuesta #21 on: julio 04, 2009, 01:48:32 am
miren, en que emplee emplee las rutinas q encontre por aca

este voltimetro. funciona con voltaje en alterna con un rango de 0V - 255V

UNICA - "UNIVERSIDAD NACIONAL DE ICA"    - PERU
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



JUANPIC

  • Visitante
Respuesta #22 on: febrero 18, 2010, 15:25:54 pm
Hola a todo el foro
Recién me integro a la comunidad y fue por culpa de éste artículo.
Me parece excelente!!!
Tengo algunas ideas para la utilización de ésto,  adaptando algunas partes  del código, no lo voy a hacer sin la autorización de su creador, a quién felicito jodajoda
Lo primero será adaptarlo para el PIC 16f877 y display LCD
2x20 y luego agregar funciones de encendido, apagado y grabación de dato en EEPROM .
Lógicamente pondré rutinas de control y lectura de puertos.
La idea es convertir el medidor a un controlador con distintos menús , todos desplegables en el LCD.
Me gustaría hacerlo paso por paso y luego publicarlo

Tengo una duda con respecto a los include, ya que son rutinas separadas del programa y por lo que pude ver no están publicadas, o al menos eso creo.... :nosabenada:disculpa , Soy una persona mayor con ganas de aprender y hago ésto para olvidarme que los años se pasan sin gloria y si de pronto le sirve a alguien, sabré que el tiempo no pasó en vano. graciassss

Como te decía, me gustaría saber como puedo tener acceso a los include para ir haciendo algo , y con tu aprobación,
y la ayuda de los compañeros del foro convertir el medidor en un instrumento completo, generado dentro del foro.

Desde ya muchas gracias por compartir tus conocimientos

   Juanpic
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



guive3

  • Visitante
Respuesta #23 on: octubre 10, 2010, 19:49:15 pm
como descargo el archivo pdf
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Atron

  • Visitante
Respuesta #24 on: noviembre 25, 2010, 13:02:34 pm
Muy buen trabajo!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado wilrey

  • Miembro PREMIUM
  • *
    • Mensajes: 915
    • ACTIVIDAD:
      0%
    • DT$ 537
Respuesta #25 on: diciembre 04, 2010, 15:02:44 pm
amigo elrusox.
Para voltajes negativos en este circuito, lo que puedes hacer es usar un amplificador operacional
para invertir la polaridad del voltaje " NO LE PUEDES METER VOLTAJE NEGATIVO DIRECTO A UN PIC" cuidadito:
modificas el programa y le introduces este voltaje por otra entrada analoga del pic; conmutandola con una llave
o pulsador para que el micro lea esta con el signo - antepuesto por software..

informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Alaris

  • Visitante
Respuesta #26 on: diciembre 05, 2010, 15:33:53 pm
Estupendo trabajo , solo que me falta los famosos includes para poderlo programar , espero poderlos tener si algun día tengo acceso a las descargas. Gracias a todos por este hilo.
 
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Desconectado wilrey

  • Miembro PREMIUM
  • *
    • Mensajes: 915
    • ACTIVIDAD:
      0%
    • DT$ 537
Respuesta #27 on: diciembre 05, 2010, 20:22:13 pm
De acuredo, el libro microcontroladores pic 16f84, es bastante bueno :DTFM2: :DTFM2:
Y si te interesa un lenguaje de alto nivel.Compilador c ccs y simulador proteus para microcontroladores pic , tambien es otra buena opcion. :DTFM: :DTFM:
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



filhotao

  • Visitante
Respuesta #28 on: diciembre 16, 2010, 15:45:33 pm
Obrigado, pela disposição dos arquivos.
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



marquinho-a

  • Visitante
Respuesta #29 on: enero 08, 2011, 12:02:59 pm
Muito bom, parabéns!
informative
0
agree
0
like
0
dislike
0
Sin reactiones
Sin reactiones
Sin reactiones
Sin reactiones



Tags: (Palabras Clave)
 

VOLTIMETRO CON PIC

Iniciado por Gerson Strauss

voltimetro amperimetro LCD

Iniciado por zound

voltimetro-amperimetro PIC16F88

Iniciado por electrodroid

Sponsor