selamünaleyküm 2*16 lcd ekran arızalımı değilmi nasıl anlarız arkadaşlarlütfen yardım
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 (http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg)
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
kardeşim birşey sorcam simülasyonda çalışıyor ama devreye kurduğumda çalışmıyor.nerede hatam olabilir.
#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.
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ş.
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...
Ş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
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
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)...
Devre şemanızı paylaşmanız lazım.
pic çalışıyor flipflop denedim ama lcd de görüntü alamdım.sadece tek sıra siyah kutucuklar var.kontrast falan çalışıyor.
16F877A İLE ÇALIŞAN BİR DEVRE İSTERSENİZ GÖNDEREBİLRİM
http://www.teknikders.com/index.php?sayfa=video&videoid=17 (http://www.teknikders.com/index.php?sayfa=video&videoid=17) bu siteden aldım kodu hex dosyasını
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 (http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg) sadece böyle görüntü alıyorum yardım edin
verdigim kodu denedin mi ?
arkadaşlar sorunu çözdüm boşta kalan data uçlarını birleştrip nötr bağladım ve çalıştı.daha öncede led yakmak istedim şevkim krılmasın öğreneyim diye ledide yakamdım led deki sorunda elimi pic götrüdüğümde ledyanıyordu.o sorunda voltaj düşük olduğu için oluyormuş.lcd birde mclr ucuna 10 k diren bağlamamıştım bağaldım o sorunda çözüldü.yardımcı olan arkadaşlardan Allah razı olsun.ölüm ölmüyor kabir kapısı kapanmıyor.gençlik akıp gidiyor.
arkadaşlar bir sorum olacak.pic devresinde nötr söktüğümde led yanıyor.