Autor Tema: display 7 segmentos  (Leído 7934 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
display 7 segmentos
« en: 18 de Mayo de 2005, 11:55:00 »
Hola, estoy pensando en un proyecto con cuatro displays de 7 segmentos, y me pregunto cual es el tiempo adecuado para pasar de actualizar un display, al siguiente.
Un tiempo que me viene bien, es de unos 4msg, pero no se si será muy grande, y se verán parpadear los displays.

Saludos, y gracias.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado roc364

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 108
RE: display 7 segmentos
« Respuesta #1 en: 18 de Mayo de 2005, 13:06:00 »
Creo que el ojo humano comienza a juntar las imagenes cuando estas se suceden mas rapido que 20 hertz (imagenes por segundo), eso te da que el mismo display debe prenderse por lo menos cada 1/20 seg o sea 0.05 segs (50 mseg). Dicho de otra manera, en 50 mseg hay que prender y apagar los cuatro digitos. Entonces tenemos 50 mseg / 4 digitos = 12.5 mseg por cada digito!
Seria mas o menos asi:  Prender un digito, esperar 12 mseg, apagar y prender el siguiente, esperar 12 mseg, y asi hasta el cuarto y volver a empezar.
Asi tendrias un refresco de 20 Hertz en los displays.!!!Sonrisa
O sea que con 4 mseg estas mas que bien!
Hay solo 10 tipos de personas, los que entienden el codigo binario, y los que no.

Viva La Patagonia Argentina!!

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: display 7 segmentos
« Respuesta #2 en: 10 de Noviembre de 2006, 20:30:26 »
amigos tengo una inquietud sobre el multiplexado de display estoy probando el contador hasta 10000  al momento de visualizacion los numeros o se corren demasiado o todos se ven n los displays he intentado con multiplis ms y nada que se ven de manera perfecta.
en conteo se debe hacer a 1seg lo estoy simulando en proteus.

como dice roc364 le coloco 12.5 ms y nada se ven en .......... aprisa pardadean etc..

este es la rutina de visualizacion y multipexaje

tal ves este mal la rutina?

VISU    BCF   STATUS,0
          CLRF  PORTC       
        MOVF UNIDADES,0
     CALL TABLA
   MOVWF PORTB
BSF  PORTC,0
   CALL RETARDO

          BCF    PORTC,0
        MOVF DECENAS,0
     CALL TABLA
   MOVWF PORTB
    RLf   PORTC,1
   CALL RETARDO
               MOVF CENTENAS,0
     CALL TABLA
   MOVWF PORTB
   RLF  PORTC,1
   call  RETARDO
   MOVF UNIDAD_MIL,0
     CALL TABLA
   MOVWF PORTB
   ;Rlf PORTC,1
   CALL RETARDO
   CLRF  PORTC
                 



este es el programa
RRRR      INCF  UNIDADES,1
     MOVLW .10
     XORWF  UNIDADES,w
     BTFSS   STATUS,2
     GOTO   VISU
     CLRF UNIDADES
    INCF   DECENAS,1
     MOVLW  .10
     XORWF  DECENAS,0
     BTFSS   STATUS,2
     GOTO   VISU
     CLRF  DECENAS
        INCF   CENTENAS,1
     MOVLW  .10
     XORWF  CENTENAS,0
     BTFSS   STATUS,2
     GOTO   VISU
        CLRF CENTENAS
        INCF   UNIDAD_MIL,1
     MOVLW  .10
     XORWF  UNIDAD_MIL,0
     BTFSS   STATUS,2
     GOTO   VISU
         GOTO  INICIO
                end

saludos y gracias
Código: ASM
  1.  
« Última modificación: 10 de Noviembre de 2006, 20:41:05 por microcom »

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: display 7 segmentos
« Respuesta #3 en: 10 de Noviembre de 2006, 20:45:55 »
adjunto el circuito

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: display 7 segmentos
« Respuesta #4 en: 10 de Noviembre de 2006, 20:54:36 »
En teoria con un periodo de hasta 20 mseg el hojo humano no detecta el cambibio, el tiempo que dejas encendido cada display va a depender de la cantidad que tengas, por ejemplo si tienes 10 display,  podras detenerte en cada uno hasta 2 mseg, ya que sino ccada uno estara mas de 20 mseg apagado.

Yo personalemte simpre uso 2mseg mas o menos por cada display, y anda muy bien, simepre y cuando  sean menos de 10 jejeje

Recuerda que la cantidad de corriente aumenta con la cantidad de display multiplexados, si tienes 4 display debes amimentar cada led con 4 veces mas la corriente normal, no se va a quemar ya que solo esta encendido por pequeños periodos.


Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: display 7 segmentos
« Respuesta #5 en: 10 de Noviembre de 2006, 21:01:24 »
esteca 555 gracias por contestar le pongo 3ms ,2ms  y nada no se me ven como dices
será el problema de encender y apagar los displays?
gracias y saludos y para un segundo como se aria.

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: display 7 segmentos
« Respuesta #6 en: 10 de Noviembre de 2006, 21:46:25 »
no entiendo bien cuale es el problema.

Si se ve en todos los display el mismo valor o algo por el estilo el error esta en el encendido del comun de cada display.

Por lo que aprecio en el circuito te hago los siguientes comentarios:

Tenes display anodo comun, 
el acionamiento justamente del anodo comun deverias hacerlo con un "1" desde el pic
pero en el puerto b dodne estan conectados los anodos para encender cada led deves sacar un "0" desde el pic

Esto te lo comento ya que una vez me paso algo similar y teia invertido el estado de unas de las señales
Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: display 7 segmentos
« Respuesta #7 en: 10 de Noviembre de 2006, 21:52:07 »
AAAAAA, una cosa, donde te anda mal en el protus o montaste el circuito

Si te parece subite el asm y el hex asi pruebo simularlo

Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: display 7 segmentos
« Respuesta #8 en: 11 de Noviembre de 2006, 02:40:23 »
aca te pongo parte de tu codigo donde añado simplemente el retardo q proponia esteca555 de 2milisegundos, y tambienel esquemtico aunque no he cambiado nada, y funciona bien a ver si lo simulas y ves q parte de tu codigo no esta corecto.
 
Código: ASM
  1. ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  2. ;***************************************************************************************************
  3. ;
  4. ;                                                                               Emcabezado del PIC
  5. ;
  6.                 LIST            P=16F873
  7.                 #INCLUDE        "P16F873.INC"
  8.                 __CONFIG _CP_ALL & _DEBUG_OFF & _PWRTE_ON & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _XT_OSC
  9.                 ERRORLEVEL -302,-306
  10.                 RADIX           HEX
  11. ;
  12. ;
  13. ;
  14. ;***************************************************************************************************
  15. ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  16. ;
  17.                 CBLOCK  20
  18. TEMP
  19.                 ENDC
  20. ;
  21. ;***************************************************************************************************
  22. ;***************************************************************************************************
  23. ;
  24.                 ORG     0         ; El programa comienza en la dirección 0.
  25.                 GOTO    INICIO
  26.                 ORG     5
  27. ;
  28. ;***************************************************************************************************
  29. ;***************************************************************************************************
  30. ;
  31. INICIO  ;BANCO 1
  32.                 bsf     STATUS,RP0      ; Acceso al Banco 1.
  33.                 movlw   0X06
  34.                 movwf   ADCON1
  35.                 CLRF    TRISA      ;PUERTO A como salida
  36.                 CLRF    TRISB
  37.                 CLRF    TRISC
  38.                 BCF     STATUS,RP0
  39.                 CLRF    PORTC
  40. ;***************************************************************************************************
  41. VISU
  42.                 MOVLW   0X00;8
  43.                 MOVWF   PORTB
  44.                 MOVLW   0X01
  45.                 MOVWF   PORTC
  46.                 CALL    RETARDO
  47.  
  48.                 CLRF    PORTC
  49.                 MOVLW   0X79;1
  50.                 MOVWF   PORTB
  51.                 MOVLW   0X02
  52.                 MOVWF   PORTC
  53.                 CALL    RETARDO
  54.  
  55.                 CLRF    PORTC
  56.                 MOVLW   0X40;0
  57.                 MOVWF   PORTB
  58.                 MOVLW   0X04
  59.                 MOVWF   PORTC
  60.                 CALL    RETARDO
  61.  
  62.                 CLRF    PORTC
  63.                 MOVLW   0X30;3
  64.                 MOVWF   PORTB
  65.                 MOVLW   0X08
  66.                 MOVWF   PORTC
  67.                 CALL    RETARDO
  68.                 CLRF    PORTC
  69.                 GOTO    VISU   
  70. ;***************************************************************************************************
  71. ;***************************************************************************************************
  72. RETARDO
  73.                 CLRF    TEMP    ;2 MILISEGUNDOS
  74.                 NOP
  75.                 DECFSZ  TEMP,F
  76.                 GOTO    $-2
  77.                 NOP
  78.                 DECFSZ  TEMP,F
  79.                 GOTO    $-2
  80.                 RETURN
  81. ;***************************************************************************************************
  82. ;***************************************************************************************************
  83. ;***************************************************************************************************
  84. ;***************************************************************************************************
  85.                 END            ; Fin del programa.


a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: display 7 segmentos
« Respuesta #9 en: 11 de Noviembre de 2006, 09:32:41 »
Tambien lo simule y anda bien
jaja que al pedo que estoy un sabado por la mañana
Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: display 7 segmentos
« Respuesta #10 en: 11 de Noviembre de 2006, 12:09:51 »
Hola amigos, en este post yo dejé un reloj multiplexado que hice algún tiempo.

yo tomé un tiempo de 2.7mS, la razón: me basé en los 60Hz que usan los radios despertadores (1/60hz)/6 displays ~ 2.7mS (alguién me dijo una vez eso de lo la frec. de referencia de los radios despertadores así que me fuí por ahí :))

Salu2
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: display 7 segmentos
« Respuesta #11 en: 20 de Noviembre de 2006, 17:31:32 »
esteca55 ;micro_cadaver; PalitroqueZ
amigos del foro discilcupas por la tardanza en contestar y miren la hora en que lo hago :-).


boy a seguir la rutina de microcadaver y despues les cuento.

gracias y saludos

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: display 7 segmentos
« Respuesta #12 en: 20 de Noviembre de 2006, 23:36:41 »
 :-)  como dice el dicho mas vale tarde q nunca, exitos!  :-/ siempre hay q terminar lo q comenzamos
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: display 7 segmentos
« Respuesta #13 en: 28 de Noviembre de 2006, 18:16:08 »
;
Código: ASM
  1. este es un contador de 0 a 10000.  
  2. ;prueva este.
  3.  list    p=16f873A
  4.          include"p16f873A.INC"
  5.  
  6.                
  7.  
  8. PORTA           EQU     05
  9. PORTB           EQU     06
  10. PORTC           EQU     07
  11. STATUS          EQU     03
  12. MEMORIA         EQU     20
  13. REG1            EQU     21
  14. REG2            EQU     22
  15. REG3            EQU     23
  16. VALOR1          EQU     24
  17. VALOR2          EQU     25
  18. UNIDAD_MIL      EQU     26
  19. DECENAS         EQU     27
  20. UNIDADES        EQU     28
  21. CENTENAS      EQU     31
  22. ADCON1         EQU    9F
  23. PDel0     EQU        29
  24.  PDel1      EQU        30
  25. PDel2      EQU        32
  26. TEMP            EQU       33
  27.   ORG  00
  28.   GOTO  INICIO
  29.  
  30.  
  31.  
  32. RETARDO1  
  33. ; Code generated by PDEL  ver 1.0  on 22/11/2006 at 21:01:34
  34. ; Description: Waits 250000 cycles
  35. ;-------------------------------------------------------------
  36. PDelay  movlw     .197      ; 1 set number of repetitions (B)
  37.         movwf     PDel0     ; 1 |
  38. PLoop1  movlw     .253      ; 1 set number of repetitions (A)
  39.         movwf     PDel1     ; 1 |
  40. PLoop2  clrwdt              ; 1 clear watchdog
  41.         clrwdt              ; 1 cycle delay
  42.         decfsz    PDel1, 1  ; 1 + (1) is the time over? (A)
  43.         goto      PLoop2    ; 2 no, loop
  44.         decfsz    PDel0,  1 ; 1 + (1) is the time over? (B)
  45.         goto      PLoop1    ; 2 no, loop
  46. PDelL1  goto PDelL2         ; 2 cycles delay
  47. PDelL2  
  48.         return              ; 2+2 Done
  49. RETARDO
  50.                         CLRF    TEMP    ;2 MILISEGUNDOS
  51.                         NOP
  52.                         DECFSZ  TEMP,F
  53.                         GOTO    $-2
  54.                         NOP
  55.                         DECFSZ  TEMP,F
  56.                         GOTO    $-2
  57.                         CLRF    TEMP    ;2 MILISEGUNDOS
  58.                         NOP
  59.                         RETURN
  60. TABLA  
  61.         ADDWF   PCL,1
  62.         RETLW   B'11000000'
  63.         RETLW   B'11111001'
  64.         RETLW   B'10100100'
  65.         RETLW   B'10110000'
  66.         RETLW   B'10011001'
  67.         RETLW   B'10010010'
  68.         RETLW   B'10000010'
  69.         RETLW   B'11111000'
  70.         RETLW   B'10000000'
  71.         RETLW   B'10011000'
  72.         RETLW   B'10111111'
  73.  
  74.  
  75.  
  76.        
  77.  
  78.  
  79. INICIO  BSF  STATUS,5
  80.         BCF     STATUS,6
  81.         CLRF  PORTC
  82.         CLRF  PORTB
  83.         MOVLW  07
  84.         MOVWF ADCON1
  85.         BCF  STATUS,5
  86.         CLRF  PORTB
  87.         CLRF  UNIDADES
  88.         CLRF  DECENAS
  89.         CLRF  CENTENAS
  90.         CLRF    UNIDAD_MIL
  91.        
  92.                
  93. VISU    
  94.                         MOVF UNIDADES,0
  95.                         CALL   TABLA
  96.                         MOVWF   PORTB
  97.                         MOVLW   0X01
  98.                         MOVWF   PORTC
  99.                         CALL    RETARDO1
  100.          
  101.                         CLRF    PORTC
  102.                         MOVF    DECENAS,0
  103.                         CALL   TABLA
  104.                         MOVWF   PORTB
  105.                         MOVLW   0X02
  106.                         MOVWF   PORTC
  107.                         CALL    RETARDO
  108.  
  109.                         CLRF    PORTC
  110.                         MOVF    CENTENAS,0
  111.                         CALL   TABLA
  112.                         MOVWF   PORTB
  113.                         MOVLW   04
  114.                         MOVWF   PORTC
  115.                         CALL    RETARDO
  116.          
  117.                         CLRF    PORTC
  118.                         MOVF    CENTENAS,0
  119.                         CALL   TABLA
  120.                         MOVWF   PORTB
  121.                         MOVLW   0X08                   
  122.                         MOVWF   PORTC
  123.                         CALL    RETARDO
  124.                         CLRF    PORTC
  125.                         CLRF    PORTB
  126. RRRR    INCF  UNIDADES,1
  127.                 MOVLW .10
  128.                 XORWF  UNIDADES,w
  129.                 BTFSS   STATUS,2
  130.         GOTO   VISU
  131.         CLRF UNIDADES
  132.         INCF   DECENAS,1
  133.         MOVLW  .10
  134.         XORWF  DECENAS,0
  135.         BTFSS   STATUS,2
  136.         GOTO   VISU
  137.         CLRF  DECENAS
  138.         INCF   CENTENAS,1
  139.         MOVLW  .10
  140.         XORWF  CENTENAS,0
  141.         BTFSS   STATUS,2
  142.         GOTO   VISU
  143.         CLRF CENTENAS
  144.         INCF   UNIDAD_MIL,1
  145.         MOVLW  .10
  146.         XORWF  UNIDAD_MIL,0
  147.         BTFSS   STATUS,2
  148.         GOTO   VISU
  149.          GOTO  INICIO
  150.                 end


caballeros he intentado hacer que funcione el contador y no me esta contando como quiero
lo ideal es que el conteo se haga de 1 seg y he intentado de otra manera y nada.
como la secuencia que me dio micro_cad el contador apenas se ven destellos en las unidades y los numeros se ven iguales en todos los display.

lo estoy simulando en proteus 6.7

saludos y gracias por la atencion
Código: ASM
  1.  
.




Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: display 7 segmentos
« Respuesta #14 en: 28 de Noviembre de 2006, 18:44:28 »
Yo he usado el integrado CD4511 para los display de 7 segmentos ya que tienen latch que mantienen los valores y es un decodificador de BCD a 7 segmentos.
Ahora si solo quieren usar el PIC pueden usar los timers.

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina