320x240 Glcd ile Sinüs Eğri Çizimi

Başlatan ahmet2004, 14 Haziran 2009, 23:18:34

ahmet2004

Pic18f452 10Mhz xtal 4xPLL
40Mhz 18F452 Bootloader
320x240 grafik lcd ile sinüs eğrisi çizimi denemesi...

////////////////////////////////////////////////////////////////////////////////
// Hazırlayan: ahmet2004
// Konu      : 320x240 Sed1335 Grafik Lcd ile Sinüs Çizim
// Tarih     : 14.Haziran.2009 Pazar
////////////////////////////////////////////////////////////////////////////////

#include <18F452.h>
#device adc=10

#FUSES WDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES H4                       //High speed Osc (> 4mhz)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES BROWNOUT               //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES NOPUT                    //No Power Up Timer
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOCPD                    //No EE protection
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPD
#FUSES CCP2C1

#use delay(CLOCK=40MHZ,CRYSTAL=10MHZ) 
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

#define LARGE_LCD 1


#include <sed1335.c>
#include <GRAPHICS.C>
#include <math.h>

#org 0x1F00, 0x1FFF void loader18F452(void) {}

#zero_ram

#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
#use fast_io(E)

char ahm[]="ahmet2004               14.Haziran.2009";
int16 dongu,x,dikey,yatay;
float yer,adet;

void main()
{
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   port_b_pullups(TRUE);

   set_tris_A(0xFF);
   set_tris_B(0xFF);
   set_tris_C(0x80);
   set_tris_E(0x00);
   set_tris_D(0x00);

   OUTPUT_A(0xFF);
   OUTPUT_B(0xFF);
   OUTPUT_C(0x00);
   OUTPUT_D(0x00);
   OUTPUT_E(0xFF);

   glcd_init(ON);

   glcd_fillScreenText(' ');
   glcd_fillScreen(OFF); 
   
  While(1)
  {
      glcd_text57(8, 5, AHM, 1, ON);

// osilaskop Ekranı Yeni
   glcd_rect(10, 20, 310, 220, NO, ON);
// ..............yatay çizgiler

   for(dikey=20; dikey<220; dikey+=25)
   {  
      for(yatay=10; yatay<=310; yatay+=10) 
      {
         glcd_pixel(yatay, dikey, ON);
      }
   }

// .dikey çizgiler
   for(dikey=20; dikey<220; dikey+=10)
   {  
      for(yatay=10; yatay<=310; yatay+=25) 
      {
         glcd_pixel(yatay, dikey, ON);
      }
   }
      
   for(dongu=10; dongu<=310; dongu++)
   {
      adet=dongu; yer=sin(adet/24); x=yer*80+90;
      
      glcd_pixel(dongu, 210-x, ON);
      glcd_pixel(dongu+1, (210-x), ON);
      
      glcd_pixel(dongu, (210-x)+1, ON);
      glcd_pixel(dongu+1, (210-x)+1, ON);
   }
      delay_ms(100);
      glcd_fillScreen(OFF);
  }
}






Maxim

hocam bunun çalışma mantığı nedir ?
ccs bilmiyorum ama analog girişleri en başta kapatmışsın yanlışım yoksa ,
yani sadece ekranda sinüs eğrisi çıkarma rutinimidir bu ?
yoksa canlı ölçüm yapılabilen bir çalışmamı ?

nthere


M_B

ahmet2004 hocam;
Denemek için Proteusta devreyi çizecektim.
Ama proteusta SED1335  LCD yi bulamadım. Proteusta  SED1335 LCD ye uyumlu olan hangisidir. Hangi modeli kullanayım.

Teşekkürler
Mehmet
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ahmet2004

Sadece sinüs eğrisi çizimi denemesi çıktısı üstteki resim...

Proteusta bu GLcd ile ilgili uyumlu lcd yok malesef.

ahmet2004


mame

Alıntı yapılan: "ahmet2004"Başka bir Lcd ile ...

(Resim gizlendi görmek için tıklayın.)

ahmet hocam bu lcd marka model,cözünürlük ve boyutu nedır cok ılgımı cektı
bayrakları bayrak yapan üstündeki kandır,toprak eğer uğrunda ölen varsa vatandır.

a.zorba

Bilenler bilir . Biz maraşlilar için şehir olarak şubat ay' i bayram ,kurtuluş ,yaz in gelmesiydi. Şimdi karalar in yas in ayı oldu.

mame

a.zorda banamı yazdınız anlamadım eger hangı lcd manasında yazdıysanız renklı olan lcdyı sormustum boyut cozunurluk ve marka model nereden bulurum
bayrakları bayrak yapan üstündeki kandır,toprak eğer uğrunda ölen varsa vatandır.

ahmet2004


necati

[email]entegreterbiyecisi@yahoo.com[/email]