2*16 lcd ekran arızası nasıl bulunur.

Başlatan sifirzero, 02 Mayıs 2015, 14:12:02

sifirzero

selamünaleyküm  2*16 lcd ekran arızalımı değilmi nasıl anlarız arkadaşlarlütfen yardım
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

mehmet

1. pin GND.
2. pin +5V
3. pin; +5 ile GND arasına bağlanmış 10K potun orta ucu
olacak şekilde bağladığınızda resimdeki gibi kareleri
görüyor olmanız gerekli. Potla oynayarak daha net görüntü
elde edebilirsiniz.
Ancak böyle kareleri gömüyorsanız arızalı olma ihtimali vardır.
Bağlantı şekliniz ve/veya resimleri paylaşırsanız daha fazla yardım
alabilirsiniz...
http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

sifirzero

kardeşim böyle karaler görüyorum.kurudğum devredemi hata var acaba ekrana görüntü alamıyorum sadece gönderdiğin görüntü var.ekranda
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

kardeşim birşey sorcam simülasyonda çalışıyor ama devreye kurduğumda çalışmıyor.nerede hatam olabilir.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

#include <16F84A.h>//Permite definir el pic con el que se va a trabajar y con el cual se llevara la compilacion
#device adc=16//Bits d
///5/65536=o.000076293 volts
#define use_portb_lcd TRUE
#define use_porta_lcd TRUE
#use delay (clock=4000000)//Define la frecuencia del oscilador del pic
//#use standard_io(c)//Declarar el puerto como entrada/salida digital

//Los fuses son los bits de configuracion del pic
//#FUSES NOWDT,XT,NOMCLR,NOPROTECT                //No Watch Dog Timer, desactiva el reset por MCLR y sin proteccion en el codigo.

//#FUSES BROWNOUT //reset en bajo voltaje

#include <math.h>//Libreria para calculos matematicos

#include <lcd_16f84.c>//Libreria o driver para el lcd
int i=0;
void main(){
set_tris_A(254);
lcd_init();
//LCD_configportb,7,6,5,4,porta,0,1,2)
//Lcd_Cmd(Lcd_CURSOR_OFF)
Lcd_putc("serkan cetin");
//lecturadigital();
//delay_ms(1000);
}
   kodlar bunlar.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

lcd uçlarınıda simülasyndaki gibi yaptım ama çalışmadı.nerede hata yapıyorumdur.az çok anlıyorum bu işten daha önce yaptım 16f877a ile ama 628 veya 84a da lcd çıktı alamadım.yardımcı olurmusun mehmet kardeş.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

mehmet

Kodlarınızı # kod ekleme şeklinde ekleyiniz öncelikle.

Hangi derleyici için yazılmış kodlar? Ayrıca; //LCD_configportb,7,6,5,4,porta,0,1,2)
satırı hatalı gibi??? Pin tanımlamaları yapılmamış gibi duruyor...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

baran123

#7
Şu şekilde deneyebilir misin ? Dağınık yazarsanız her şey birbirine girer kimsede uğraşmak istemez.Bilginiz olsun.
Pin ayarlarını lcd dosyasında yapabilirsin.
RW Pinini kullanmıyorsanız mutlaka GND ye bağlayınız.
#include <16F84A.h>
#device ADC=10// 16 bit ADC hatalı sanırım. 16F84A da maximum 10 bit diye hatırlıyorum.
#fuses XT,NOWDT// 4 MHz kristal takılı
#use DELAY(CLOCK=4MHz)

#include "lcd.c"//lcd kütüphanesi

void main(void)
{
   set_tris_a(0x00);//a portu çıkış
   output_a(0x00);//a portunu sıfıra çek

   lcd_init();//lcd hazırla 
   
   lcd_gotoxy(1,1);//1.satır 1.sütuna git | \f ekranı temizler, \n alt satıra geçer 
   printf(lcd_putc,"\fTEST\TEST");

   while(TRUE)
   {

   }
}


lcd.c
//---------LCD Pin Ayarları----------------------
#define LCD_DB4   PIN_B0 
#define LCD_DB5   PIN_B1
#define LCD_DB6   PIN_B2 
#define LCD_DB7   PIN_B3 

#define LCD_E     PIN_B5
#define LCD_RS   PIN_B4 
//-------------------------------------------------
#define lcd_type 2   
#define lcd_line_two 0x40 

int8 const LCD_INIT_STRING[4] = { 0x20 | (lcd_type << 2), 0xc, 1, 6 }; 
                              
void lcd_send_nibble(int8 nibble) 
{ 
   output_bit(LCD_DB4, !!(nibble & 1)); 
   output_bit(LCD_DB5, !!(nibble & 2));  
   output_bit(LCD_DB6, !!(nibble & 4));    
   output_bit(LCD_DB7, !!(nibble & 8));    
   
   delay_cycles(1); 
   output_high(LCD_E); 
   delay_us(2); 
   output_low(LCD_E); 
} 

#ifdef USE_LCD_RW 
int8 lcd_read_nibble(void) 
{ 
   int8 retval; 

   #bit retval_0 = retval.0 
   #bit retval_1 = retval.1 
   #bit retval_2 = retval.2 
   #bit retval_3 = retval.3 
   
   retval = 0; 
       
   output_high(LCD_E); 
   delay_cycles(1); 
   
   retval_0 = input(LCD_DB4); 
   retval_1 = input(LCD_DB5); 
   retval_2 = input(LCD_DB6); 
   retval_3 = input(LCD_DB7); 
     
   output_low(LCD_E); 
       
   return(retval);    
}    
#endif 

#ifdef USE_LCD_RW 
int8 lcd_read_byte(void) 
{ 
   int8 low, high; 
   
   output_high(LCD_RW); 
   delay_cycles(1); 
   
   high = lcd_read_nibble(); 
   
   low = lcd_read_nibble(); 
   
   return( (high<<4) | low); 
} 
#endif 

void lcd_send_byte(int8 address, int8 n) 
{ 
   output_low(LCD_RS); 
   
   #ifdef USE_LCD_RW 
   while(bit_test(lcd_read_byte(),7)) ; 
   #else 
   delay_us(60);  
   #endif 
   
   if(address) 
      output_high(LCD_RS); 
   else 
      output_low(LCD_RS); 
         
    delay_cycles(1); 
   
   #ifdef USE_LCD_RW 
      output_low(LCD_RW); 
      delay_cycles(1); 
   #endif 
   
   output_low(LCD_E); 
   
   lcd_send_nibble(n >> 4); 
   lcd_send_nibble(n & 0xf); 
} 

void lcd_init(void) 
{ 
   int8 i; 
   
   output_low(LCD_RS); 
   
   #ifdef USE_LCD_RW 
   output_low(LCD_RW); 
   #endif 
   
   output_low(LCD_E); 
   
   delay_ms(15); 
   
   for(i=0 ;i < 3; i++) 
   { 
      lcd_send_nibble(0x03); 
      delay_ms(5); 
   } 
   
   lcd_send_nibble(0x02); 
   
   for(i=0; i < sizeof(LCD_INIT_STRING); i++) 
   { 
      lcd_send_byte(0, LCD_INIT_STRING[i]); 
      
      #ifndef USE_LCD_RW 
      delay_ms(5); 
      #endif 
   } 
   
} 

void lcd_gotoxy(int8 x, int8 y) 
{ 
   int8 address; 
   
   if(y != 1) 
      address = lcd_line_two; 
   else 
      address=0; 
   
   address += x-1; 
   lcd_send_byte(0, 0x80 | address); 
} 

void lcd_putc(char c) 
{ 
   switch(c) 
   { 
      case '\f': lcd_send_byte(0,1); delay_ms(2); break; 
      case '\n': lcd_gotoxy(1,2); break; 
      case '\b': lcd_send_byte(0,0x10); break; 
      default: lcd_send_byte(1,c); break; 
   } 
} 

#ifdef USE_LCD_RW 
char lcd_getc(int8 x, int8 y) 
{ 
   char value; 
   
   lcd_gotoxy(x,y); 
   
   while(bit_test(lcd_read_byte(),7));  
   
   output_high(LCD_RS); 
   value = lcd_read_byte(); 
   output_low(lcd_RS); 
   
   return(value); 
} 
#endif



sifirzero

abilerim çalışan birtane hex dosyası ögnderirmisniz 16f84a veya 16f628a ile çalışantabi bacak bağlantıları ile birlikte deneyim yoksa şevkim kaçcak.öğrenmek istiyorum.Allah razı olsun sizden
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

ankyra

Alıntı yapılan: sene35 - 03 Mayıs 2015, 14:33:27
kardeşim birşey sorcam simülasyonda çalışıyor ama devreye kurduğumda çalışmıyor.nerede hatam olabilir.

LCD nin kontrasti çok açık olabilir mi? 3. bacaktaki trimpotla oyna...
pic çalışıyor mu? kontrol et (bir led yakıp söndür)... pic in + - beslemesine 100 nF bağla (entegrenin dibine)...

vitruvius

Devre şemanızı paylaşmanız lazım.

sifirzero

pic çalışıyor flipflop denedim ama lcd de görüntü alamdım.sadece tek sıra siyah kutucuklar var.kontrast falan çalışıyor.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

Kürşat C.

16F877A İLE ÇALIŞAN BİR DEVRE İSTERSENİZ GÖNDEREBİLRİM

sifirzero

sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

sifirzero

abilerim Allah razı olsun sizden yardım edin kafayı yicem lcd den görüntü alamıyorum ne denediysem olmuyor.http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg   sadece böyle görüntü alıyorum yardım edin
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir