Autor Tema: Envio de caracteres especiales al lcd  (Leído 5319 veces)

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

Desconectado alfred_197

  • PIC10
  • *
  • Mensajes: 15
Re: Envio de caracteres especiales al lcd
« Respuesta #15 en: 12 de Agosto de 2008, 10:25:09 »
Hola Cryn gracias por la respuesta
 El proble no creo que sea rebotes lo probe en un programa corto y nada  no se como salucionarlo

Código: [Seleccionar]
#include <16f877a.h> // Selecciona el PIC
#fuses XT,NOWDT,PROTECT,PUT,BROWNOUT // Opciones de configuración
#use delay(clock=4000000) // Velocidad del Cristal : 4 Mhz
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
#byte port_a= 0x05
#byte port_b=0x06
#byte port_c= 0x07
#byte port_d=0x08
#byte port_e= 0x09
#include<lcd2.c>
void main()
{int Contador=0,i,j;
 int valor=111;//valor por defecto de la contraseña
 char inicio[]="ALARMA DE";
 char laser[]="* PUERTA *";
 SET_TRIS_A(0xff);//configuracion de los puertos como estradas y salidas
 SET_TRIS_B(0x00);
 SET_TRIS_C(0xc0);
 SET_TRIS_D(0x00);
 SET_TRIS_E(0xff) ;
 lcd_init( );
 lcd_enviar(LCD_COMANDO,LCD_CURSOR_BLINK); // Envía comando al LCD////////////
 setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_256);
 lcd_gotoxy(4,1);
 for(i=0;i<8;i++)
 {lcd_putc(inicio[i]);
  delay_ms(100);
 }
 lcd_gotoxy(3,2);
 for(j=0;j<10;j++)
 { lcd_putc(laser[j]);
   delay_ms(100);
 }
 do
 {
  if(input(PIN_A0))
  {do
   {delay_ms(20);
   }while(input(PIN_A0));
   output_high(PIN_C1);
   output_high(PIN_D0);///////////pin que se enciende i se apaga ;
   delay_ms(200);
   lcd_putc("\f    Llave    \n    Accionada !!! ");
  }

 }while(True);
}
ah loolvidava el led se enciende y se apaga  en forma aleatoria o al go asi

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Envio de caracteres especiales al lcd
« Respuesta #16 en: 12 de Agosto de 2008, 10:43:04 »
Hola.

Si tu quieres que el LED se encienda y apague de forma aleatoria sin que afecte el codigo principal usa la interrupcion de algun timer y cambias el estado del LED. Seria algo asi:

Código: C#
  1. #int_TIMER0
  2. void LED_toggle_isr()
  3. {
  4.  ++ints_timer0;
  5.  if(ints_timer0>=100)//Segun el tiempo que quieras que permanezca encendido y apagado
  6.  {
  7.   ints_timer0=0;
  8.   if(input_state(pin_d0))
  9.     output_low(pin_d0);
  10.   else
  11.     output_high(pin_d0);
  12.  }
  13. }

Ya en el codigo principal lo que haces es habilitar o deshabilitar las interrupciones del Timer.

Saludos
El papel lo aguanta todo

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Envio de caracteres especiales al lcd
« Respuesta #17 en: 12 de Agosto de 2008, 12:06:14 »
Citar
ah loolvidava el led se enciende y se apaga  en forma aleatoria o al go asi
no entendí esta, pero supongo que es la falla que has tenido, no?

de todos modos tienes dos líneas que deberían estar, ya que estas usando el puerto a como entrada, entonces antes de tu bucle infinito debes configurar el conversor a/d a apagado y las entradas digitales, esto se hace así:

SETUP_ADC_PORTS(NO_ANALOGS);
SETUP_ADC(ADC_OFF);

y una sugerencia, en tus cadenas definidas:
 char inicio[]="ALARMA DE";
 char laser[]="* PUERTA *";

defínelas como constantes, para que no te utilice memoria RAM innecesariamente:
char const inicio[]="ALARMA DE";
char const laser[]="* PUERTA *";

espero sirva, un saludo.
.

Desconectado alfred_197

  • PIC10
  • *
  • Mensajes: 15
Re: Envio de caracteres especiales al lcd
« Respuesta #18 en: 12 de Agosto de 2008, 13:01:45 »
MUCHAS Gracias por las respuestas ya lo solucione:
 :mrgreen:es algo que olbiede y lo ultimo que revise locual  no crei que afectaria a mis salidaslas y eran las resistencias  de proteccion de los leds que estaban muy bajo.
de todos modos muchas gracias por q son de gram ayuda para los que empesamos recien en la programacion del los PIC :lol:

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Envio de caracteres especiales al lcd
« Respuesta #19 en: 12 de Agosto de 2008, 13:06:24 »
ok, que bueno que lo hayas solucionado

siempre hay que utilizar resistencias para LED's por lo menos de 220Ohm para arriba, para limitar corriente sino el PIN del micro puede arruianrse.

un saludo
.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Envio de caracteres especiales al lcd
« Respuesta #20 en: 12 de Agosto de 2008, 14:04:23 »
Yo uso mejor LED's de chorro (asi los compro aca), con los cuales la resistencia puede ser de hasta 2k  :mrgreen:

Saludos.
El papel lo aguanta todo

Desconectado alfred_197

  • PIC10
  • *
  • Mensajes: 15
Re: Envio de caracteres especiales al lcd
« Respuesta #21 en: 22 de Agosto de 2008, 11:55:21 »
Hola MLO a que te refierres con los LEDs a chorro que no encuentro informacion sobre ellos :shock:


 

anything