Autor Tema: que es esto 0Xf1 o esto 0b111110  (Leído 2013 veces)

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

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
que es esto 0Xf1 o esto 0b111110
« en: 02 de Septiembre de 2005, 09:26:00 »
pues esso estoi siguiendo algunos exemplos del foro e me encuentro muchas vezes com programas que por exemplo para activar un display de 7 segmentos usais algo como esto como por exemplo el amigo vszener em muchos de sus exemplos usa algo assi :

output_a(0b1111);
       output_b(0x7C);            //1º 7seg on B
      delay_ms(10);
      output_a(0b1001);
      output_b(0x79);            //2º 7seg on E
      delay_ms(10);
      output_a(0b1011);
      output_b(0x78);            //3º 7seg on T
      delay_ms(10);
      output_a(0b0111);
      output_b(0x30);            //4º 7seg on I
      delay_ms(10);
      }

      output_b(0x00);            //todo...
      output_a(0b0000);
   delay_ms(500);            //...apagado durante 0,5s
      }while(1);            //...infinito
}

pero no consigo entender como esto output_a(0b1001); activa un cierto numero de pines se que es en binaro e esto 0xf1 es exadecimal pero como ago para convertir unos en lo otros e entender que 0x00 es todo el porto como salida no lo entiendo

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: que es esto 0Xf1 o esto 0b111110
« Respuesta #1 en: 02 de Septiembre de 2005, 10:00:00 »
Vamos haber no e hagas un lio!!!!jeje para declarar los puertos como entrada o salida esta la directiva:
     
Codigo:
set_tris_b(0x00); //portb como salida
     set_tris_b(0xFF); //portb como entrada

Ahora bien, para manejar los puertos, es decir para mantener los pines de un puerto concreto en alto o en bajo hay varias instrucciones una de ellas es esta:
output_a(0b1110);  Esta instruccion quiere decir que la salida por el puerto a sera RA0 en alto(1), RA1 en alto(1), RA2 en alto(1), RA3 en bajo(0), se puede escribir tanto en binario como en hexadecimal incluso en decimal o en octal, segun prefieras, esta vez de sa escrito en binario para especificar que pin estara en bajo y que pin estara en alto ya que ese fragmento de codigo que has extraido del programa BETIS, es para encender y apagar los display"s de 7seg de catodo comun, dichos display"s(de catodo comun) se encienden si el catodo esta conectado a masa(GND), por lo tanto en nuestro programa para encender un display"s concreto debemos enviar por el puerto a un "0"logico(es decir una salida en bajo) asi iluminaremos un 7seg determinado mientras que si enviamos un "1"logico(salida en alto) los display"s permaneceran apagados.
De todas formas esa sentencia es para no escribir mucho codigo en otros ejemplos esta escrito los pin"s a encender y apagar equivalente a esa:
Codigo:
output_high(PIN_A0);
output_high(PIN_A1);
output_high(PIN_A2);
output_low(PIN_A3); //activado...
output_b(tab7seg[ i ]); //...1º 7seg B
delay_ms(10);
output_high(PIN_A0);
output_high(PIN_A1);
output_low(PIN_A2); //activado...
output_high(PIN_A3);
output_b(tab7seg[ j ]); //...2º 7seg E
delay_ms(10);
output_high(PIN_A0);
output_low(PIN_A1); //activado...
output_high(PIN_A2);
output_high(PIN_A3);
output_b(tab7seg[ w ]); //...3º 7seg T
delay_ms(10);
output_low(PIN_A0); //activado...
output_high(PIN_A1);
output_high(PIN_A2);
output_high(PIN_A3);
output_b(tab7seg[ z ]); //...4º 7seg I
delay_ms(10);


Si me he explicado mal dimelo!!!!jejeGiño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: que es esto 0Xf1 o esto 0b111110
« Respuesta #2 en: 02 de Septiembre de 2005, 10:19:00 »
gracias por la respuesta aber si me cojo algo de esto  que si por exemplo quiero encender todos los 8 pines del puerto b de un pic 16f628 tendria que poner esto  output_b(0b11111111) pero si qiero encender o poner a 1 el puerto A del 16f628 que solo son 5 pines entonces tendria que poner esto  output_a( 0b11111 ) esto seria assi no

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: que es esto 0Xf1 o esto 0b111110
« Respuesta #3 en: 02 de Septiembre de 2005, 10:28:00 »
Exactoooo!!!!jeje haber siempre que declares los puertos correspondientes como entrada o salida....para ver las funciones de manejos de bit"s(de pines vamos) te recomiendo que mires el ejemplito de como encender 4 led"s de 4 formas distintas ya que en ese programa se tratan casi todas las funciones de manejo de pines:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=4061462
Suerte!!!y si tienes alguna ke otra duda dimela!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte