Autor Tema: Display 7 segmentos e int ext en el mismo puerto  (Leído 1770 veces)

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

Desconectado aghor

  • PIC10
  • *
  • Mensajes: 19
Display 7 segmentos e int ext en el mismo puerto
« en: 02 de Julio de 2009, 20:48:16 »
Hola amigos del Foro.

Tengo la siguiente consulta... Que estrategia se puede utilizar para controlar con el puerto B de un 16f628a, un display de 7 segmentos y además utilizar el RB0 como interrupcion externa.??

Lo que me complica es definir lo siguiente:

Código: [Seleccionar]
#use standard_io(b)
#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3)   //como salidas en porta
...
int tab7seg[10]={0xFF,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80};   //7seg hex 0-9, controla catodos de un display de Anodo comun.
...que considera los 8 bits del puerto B.

como parte de main:
...
output_low(PIN_A0);
      output_high(PIN_A1);
      output_high(PIN_A2);
      output_high(PIN_A3);       
      output_b(tab7seg[i]);     
...




Que podría hacer para poder utilizar RB0?? sin que se vea afectado por la matriz anterior, tab7seg[10]?

Cualquier comentario me sería útil.

gracias.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Display 7 segmentos e int ext en el mismo puerto
« Respuesta #1 en: 02 de Julio de 2009, 21:27:24 »
Puedes usar el fixed io para todos los pines del puerto B excepto el RB0. Supongo que el pin B0 solo va  a ser para entrada no?

Saludos.
El papel lo aguanta todo

Desconectado aghor

  • PIC10
  • *
  • Mensajes: 19
Re: Display 7 segmentos e int ext en el mismo puerto
« Respuesta #2 en: 02 de Julio de 2009, 21:40:25 »
Gracias !!

Sip, RB0 solo sería utilizado como entrada..


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Display 7 segmentos e int ext en el mismo puerto
« Respuesta #3 en: 02 de Julio de 2009, 21:42:40 »
Otra forma es definir:
Código: C
  1. #use fast_io(b)
  2.  
  3.  
  4. void main(){
  5.      set_tris_b(0x01);  //ssssssse.-
  6. // Y para escribir sobre el puerto sencillamente:
  7. output_b(tab7seg[5]);
  8. }
No contesto mensajes privados, las consultas en el foro


 

anything