Autor Tema: Problema con el puerto a conectado a un decodificador  (Leído 3517 veces)

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

Desconectado PabloElMatatan

  • PIC10
  • *
  • Mensajes: 2
Problema con el puerto a conectado a un decodificador
« en: 10 de Diciembre de 2021, 03:54:47 »
Soy nuevo en programacion de PIC. Estoy diseñando un circuito para una bomba de tiempo. Uso el compilador XC8 y proteus. El microcontrolador es el pic 16f88. Al pic le conecte un teclado matricial, un decodificador 4511. Al decodificador 4 displays. El tema del temporizador y multiplexacion de display lo puede hacer. Lo que odio y ya no aguanto es que el pic en vez de ponerme en el display un 0 me pone un 7. Alguien sabe porque? Yo conecte el 4511 al puerto A, y si pongo el puerto A en 0, me tiene que aparecer un 0 no un 7. Es frustrante porque yo si quiero usar un while por ejemplo: while(tecla1==0) no puedo porquer el pic pone al Puerto A en 7 automaticamente. :c. OSea es normal que haga eso el pic?

Puse una parte de mi codigo para que vean que nunca pongo el Puerto A en 7:

int tecla1=0,tecla2=0,tecla3=0,tecla4=0;

    TRISA=0;
    TRISB=0b00001111;
    while(tecla1!=6){
        PORTA=tecla1;
        D0=1;
        __delay_ms(3);
        if(fila_1){tecla1=1;}
        if(fila_2){tecla1=4;}
        if(fila_3){tecla1=7;}
        D0=0;
        PORTA=tecla2;
        D1=1;
        __delay_ms(3);
        if(fila_1){tecla1=2;}
        if(fila_2){tecla1=5;}
        if(fila_3){tecla1=8;}
        if(fila_4){tecla1=0;}
        D1=0;
        PORTA=tecla3;
        D2=1;
        __delay_ms(3);
        if(fila_1){tecla1=3;}
        if(fila_2){tecla1=6;}
        if(fila_3){tecla1=9;}
        D2=0;
        PORTA=tecla4;
        D3=1;
        __delay_ms(3);
        D3=0;
}

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #1 en: 10 de Diciembre de 2021, 09:17:29 »
Soy nuevo en programacion de PIC. Estoy diseñando un circuito para una bomba de tiempo. Uso el compilador XC8 y proteus. El microcontrolador es el pic 16f88. Al pic le conecte un teclado matricial, un decodificador 4511. Al decodificador 4 displays. El tema del temporizador y multiplexacion de display lo puede hacer. Lo que odio y ya no aguanto es que el pic en vez de ponerme en el display un 0 me pone un 7. Alguien sabe porque? Yo conecte el 4511 al puerto A, y si pongo el puerto A en 0, me tiene que aparecer un 0 no un 7. Es frustrante porque yo si quiero usar un while por ejemplo: while(tecla1==0) no puedo porquer el pic pone al Puerto A en 7 automaticamente. :c. OSea es normal que haga eso el pic?

Puse una parte de mi codigo para que vean que nunca pongo el Puerto A en 7:

int tecla1=0,tecla2=0,tecla3=0,tecla4=0;

    TRISA=0;
    TRISB=0b00001111;
    while(tecla1!=6){
        PORTA=tecla1;
        D0=1;
        __delay_ms(3);
        if(fila_1){tecla1=1;}
        if(fila_2){tecla1=4;}
        if(fila_3){tecla1=7;}
        D0=0;
        PORTA=tecla2;
        D1=1;
        __delay_ms(3);
        if(fila_1){tecla1=2;}
        if(fila_2){tecla1=5;}
        if(fila_3){tecla1=8;}
        if(fila_4){tecla1=0;}
        D1=0;
        PORTA=tecla3;
        D2=1;
        __delay_ms(3);
        if(fila_1){tecla1=3;}
        if(fila_2){tecla1=6;}
        if(fila_3){tecla1=9;}
        D2=0;
        PORTA=tecla4;
        D3=1;
        __delay_ms(3);
        D3=0;
}

¿Estas configurando los bits 0, 1, 2, 3 y 4 de PORTB como entradas?

Código: C
  1. TRISB=0b00001111;

¿Pero a su vez, esos mismo bits son las salidas para activar el display?
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #2 en: 10 de Diciembre de 2021, 10:25:14 »
Tampoco veo en que parte configuras el puerto A como digital.

elreypic.

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #3 en: 10 de Diciembre de 2021, 12:13:33 »
El puerto A lo configuró en las 1ras. líneas dónde dice TRISA=0

El tema es que me parece que le faltan las resistencias pull-dwn en las entradas multiplexadas al PIC desde el teclado.
Habrá que seguir, cómo se asignan los valores a las variables fila_X.
« Última modificación: 10 de Diciembre de 2021, 12:15:51 por Robert76 »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #4 en: 10 de Diciembre de 2021, 12:17:31 »
El puerto A lo configuró en las 1ras. líneas dónde dice TRISA=0

El tema es que me parece que le faltan las resistencias pull-dwn en las entradas multiplexadas al PIC desde el teclado.
Habrá que seguir, cómo se asignan los valores a las variables fila_X.

El Rey creo que se refiere a deshabilitar el ADC y el comparador analógico.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado PabloElMatatan

  • PIC10
  • *
  • Mensajes: 2
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #5 en: 13 de Diciembre de 2021, 15:56:15 »
#define fila_1 RB0
#define fila_2 RB1
#define fila_3 RB2
#define fila_4 RB3
#define D0 RB4
#define D1 RB5
#define D2 RB6
#define D3 RB7

esos son los pines del puerto b

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #6 en: 13 de Diciembre de 2021, 20:08:32 »
#define fila_1 RB0
#define fila_2 RB1
#define fila_3 RB2
#define fila_4 RB3
#define D0 RB4
#define D1 RB5
#define D2 RB6
#define D3 RB7

esos son los pines del puerto b

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #7 en: 13 de Diciembre de 2021, 20:35:31 »
#define fila_1 RB0
#define fila_2 RB1
#define fila_3 RB2
#define fila_4 RB3
#define D0 RB4
#define D1 RB5
#define D2 RB6
#define D3 RB7

esos son los pines del puerto b



Fuente:

https://www.unioviedo.es/ate/alberto/TEMA4-puertos.pdf
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #8 en: 13 de Diciembre de 2021, 20:56:29 »
Dominus, el PIC16F88 posee el registro ANSEL y el ADCON1 nada que ver con lo que mostras.

https://ww1.microchip.com/downloads/en/DeviceDoc/30487D.pdf (Este es el link al datasheet del micro)
Pagina 113

Para el autor del POST.

No hay nada mas fiel que el datasheet del micro.

Por otro lado y lo mas importante, OBSERVANDO EL DATASHEET del microcontrolador, RA5 es únicamente ENTRADA!  ( Pagina 8 del datasheet )
Por lo cual ese pin no le sirve para activar el display. Usar otro pin. Específicamente te quedaría mejor intercambiar las entradas del teclado que son del puerto RB, por el puerto RA.


Código: [Seleccionar]
#define fila_1 RA2
#define fila_2 RA3
#define fila_3 RA4
#define fila_4 RA5
#define D0 RB4
#define D1 RB5
#define D2 RB6
#define D3 RB7

Lo que no se que es el tecla1, tecla2, tecla3 y tecla4. Pero eso es para otro tema.
« Última modificación: 13 de Diciembre de 2021, 21:05:43 por KILLERJC »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con el puerto a conectado a un decodificador
« Respuesta #9 en: 13 de Diciembre de 2021, 22:20:35 »
Dominus, el PIC16F88 posee el registro ANSEL y el ADCON1 nada que ver con lo que mostras.


Tienes razón, no puse atención que microcontrolador usaba. Sólo quería indicar lo que el Rey intentaba decir por arriba acerca de configurar como digitales los terminales del MCU.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32