Autor Tema: PIC18F4550 y 4display a 7 segmentos- Ensamblador  (Leído 7563 veces)

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

Desconectado jefreyu12

  • PIC10
  • *
  • Mensajes: 11
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #15 en: 07 de Mayo de 2019, 17:11:42 »
En base a lo que me comentaron ya realice las correcciones .
un detalle que me llamo la atencion es que estoy tuve que invertir el valor binario cuando deseo prender un digito, mas alla de eso fue el unico detalle que me llamo la atencion
Adjunto mi codigo final de como lo deje y una liga hacia como tengo ya el diseño del circuito:
https://1drv.ms/u/s!AqGT907LlTsahosgLe7ynqaJadZ9iQ
Código: ASM
  1. ;PROGRAMA HOLA MUNDO
  2. ;**************************
  3. list P = 18F4550
  4. INCLUDE <P18F4550.INC>
  5. ;****************************************
  6. ;Configuracion de FUSES
  7. CONFIG FOSC = HS
  8. CONFIG CPUDIV = OSC1_PLL2
  9. CONFIG PWRT = ON
  10. CONFIG BOR = OFF
  11. CONFIG WDT = OFF
  12. CONFIG LVP = OFF
  13. CONFIG PBADEN = OFF
  14. CONFIG MCLRE = ON
  15. CONFIG DEBUG = OFF
  16. CONFIG XINST = OFF
  17.  
  18. ;Otra opcion
  19. ;CONFIG FOSC = HS
  20. ;CONFIG CPUDIV = OSC1_PLL2
  21. ;CONFIG BOR = OFF
  22. ;CONFIG PWRT = ON
  23. ;CONFIG WDT = OFF
  24. ;CONFIG MCLRE = OFF
  25. ;CONFIG PBADEN = OFF
  26. ;CONFIG LVP = OFF
  27.  
  28. ;*****************************************
  29. ; VARIABLES
  30. CBLOCK
  31. T1
  32. T2
  33. T3
  34. LETRAS
  35. DIGITOS
  36. endc
  37. ;****************************************
  38. ;Comienzo del programa
  39. ORG 0
  40. ;BSF PLL, PLLDIV2,1
  41. ;BSF PLL, PLLDIV1,0
  42. ;BSF PLL, PLLDIV0,0
  43.  
  44. clrf TRISB
  45. clrf TRISD
  46. clrf PORTB
  47. CLRF PORTD
  48.  
  49. LETRAS.1 equ b'11001000' ; H b'00110111'
  50. LETRAS.2 equ b'10000001' ; O b'01111110'
  51. LETRAS.3 equ b'11110001' ; L b'00001110'
  52. LETRAS.4 equ b'10001000' ; A b'01110111'
  53. LETRAS.5 equ b'11101010' ; M b'00010101'
  54. LETRAS.6 equ b'11000001' ; U b'00111110'
  55. LETRAS.7 equ b'10001001' ; N b'01110110'
  56. LETRAS.8 equ b'11000010' ; D b'00111101'
  57. LETRAS.9 equ b'10000001' ; O b'01111110'
  58.  
  59. DIGITOS.1 equ b'11111110' ;prende digito 1 b'11111110' b'00000001'
  60. DIGITOS.2 equ b'11111101' ;prende digito 2 b'11111101' b'00000010'
  61. DIGITOS.3 equ b'11111011' ;prende digito 3 b'11111011' b'00000100'
  62. DIGITOS.4 equ b'11110111' ;prende digito 4 b'11110111' b'00001000'
  63. inicio:
  64.  
  65.         movlw DIGITOS.1;prende digito 1
  66.         movwf PORTD
  67.         movlw LETRAS.1;H
  68.         movwf LATB
  69.         call retardo
  70.         bsf PORTB,1
  71.         movlw DIGITOS.2; prende digito 2
  72.         movwf PORTD
  73.         movlw LETRAS.2;O
  74.         movwf PORTB
  75.         call retardo
  76.         movlw DIGITOS.3; prende digito 3
  77.         movwf PORTD
  78.         movlw LETRAS.3;L
  79.         movwf PORTB
  80.         call retardo
  81.         movlw DIGITOS.4; prende digito 4
  82.         movwf PORTD
  83.         movlw LETRAS.4;A
  84.         movwf PORTB
  85.         call retardo
  86.         movlw DIGITOS.1; prende digito 1
  87.         movwf PORTD
  88.         movlw LETRAS.5;M
  89.         movwf PORTB
  90.         call retardo
  91.         movlw DIGITOS.2; prende digito 2
  92.         movwf PORTD
  93.         movlw LETRAS.6;U
  94.         movwf PORTB
  95.         call retardo
  96.         movlw DIGITOS.3; prende digito 3
  97.         movwf PORTD
  98.         movlw LETRAS.7;N
  99.         movwf PORTB
  100.         call retardo
  101.         movlw DIGITOS.4; prende digito 4
  102.         movwf PORTD
  103.         movlw LETRAS.8;D
  104.         movwf PORTB
  105.         call retardo
  106.         movlw DIGITOS.1; prende digito 1
  107.         movwf PORTD
  108.         movlw LETRAS.9;O
  109.         movwf PORTB
  110.         call retardo
  111.        
  112.         goto inicio
  113.        
  114. retardo: ; retardo de un segundo Formula Retardo = 10 x (100 x (1mS)) = 1000mS = 1 segundo
  115.    movlw d'10'
  116.    movwf T3
  117.    movlw d'100'
  118.    movwf T2
  119.    movlw d'250'
  120.    movwf T1
  121.    nop
  122.    decfsz T1,F
  123.    goto $-.2
  124.    decfsz T2,F
  125.    goto $-.6
  126.    decfsz T3,F
  127.    goto $-.10
  128.    return
  129. end

 Invertir los bits en los 7 segmentos para que te funcione responde a que estás invirtiendo el común.

  Mira, tienes que conocer si el display que estás usando lleva a común los ánodos o los cátodos.

  Si es un display con cátodos a común, para encender un segmento tienes que poner a 1 ese segmento y a cero el cátodo.  Pero ojo, como los comunes no se pueden poner directos a un puerto (por que lo fries), tienes que poner un transistor por medio que puede ser npn normal o mosfet.  Entonces, si el display es con cátodos a común, y tienes que poner ese común al colector del transistor. El emisor del transistor a masa , entonces para activar ese digito tienes que poner un 1 en la base del transistor, luego un 1 en cada segmento a encender.

Si el display tienes los ánodos a común, entonces el transistor lo pones con el colector a vdd, el emisor al común (ánodos) y la base al control de ese dígito. Entonces para activar un dígito en este caso, pones un 1 en la base (esto es igual que antes) sin embargo en los segmentos tienes que poner un cero para encenderlos.

  Espero no haberte liado más, pero es que esto es fundamental y elemental que debes conocer antes de plantear el circuito y el control.

 




Si claro entiendo en gran parte. mi display de 4 digitos 7 segmentos es de anodo comun y se que debo enviar un 0 para que los segmentos se enciendan y 1 para los que no quiero que se enciendan.
Mi detalle estuvo con prender los digitos si es que notaron la imagen del nuevo circuito que puse
estoy usando transistores 2n2222 NPN la base lo conecto a la salida del pin del pic, el colector lo dirijo hacia la entrada para encender digito en el display y los emisores los tengo conectados a tierra.
No se si este correcto en respecto a eso

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 562
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #16 en: 07 de Mayo de 2019, 21:52:51 »
Es correcto, cómo tienes conectados los transistores. Cabe aclarar, que la base debe polarizarse a través de una resistencia, calculada en función de la corriente de colector.
Para conmutación deben estar configurados en emisor común. Es decir, si es NPN, emisor a GND. Si se trata de PNP, emisor a VDD.
« Última modificación: 07 de Mayo de 2019, 21:54:54 por Robert76 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #17 en: 07 de Mayo de 2019, 22:05:49 »
Lo que no hace falta son las resistencias R13/14/15 y 16
Y que deberías poder quitar.

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #18 en: 08 de Mayo de 2019, 15:41:34 »
En base a lo que me comentaron ya realice las correcciones .
un detalle que me llamo la atencion es que estoy tuve que invertir el valor binario cuando deseo prender un digito, mas alla de eso fue el unico detalle que me llamo la atencion
Adjunto mi codigo final de como lo deje y una liga hacia como tengo ya el diseño del circuito:
https://1drv.ms/u/s!AqGT907LlTsahosgLe7ynqaJadZ9iQ
Código: ASM
  1. ;PROGRAMA HOLA MUNDO
  2. ;**************************
  3. list P = 18F4550
  4. INCLUDE <P18F4550.INC>
  5. ;****************************************
  6. ;Configuracion de FUSES
  7. CONFIG FOSC = HS
  8. CONFIG CPUDIV = OSC1_PLL2
  9. CONFIG PWRT = ON
  10. CONFIG BOR = OFF
  11. CONFIG WDT = OFF
  12. CONFIG LVP = OFF
  13. CONFIG PBADEN = OFF
  14. CONFIG MCLRE = ON
  15. CONFIG DEBUG = OFF
  16. CONFIG XINST = OFF
  17.  
  18. ;Otra opcion
  19. ;CONFIG FOSC = HS
  20. ;CONFIG CPUDIV = OSC1_PLL2
  21. ;CONFIG BOR = OFF
  22. ;CONFIG PWRT = ON
  23. ;CONFIG WDT = OFF
  24. ;CONFIG MCLRE = OFF
  25. ;CONFIG PBADEN = OFF
  26. ;CONFIG LVP = OFF
  27.  
  28. ;*****************************************
  29. ; VARIABLES
  30. CBLOCK
  31. T1
  32. T2
  33. T3
  34. LETRAS
  35. DIGITOS
  36. endc
  37. ;****************************************
  38. ;Comienzo del programa
  39. ORG 0
  40. ;BSF PLL, PLLDIV2,1
  41. ;BSF PLL, PLLDIV1,0
  42. ;BSF PLL, PLLDIV0,0
  43.  
  44. clrf TRISB
  45. clrf TRISD
  46. clrf PORTB
  47. CLRF PORTD
  48.  
  49. LETRAS.1 equ b'11001000' ; H b'00110111'
  50. LETRAS.2 equ b'10000001' ; O b'01111110'
  51. LETRAS.3 equ b'11110001' ; L b'00001110'
  52. LETRAS.4 equ b'10001000' ; A b'01110111'
  53. LETRAS.5 equ b'11101010' ; M b'00010101'
  54. LETRAS.6 equ b'11000001' ; U b'00111110'
  55. LETRAS.7 equ b'10001001' ; N b'01110110'
  56. LETRAS.8 equ b'11000010' ; D b'00111101'
  57. LETRAS.9 equ b'10000001' ; O b'01111110'
  58.  
  59. DIGITOS.1 equ b'11111110' ;prende digito 1 b'11111110' b'00000001'
  60. DIGITOS.2 equ b'11111101' ;prende digito 2 b'11111101' b'00000010'
  61. DIGITOS.3 equ b'11111011' ;prende digito 3 b'11111011' b'00000100'
  62. DIGITOS.4 equ b'11110111' ;prende digito 4 b'11110111' b'00001000'
  63. inicio:
  64.  
  65.         movlw DIGITOS.1;prende digito 1
  66.         movwf PORTD
  67.         movlw LETRAS.1;H
  68.         movwf LATB
  69.         call retardo
  70.         bsf PORTB,1
  71.         movlw DIGITOS.2; prende digito 2
  72.         movwf PORTD
  73.         movlw LETRAS.2;O
  74.         movwf PORTB
  75.         call retardo
  76.         movlw DIGITOS.3; prende digito 3
  77.         movwf PORTD
  78.         movlw LETRAS.3;L
  79.         movwf PORTB
  80.         call retardo
  81.         movlw DIGITOS.4; prende digito 4
  82.         movwf PORTD
  83.         movlw LETRAS.4;A
  84.         movwf PORTB
  85.         call retardo
  86.         movlw DIGITOS.1; prende digito 1
  87.         movwf PORTD
  88.         movlw LETRAS.5;M
  89.         movwf PORTB
  90.         call retardo
  91.         movlw DIGITOS.2; prende digito 2
  92.         movwf PORTD
  93.         movlw LETRAS.6;U
  94.         movwf PORTB
  95.         call retardo
  96.         movlw DIGITOS.3; prende digito 3
  97.         movwf PORTD
  98.         movlw LETRAS.7;N
  99.         movwf PORTB
  100.         call retardo
  101.         movlw DIGITOS.4; prende digito 4
  102.         movwf PORTD
  103.         movlw LETRAS.8;D
  104.         movwf PORTB
  105.         call retardo
  106.         movlw DIGITOS.1; prende digito 1
  107.         movwf PORTD
  108.         movlw LETRAS.9;O
  109.         movwf PORTB
  110.         call retardo
  111.        
  112.         goto inicio
  113.        
  114. retardo: ; retardo de un segundo Formula Retardo = 10 x (100 x (1mS)) = 1000mS = 1 segundo
  115.    movlw d'10'
  116.    movwf T3
  117.    movlw d'100'
  118.    movwf T2
  119.    movlw d'250'
  120.    movwf T1
  121.    nop
  122.    decfsz T1,F
  123.    goto $-.2
  124.    decfsz T2,F
  125.    goto $-.6
  126.    decfsz T3,F
  127.    goto $-.10
  128.    return
  129. end

 Invertir los bits en los 7 segmentos para que te funcione responde a que estás invirtiendo el común.

  Mira, tienes que conocer si el display que estás usando lleva a común los ánodos o los cátodos.

  Si es un display con cátodos a común, para encender un segmento tienes que poner a 1 ese segmento y a cero el cátodo.  Pero ojo, como los comunes no se pueden poner directos a un puerto (por que lo fries), tienes que poner un transistor por medio que puede ser npn normal o mosfet.  Entonces, si el display es con cátodos a común, y tienes que poner ese común al colector del transistor. El emisor del transistor a masa , entonces para activar ese digito tienes que poner un 1 en la base del transistor, luego un 1 en cada segmento a encender.

Si el display tienes los ánodos a común, entonces el transistor lo pones con el colector a vdd, el emisor al común (ánodos) y la base al control de ese dígito. Entonces para activar un dígito en este caso, pones un 1 en la base (esto es igual que antes) sin embargo en los segmentos tienes que poner un cero para encenderlos.

  Espero no haberte liado más, pero es que esto es fundamental y elemental que debes conocer antes de plantear el circuito y el control.

 




Si claro entiendo en gran parte. mi display de 4 digitos 7 segmentos es de anodo comun y se que debo enviar un 0 para que los segmentos se enciendan y 1 para los que no quiero que se enciendan.
Mi detalle estuvo con prender los digitos si es que notaron la imagen del nuevo circuito que puse
estoy usando transistores 2n2222 NPN la base lo conecto a la salida del pin del pic, el colector lo dirijo hacia la entrada para encender digito en el display y los emisores los tengo conectados a tierra.
No se si este correcto en respecto a eso

No. Si es anodo común, los emisores los tienes que poner a vdd y los colectores a cada común de cada dígito.  El transistor tiene que ser PNP por ejemplo el Bc557 te vale.

  Luego como bien ha dicho el compañero usa una resistencia de base. 1K debería ser suficiente.  Pero puedes mirar el datasheet del transistor y calcular la corriente máxima de base para cuando el transistor esté en saturación con los 7 segmentos prendidos .

  Saludos.

Desconectado jefreyu12

  • PIC10
  • *
  • Mensajes: 11
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #19 en: 08 de Mayo de 2019, 17:18:52 »
En base a lo que me comentaron ya realice las correcciones .
un detalle que me llamo la atencion es que estoy tuve que invertir el valor binario cuando deseo prender un digito, mas alla de eso fue el unico detalle que me llamo la atencion
Adjunto mi codigo final de como lo deje y una liga hacia como tengo ya el diseño del circuito:
https://1drv.ms/u/s!AqGT907LlTsahosgLe7ynqaJadZ9iQ
Código: ASM
  1. ;PROGRAMA HOLA MUNDO
  2. ;**************************
  3. list P = 18F4550
  4. INCLUDE <P18F4550.INC>
  5. ;****************************************
  6. ;Configuracion de FUSES
  7. CONFIG FOSC = HS
  8. CONFIG CPUDIV = OSC1_PLL2
  9. CONFIG PWRT = ON
  10. CONFIG BOR = OFF
  11. CONFIG WDT = OFF
  12. CONFIG LVP = OFF
  13. CONFIG PBADEN = OFF
  14. CONFIG MCLRE = ON
  15. CONFIG DEBUG = OFF
  16. CONFIG XINST = OFF
  17.  
  18. ;Otra opcion
  19. ;CONFIG FOSC = HS
  20. ;CONFIG CPUDIV = OSC1_PLL2
  21. ;CONFIG BOR = OFF
  22. ;CONFIG PWRT = ON
  23. ;CONFIG WDT = OFF
  24. ;CONFIG MCLRE = OFF
  25. ;CONFIG PBADEN = OFF
  26. ;CONFIG LVP = OFF
  27.  
  28. ;*****************************************
  29. ; VARIABLES
  30. CBLOCK
  31. T1
  32. T2
  33. T3
  34. LETRAS
  35. DIGITOS
  36. endc
  37. ;****************************************
  38. ;Comienzo del programa
  39. ORG 0
  40. ;BSF PLL, PLLDIV2,1
  41. ;BSF PLL, PLLDIV1,0
  42. ;BSF PLL, PLLDIV0,0
  43.  
  44. clrf TRISB
  45. clrf TRISD
  46. clrf PORTB
  47. CLRF PORTD
  48.  
  49. LETRAS.1 equ b'11001000' ; H b'00110111'
  50. LETRAS.2 equ b'10000001' ; O b'01111110'
  51. LETRAS.3 equ b'11110001' ; L b'00001110'
  52. LETRAS.4 equ b'10001000' ; A b'01110111'
  53. LETRAS.5 equ b'11101010' ; M b'00010101'
  54. LETRAS.6 equ b'11000001' ; U b'00111110'
  55. LETRAS.7 equ b'10001001' ; N b'01110110'
  56. LETRAS.8 equ b'11000010' ; D b'00111101'
  57. LETRAS.9 equ b'10000001' ; O b'01111110'
  58.  
  59. DIGITOS.1 equ b'11111110' ;prende digito 1 b'11111110' b'00000001'
  60. DIGITOS.2 equ b'11111101' ;prende digito 2 b'11111101' b'00000010'
  61. DIGITOS.3 equ b'11111011' ;prende digito 3 b'11111011' b'00000100'
  62. DIGITOS.4 equ b'11110111' ;prende digito 4 b'11110111' b'00001000'
  63. inicio:
  64.  
  65.         movlw DIGITOS.1;prende digito 1
  66.         movwf PORTD
  67.         movlw LETRAS.1;H
  68.         movwf LATB
  69.         call retardo
  70.         bsf PORTB,1
  71.         movlw DIGITOS.2; prende digito 2
  72.         movwf PORTD
  73.         movlw LETRAS.2;O
  74.         movwf PORTB
  75.         call retardo
  76.         movlw DIGITOS.3; prende digito 3
  77.         movwf PORTD
  78.         movlw LETRAS.3;L
  79.         movwf PORTB
  80.         call retardo
  81.         movlw DIGITOS.4; prende digito 4
  82.         movwf PORTD
  83.         movlw LETRAS.4;A
  84.         movwf PORTB
  85.         call retardo
  86.         movlw DIGITOS.1; prende digito 1
  87.         movwf PORTD
  88.         movlw LETRAS.5;M
  89.         movwf PORTB
  90.         call retardo
  91.         movlw DIGITOS.2; prende digito 2
  92.         movwf PORTD
  93.         movlw LETRAS.6;U
  94.         movwf PORTB
  95.         call retardo
  96.         movlw DIGITOS.3; prende digito 3
  97.         movwf PORTD
  98.         movlw LETRAS.7;N
  99.         movwf PORTB
  100.         call retardo
  101.         movlw DIGITOS.4; prende digito 4
  102.         movwf PORTD
  103.         movlw LETRAS.8;D
  104.         movwf PORTB
  105.         call retardo
  106.         movlw DIGITOS.1; prende digito 1
  107.         movwf PORTD
  108.         movlw LETRAS.9;O
  109.         movwf PORTB
  110.         call retardo
  111.        
  112.         goto inicio
  113.        
  114. retardo: ; retardo de un segundo Formula Retardo = 10 x (100 x (1mS)) = 1000mS = 1 segundo
  115.    movlw d'10'
  116.    movwf T3
  117.    movlw d'100'
  118.    movwf T2
  119.    movlw d'250'
  120.    movwf T1
  121.    nop
  122.    decfsz T1,F
  123.    goto $-.2
  124.    decfsz T2,F
  125.    goto $-.6
  126.    decfsz T3,F
  127.    goto $-.10
  128.    return
  129. end

 Invertir los bits en los 7 segmentos para que te funcione responde a que estás invirtiendo el común.

  Mira, tienes que conocer si el display que estás usando lleva a común los ánodos o los cátodos.

  Si es un display con cátodos a común, para encender un segmento tienes que poner a 1 ese segmento y a cero el cátodo.  Pero ojo, como los comunes no se pueden poner directos a un puerto (por que lo fries), tienes que poner un transistor por medio que puede ser npn normal o mosfet.  Entonces, si el display es con cátodos a común, y tienes que poner ese común al colector del transistor. El emisor del transistor a masa , entonces para activar ese digito tienes que poner un 1 en la base del transistor, luego un 1 en cada segmento a encender.

Si el display tienes los ánodos a común, entonces el transistor lo pones con el colector a vdd, el emisor al común (ánodos) y la base al control de ese dígito. Entonces para activar un dígito en este caso, pones un 1 en la base (esto es igual que antes) sin embargo en los segmentos tienes que poner un cero para encenderlos.

  Espero no haberte liado más, pero es que esto es fundamental y elemental que debes conocer antes de plantear el circuito y el control.

 




Si claro entiendo en gran parte. mi display de 4 digitos 7 segmentos es de anodo comun y se que debo enviar un 0 para que los segmentos se enciendan y 1 para los que no quiero que se enciendan.
Mi detalle estuvo con prender los digitos si es que notaron la imagen del nuevo circuito que puse
estoy usando transistores 2n2222 NPN la base lo conecto a la salida del pin del pic, el colector lo dirijo hacia la entrada para encender digito en el display y los emisores los tengo conectados a tierra.
No se si este correcto en respecto a eso

No. Si es anodo común, los emisores los tienes que poner a vdd y los colectores a cada común de cada dígito.  El transistor tiene que ser PNP por ejemplo el Bc557 te vale.

  Luego como bien ha dicho el compañero usa una resistencia de base. 1K debería ser suficiente.  Pero puedes mirar el datasheet del transistor y calcular la corriente máxima de base para cuando el transistor esté en saturación con los 7 segmentos prendidos .

  Saludos.


Tengo una duda respecto a usar el transistor PNP, ¿porque no puedo utilizar un transistor NPN?

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #20 en: 08 de Mayo de 2019, 17:46:13 »
Se puede usar un NPN en modo seguidor de emisor o colector común, es decir, colector a 5v y emisor al anodo común. De esta forma no necesitas ni resistencia de base por que la intensidad de base puede ser 100 veces menos que la del consumo de los 7 segmentos activados.   Ten en cuenta que de este modo la tensión de salida es 0,7v menor que la esperada, deberás tenerlo en cuenta a la hora de calcular las resistencias de los cátodos.



  Pero como aquí lo que más interesa es conmutar y no amplificar yo para multiplexar varios dígitos de un 7 segmentos con ánodos a común prefiero usar un PNP en modo emisor común , es decir, emisor a 5v, colector al anodo común y base a control.  Así tienes un transistor mucho más efectivo para la conmutación. 

  Como ves, poderse de puede usar un NPN o un PNP, lo que cambia es la forma en que se conecta y la forma en que se gestiona luego desde la cpu.

 

 
« Última modificación: 08 de Mayo de 2019, 18:37:13 por remi04 »

Desconectado jefreyu12

  • PIC10
  • *
  • Mensajes: 11
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #21 en: 10 de Mayo de 2019, 00:59:28 »
Muchas gracias, usare los NPN pues son con los que cuento. Recapitulando , la configuración del circuito la tengo así la Base va hacia la salida del PIC18F4550, el emisor lo tengo conectado hacia vcc y el colector al ánodo común de los digitos del display. Esta bien asi, o como tu mencionas debo colocarlos al reves el emisor al anodo comun y el colector a  5v?
Disculpa si me perdi en esta parte

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 562
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #22 en: 10 de Mayo de 2019, 12:12:38 »
No puedes conectar un NPN con emisor a Vcc, pues quedaría polarizado inversamente.
Si tienes displays ánodo común deberás usar PNP, emisor a Vdd y colector a ánodo común.
Y añadir resistencia de base calculada, según consumo display con 7 segmentos activos.

Desconectado jefreyu12

  • PIC10
  • *
  • Mensajes: 11
Re:PIC18F4550 y 4display a 7 segmentos- Ensamblador
« Respuesta #23 en: 13 de Mayo de 2019, 23:52:56 »
Hola pues agradezco a todos los que me ayudaron. Finalmente pude terminar mi proyecto con la ayuda de todos. De todo corazón se los agradezco