Abilerim Büyüklerim azcık yardım lazım (Grafik lcd)

Başlatan ido2323, 10 Şubat 2014, 18:39:25

ido2323

acaba hata nerede bi türlü bulamadım pic bağlantılarıda doğru varmı gözü kuvvetli mübarek bi zat

#include <18f4550.h>

#ifndef GLCD_CS1
#define GLCD_CS1     PIN_B0   
#endif

#ifndef GLCD_CS2
#define GLCD_CS2     PIN_B1   
#endif

#ifndef GLCD_DI
#define GLCD_DI      PIN_B2   
#endif

#ifndef GLCD_RW
#define GLCD_RW      PIN_B4   
#endif

#ifndef GLCD_E
#define GLCD_E       PIN_B5   
#endif

#ifndef GLCD_RST
#define GLCD_RST     PIN_C0   

#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=4000000)

#include <HDM64GS12.c>
#include <graphics.c>
#include <KS0108.c>


char yazi1[]="gazi";
char yazi2[]="unicersty";

void main()
{


      setup_psp(PSP_DISABLED);
      setup_timer_1(T1_DISABLED);
      setup_timer_2(T2_DISABLED,0,1);
      setup_adc_ports(NO_ANALOGS);
      setup_adc(ADC_OFF);
      setup_CCP1(CCP_OFF);
      setup_CCP2(CCP_OFF);
     
      glcd_init(ON);
     
   
      glcd_init(ON);
      glcd_text57(39, 5, yazi1, 2, ON);
      glcd_text57(5, 30, yazi2, 2, ON);
      delay_ms(2000);
     
      while(1){;}

}


izturk

#fuses hs yazıyor. clock 4Mhz de. hs 10Mhz ve üstü kristaller için. 4000000 yerine kristal değerini yaz.
yanlış hatırlamıyorsam glcd için 20Mhz gerekiyordu

ido2323

onu fark ettim düzelttim 20 MHZ kristal var ona göre düzeltme yaptım ama gene değişmedi

WrtM

sonda yazdığın while parantezleri içindeki noktalı virgülü kaldır.

ido2323

kaldırdım ama gene aynı en son hali bu ;

#include <18f4550.h>

#ifndef GLCD_CS1
#define GLCD_CS1     PIN_B0   // Chip Selection 1
#endif

#ifndef GLCD_CS2
#define GLCD_CS2     PIN_B1   // Chip Selection 2
#endif

#ifndef GLCD_DI
#define GLCD_DI      PIN_B2   // Data or Instruction input
#endif

#ifndef GLCD_RW
#define GLCD_RW      PIN_B4   // Read/Write
#endif

#ifndef GLCD_E
#define GLCD_E       PIN_B5   // Enable
#endif

#ifndef GLCD_RST
#define GLCD_RST     PIN_C0   // Reset

#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=20000000)

#include <HDM64GS12.c>
#include <graphics.c>
#include <KS0108.c>


char yazi1[]="gazi";
char yazi2[]="unicersty";

void main()
{


      setup_psp(PSP_DISABLED);
      setup_timer_1(T1_DISABLED);
      setup_timer_2(T2_DISABLED,0,1);
      setup_adc_ports(NO_ANALOGS);
      setup_adc(ADC_OFF);
      setup_CCP1(CCP_OFF);
      setup_CCP2(CCP_OFF);
     
      glcd_init(ON);
     
   
      glcd_init(ON);
      glcd_text57(39, 5, yazi1, 2, ON);
      glcd_text57(5, 30, yazi2, 2, ON);
      delay_ms(2000);
     
      while(1){}

}

mesaj birleştirme:: 10 Şubat 2014, 20:31:47

kullandığım lcd data sheet  bağlantılarıda yaptım osilatör bozuktur diye osc de değiştim son çare lcd değişecem  bozuk zannedersem http://winstar.com.tw/mysql/drw/WG12864A.GIF

sadogan


z

char yazi2[]="unicersty";

Burada hata var ama herhalde bundan degildir.

char yazi2[]="university";
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ido2323

ya sorun galiba grafik lcd şimdi mikro c de yazdım bi tane onuda yemedi bakın ;
olmassa bi proteus çizip deneyecem çizip atayım hatta bi dakka
char GLCD_dataport at PORTD;

sbit GLCD_CS1 at LATB0_bit;
sbit GLCD_CS2 at LATB1_bit;
sbit GLCD_RS at LATB2_bit;
sbit GLCD_RW at LATB4_bit;
sbit GLCD_EN at LATB5_bit;
sbit GLCD_RST at LATC0_bit;

sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB4_bit;
sbit GLCD_EN_Direction at TRISB5_bit;
sbit GLCD_RST_Direction at TRISC0_bit;
void main() {
  ADCON1 |= 0X0F;
  CMCON |=  7;

  Glcd_init();
  Glcd_Fill(0x00);
  while(1){
  Glcd_Write_Text("asdfasdfa",0, 0, 1);

}

ido2323

proteus simulasyonu çalışıyor denedim
buyrum proteus dosyası ama neden bi türlü çalışmıyor
https://drive.google.com/file/d/0BxyLlUHypmCgcTRDSFRqZG84YWs/edit?usp=sharing

sadogan

Contrast devren çalışıyormu.
Contrast açıp kısınca lcd nin pixel lerini görebiliyormusun.

frederic

Resimde görünen o sarı sinyaller bağlantıların ideal olmadığını gösteriyor, normalde mavi veya kırmızı olması gerek o sinyallerin.

RaMu

Alıntı yapılan: Maxim - 15 Ekim 2013, 21:40:00
sizin sorun ya CS0-CS1 pin bağlantısından veya
Declare GLCD_CS_Invert komutunu kullanın çözülecektir.


şu komutlarada bir göz gezdirin grafik lcd ile çalışırken yardımcı olacaktır
Declare GLCD_Strobe_Delay
Declare GLCD_Read_Delay

konu;
https://www.picproje.org/index.php/topic,49262.0.html

Bu tanımlama proton için dikkat edin.


Konudada bahsetmiştik cs1 cs2 doğru bağlımı tekrar bakın,
birde zaten söylenmiş özellikle kontrast bağlantısı varmı doğrumu kontrol edin,
isis buna dikkat etmez bağlıymış gibi kabul eder.

örnek kontrast bağlantısı
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

izturk

cs1 ucunu +5v a bağlamışın bu bağlantı yanlış. bu yüzden sol taraf karanlık çıkıyor.

Sadece simülasyonda mı çalıştırıyorsun gerçek devre de var mı? gerçek devre varsa osilatör kondansatörleri de toprağa bağlanacak 5v a değil.



ido2323

#13
yok çözemedim sorunu osilatör en başından ground bağlıydı proteus yanlış çizmişim kusura bakmayın en son hali bu gene çalıştıramadım

#include <18f4550.h>



#ifndef GLCD_DATA
#define GLCD_DATA    PORT_D   // Chip Selection 1
#endif

#ifndef MCUCLK
#define MCUCLK      Nop4   // Chip Selection 1
#endif

#ifndef KS0108_DATA
#define KS0108_DATA    PORT_D   // Chip Selection 1
#endif

#ifndef GLCD_CS1
#define GLCD_CS1     PIN_B0   // Chip Selection 1
#endif

#ifndef GLCD_CS2
#define GLCD_CS2     PIN_B1   // Chip Selection 2
#endif

#ifndef GLCD_DI
#define GLCD_DI      PIN_B2   // Data or Instruction input
#endif

#ifndef GLCD_RW
#define GLCD_RW      PIN_B4   // Read/Write
#endif

#ifndef GLCD_E
#define GLCD_E       PIN_B5   // Enable
#endif

#ifndef GLCD_RST
#define GLCD_RST     PIN_C0   // Reset



#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=20000000)

#include <HDM64GS12.c>
#include <graphics.c>
#include <KS0108.c>

    char yazi1[]= "gazi";
char yazi2[]= "universty";


void main()
{

while(1)
      setup_psp(PSP_DISABLED);
      setup_timer_1(T1_DISABLED);
      setup_timer_2(T2_DISABLED,0,1);
      setup_adc_ports(NO_ANALOGS);
      setup_adc(ADC_OFF);
      setup_CCP1(CCP_OFF);
      setup_CCP2(CCP_OFF);
     

   
      glcd_init(ON);
     
      glcd_text57(11, 5, yazi1, 1, ON);
      glcd_text57(1, 30, yazi2, 1, ON);
      delay_ms(2000);
     
}






mesaj birleştirme:: 11 Şubat 2014, 18:20:03

arkadaşlar sorun çözülmüştür, başlandıçta tanımladığımız #include <KS0108.c> dosyasında iki parametre;

#ifndef GLCD_CS1
#define GLCD_CS1     PIN_B0   // Chip Selection 1
#endif

#ifndef GLCD_CS2
#define GLCD_CS2     PIN_B1   // Chip Selection 2
#endif

eksik tanımlanmıştı tanımlayınca sorun çözüldü herkese teşekkürler