Geri git   Programlama ve Elektronik > Dökümanlar > Elektronik e-Book (pdf-doc-chm-html vb.)

Elektronik e-Book (pdf-doc-chm-html vb.) Elektronik Hakkında Her Türlü e-Kitap

Cevapla
 
Seçenekler Stil
Alt 12. March 2008, 05:25 PM   #1 (permalink)
Administrator
 
PIONEERNADIR - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2007
Nerden: Mersin - Merkez
Mesajlar: 763
PIONEERNADIR - MSN üzeri Mesaj gönder PIONEERNADIR - YAHOO üzeri Mesaj gönder
Standart Pic C ile 2x16 Sıvı Krisal Ekran'da (LCD) Karakter Oluşturmak

Not:Burdaki bilgiler ccs pic c derleyicisi kullanılarak hazırlanmıştır.Bilgileri uygulamak için çok ta olmasa pic c tecrübesi gerekir.


Kullandığımız 2x16 sıvı kristal ekranlarda Türkçe karakter desteği yoktur.Üretici firma kullandığımız bu ekranları ascii tablosuna göre kullanım olanağı sağlamıştır.Ascii kodlaması İngilizce'de kullanılan latin alfabesi üzerinde oluşturulmuş bir karakter kodlama tipidir.Projelerimizde örn:ğışüçgülücükçöp adam vs.. gibi karakterleri kullanacağımız durumlar elbette olacaktır.Bu sebeple ekran üreticisi tanımsız karakter oluşturulabilmesi için en fazla sekizer bayttan 8 karakterin yazılabileceği boyutta kullanıcıya hafıza bırakmıştır.Kullanıcı 5x7 matris yöntemi (aşağıda bahsedeceğim) ile kendi oluşturduğu karakterin kodunu bu hafızaya yazarak istenildiği vakit ekrana yazdırılmak üzere bu hafızada yer alan karakterleri çağırabilir.Kullanıcı isterse bu hafızayı geçici olarak(ram) bilgi saklamak üzere de kullanabilir.Bu yazıda asıl olarak bahsettiğimiz hafızanın(cgram'in) kullanımından bahsedeceğim.
Öncelikle karakter nasıl oluşturulur bir göz atalım.

şekil 1 - 5x7 i harfi


şekil 2 - 5x7 ç harfi


şekil 3 - 5x7 gülen surat

Sanırım yukarıdaki örneklerde 5x7 matris yöntemi rahatlıkla anlaşılıyor.Her satırda en sağda olan en düşük biti en solda olan ise en yüksek biti temsil eder.Buna göre her satırda dolmasını istediğimiz noktaları işaretliyoruz ve bu işaretlilerin toplam değerlerini şekillerde görüldüğü üzere karşısına yazıyoruz.Her satırı bu şekilde yani bayt bayt kodladıktan sonra elimizde yedi tane değer olması gerekir.Şimdi aklımıza takılan bir soru olmalı; 8'er bayttan 8 karakter oluşturabiliyoruz.Örneğin yukarıdaki örneklerde İ harfi için kodlama yaptığımızda "401444414" gibi 7 baytlık bir bilgi elimizde oluyor.Peki 8. bayt yerine ne yazıpta hafızaya yollayacağız.?Aslına bakarsanız ekranın her bir karakter alanı 5x8 noktadan oluşmaktadır.Fakat üretici 5x8 noktada sekizinci satırın benim bildiğim sadece imleç (_) olarak kullanılmasını sağladığından; biz bu 8. satıra yani elimizde olmayan 8.bayt yerine sadece 0 değerini göndereceğiz.Yani İ harfi için "4014444140" olarak göndereceğiz.

Biraz da ekranımızın cgram'inden bahsedelim.Dediğimiz gibi oluşturduğumuz 8 baytlık kodları cgram denilen bu geçici hafızaya yazacağız.Peki o zaman bu hafızanın bir adresi olmalı ki kodlarımızı gönderebilelim.Onluk taban olarak yazıyorum;cgram adresleri 64'ten başlar ve her bayt için bir artarak 8 karakter oluşturabilmemizden yola çıkarak hesaplarsak; her karakter 8 satırdan oluşur ve her satır 1 bayttır yani 1*8=8 bayt bir karakter ise 8 karakter için 8*8=64 baytlık bellek gerekir.O zaman cgram adresi 64'ten başladığına göre 64+64=128'e kadar gider.Yani adres aralığı 64-128'dir.Biz şimdi her 8 bayt için 6472808896104112120 adreslerini kullanacağız.Örneğin 64 adresinden başlayarak 72 hariç 72'ye kadar bayt bayt kodlanmış "4014444140" "İ" harfi bilgisini göndereceğiz.Ekrana "İ" yazdıracağımız zaman ise tekrar 64 adresinden gerekli kodları çağıracağız.Bu komutları kaydedebilmemiz için ekranın rs pinini düşük yapmamız gerekir.rs pini 0 ise komut kaydedicisi rs pini 1 ise veri kaydedicisi seçilmiş olur.

Ben bu karakter oluşturma işini daha önce exel programında yapıyordum.Fakat exel bana çok zahmetli geldiğinden visual basic ile bir program yazdım.Kısaca bundan da bahsedeyim.


Şekil 4 - 5x7 Karakter Kodlayıcı Program Görüntüsü

Şekil 4'te görüldüğü üzere 1 ile belirtilen kısım karakterimizin noktalarını oluşturacak kısımdır.Noktalara her tıklayışımızda siyah ya da beyaz olurlar.Aynı zamanda 4 ile belirtilen kısımda her satırın ikilik ve onluk olmak üzere değerleri gösterilir.2 ile belirtilen kısım; sonuçta oluşturulan karakterin hafızaya gönderilecek olan onluk tabanda 8 baytlık kodudur.İstersek ikilik onaltılık sekizlik ile de gönderebiliriz.Fakat o zaman yazım ifadesi değişmektedir.3 ile belirtilen kısım ise yeni karakter oluşturmak üzere matrisi sıfırlamamızı sağlayan butondur.Basit bir programdır sadece oluşturulacak karakterin kodunu verir.

Şimdi sıra geldi oluşturduğumuz kodu ekrana nasıl yansıtacağız ve nasıl hafızada saklayacağız.

Bu işi pic c ile yapacağız.Öncelikle bir pic (ben bu çalışmada 16f628A kullandım) 2x16 ekran ekran arka ışık kontrolü için ayarlı direnç ve elbette güç kaynağı lazım.Eğer bunları okuyorsanız elbette hazır durumdadırlar.Devre şemasını aşağıda görebilirsiniz.Şimdi gerektiği yerlerde açıklamalarını yazarak program kısmına geçiyorum.
program 1:

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include <lcd.c> // lcd için gerekecek fonksiyonların bulunduğu dosya lcd.c
void main()
{
lcd_init();//ekranımızı kuruyoruz
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
lcd_putc("Şirin Dünya");//ekranda " irin D nya" şeklinde görülecektir yani tanımsız karakterler elbette görülmeyecektir.
for(;
{}
}


lcd_send_byte(ab);

Bu fonksiyon (lcd.c dosyasına göz attığınızda göreceksiniz) lcd_putc() fonksiyonun arkasında asıl işi yapan fonksiyonlardan birisidir.Parantez içindeki a rs pinine verilecek değeri belirtir(0 ya da 1).

a=0 => Komut kaydedicisi seçilir. a=1 => Veri kaydedicisi seçilir.

Parantez içerisindeki b ise karakter numarasıdır.Örneğin lcd_send_byte(165); dediğimiz zaman veri kaydedicisini seçip 65 numaralı karakteri ekrana yolluyoruz.Ekranda görülecek karakter ise "A"'dır.Zaten ascii tablosuna da bakarsak "A" karakteri onluk tabanında 65'e karşılık gelir.Yani

lcd_putc("A"); yazdığımız zaman arkada ilk önce lcd_send_byte(165); fonksiyonu bu şekilde çalışacaktır.Daha sonra burdan da başka dallanmalar da meydana gelir ve ikilik tabana kadar uzadıkça uzar.Tabi şuan için lcd_send_byte'tan ilerisine gitmeye gerek yok.

Bizim kaydedeceğimiz karakterlerin numarası ise 01234567 olacaktır.(0x000x010x020x030x040x050x060x07 )

örnek:

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include <lcd.c>// lcd için gerekecek fonksiyonların bulunduğu dosya lcd.c
void main()
{
lcd_init();//ekranımızı kuruyoruz
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
lcd_send_byte(165);//Ekrana "A" yazdırıyoruz.
for(;
{}
}

Ve nihayet gelelim oluşturduğumuz karakter kodlarını ekranın geçici belleğine göndermeye Yine lcd_send_byte() fonksiyonunu kullanmamız icap ediyor pic c'de.Öncelikle komut kaydedicisini seçmemiz gerekiyor.Sonra hangi adrese yazacaksak onuda fonksiyona ekliyoruz.

örnek:

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include <lcd.c>// lcd için gerekecek fonksiyonların bulunduğu dosya
byte const karakter_[8]={4014444140};//Büyük "İ" harfi için 5x7 matrisine göre kodlanmış bilgi

//bayt tipinde 8 elemanlı "karakter_" adında bir dizi oluşturduk ve hazırlamış olduğumuz kodu içine yazdık.değişkenin önüne const yazarak onun sabit bir ifade olmasını sağlarız.program akışında artık değiştirilemez.bu ifade ile bilgi program belleğinde saklanır.kapasitesi sınırlı olan pic'in geçici(ram) belleği çok kullanılmamış olur.

void main()
{
lcd_init();//ekranımızı kuruyoruz
lcd_send_byte(064);//hafızanın 64 numaralı adresi
lcd_send_byte(1karakter_[0]);// cgram'e bayt bayt karakterimizi gönderiyoruz
lcd_send_byte(1karakter_[1]);
lcd_send_byte(1karakter_[2]);
lcd_send_byte(1karakter_[3]);
lcd_send_byte(1karakter_[4]);
lcd_send_byte(1karakter_[5]);
lcd_send_byte(1karakter_[6]);
lcd_send_byte(1karakter_[7]);//karakter_ dizisinin elemanlarını sırasıyla yolladık.
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
lcd_send_byte(11);//kendi oluşturduğumuz 1 numaralı karakteri ekrana basıyoruz.
for(;
{}
}
//program sonu

lcd_send_byte(11); ifadesi yerine lcd_putc(1); printf(lcd_putc"%c"1); ifadelerini de kullanabiliriz.Buna göre ekrana "Güzel Türkçe" yazan bir örnek yapalım.Hemen programımızda üç harflerinin kodlarını oluşturarak başlayalım.




örnek:

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include // lcd için gerekecek fonksiyonların bulunduğu dosya
byte const karakter_bir[8]={0141716171440};//"ç" harfi için 5x7 matrisine göre kodlanmış bilgi
byte const karakter_iki[8]={0100171717140};//"ü" harfi için 5x7 matrisine göre kodlanmış bilgi
int i;
void main()
{
lcd_init();//ekranımızı kuruyoruz
lcd_send_byte(064);//cgram'de 1.karakteri göndereceğimiz yolu açıyoruz
for(i=0;i<=7;i++)
lcd_send_byte(1karakter_bir[i]); //for döngüsü yardımı ile dizideki bilgileri tek tek yolluyoruz.
lcd_send_byte(072);//cgram'de 2.karakteri göndereceğimiz yolu açıyoruz
for(i=0;i<=7;i++)
lcd_send_byte(1karakter_iki[i]); //for döngüsü yardımı ile dizideki bilgileri tek tek yolluyoruz.
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
printf(lcd_putc"G%czel T%crk%cemiz"221);//"Güzel Türkçemiz"
for(;
{}
}


Şimdi bir güzellik yapalım işimizi kolaylaştıralım.printf(lcd_putc"G%czel T%crk%cemiz"221); gibi uğraşacağımıza printf(lcd_putc"Güzel Türkçemiz"); şeklinde de yazabiliriz.Bunun için bir takım fonksiyonları kurcalamamız gerekiyor.

Hemen bir önceki yazıdan hatırlarsak lcd_putc("\\f") lcd_putc("\\n") ifadelerini görmüştük.Burda olan olayları incelersek kendi işimize biraz daha yaklaşacağız."\\f" ifadesini gönderdiğimiz zaman bu ifade bir çok karakter arasında olsa bile lcd_putc() fonksiyonu arka planda "\\f" ifadesini gördüğü an ekranı temizlemek için yola koyulur ve bir takım işlemleri gerçekleştirir.Aynı şekilde "\\n" ifadesinde de mantık aynıdır.Bu ifade(\\n) lcd_putc fonksiyonu tarafından algılandığı zaman satır atlatılmak üzere bir takım işlemler yapılır.Daha detaylı incelemek istersek LCD.C dosyasından lcd_putc() fonksiyonunu aşağıda görebiliriz.

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

Görüldüğü üzere switch deyimi kullanılarak bahsettiğimiz algılama işi gerçekleşmektedir.Şimdi bu fonksiyona şunu eklersek case '\\1' : lcd_send_byte(00x00);break;

yani yazdırdığımız yazıda "\\1" ifadesi geçtiği an daha önceden kaydetmiş olduğumuz 1. karakteri ekrana bastır.

değişiklik 1:

void lcd_putc(char c)
{
switch (c) {
case '\\f' : lcd_send_byte(01);
delay_ms(2);break;
case '\\n' : lcd_gotoxy(12);break;
case '\\b' : lcd_send_byte(00x10);break;
case '\\1' : lcd_send_byte(00x00);break;//1.karakteri çağırmak için yazılacak(isteğe göre başka birşeyler de yazılabilir)
case '\\2' : lcd_send_byte(00x01);break;
case '\\3' : lcd_send_byte(00x02);break;
case '\\4' : lcd_send_byte(00x03);break;
case '\\5' : lcd_send_byte(00x04);break;
case '\\6' : lcd_send_byte(00x05);break;
case '\\7' : lcd_send_byte(00x06);break;
default : lcd_send_byte(1c);break;
}
}

Şimdi ekrana "elektronik" yazalım ve yanına bir düz gülücük çizelim.Öncelikle gülücüğü yine kodlamamız gerekiyor.


örnek:

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include <lcd.c>// lcd için gerekecek fonksiyonların bulunduğu dosya
byte const karakter_bir[8]={01000171400};//gülücük için 5x7 matrisine göre kodlanmış bilgi
int i;
void main()
{
lcd_init();//ekranımızı kuruyoruz
lcd_send_byte(064);//cgram'de 1.karakteri göndereceğimiz yolu açıyoruz
for(i=0;i<=7;i++){
lcd_send_byte(1karakter_bir[i]);}//karakteri bayt bayt gönderiyoruz
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
printf(lcd_putc"elektronik \\1");//elektronik yazısının ardından gülücük karakterini ekrana yazıyoruz
for(;
{}
}

Görüldüğü gibi "lcd.c" dosyasındaki lcd_putc() fonksiyonunu değişiklik 1'deki gibi değiştirirsek yazımızın içinde geçebilecek herhangi bir karakter ya da karakterler gurubu ile hafızadan başka bir karakteri değiş tokuş edebiliriz.Örneğin "\\1" yazarak "ç" harfini "\\2" yazarak başka bir karakteri vs. şeklinde ekrana yazdırabiliriz.

Son Örnek: Türkçe yazımı sağlamak için ise aşağıdaki sırayı izleyelim.

1) lcd.c dosyasına eklenecek fonksiyonlar

void kucuk_turkce_karakterler()
{
int isadres=64;
const byte karakter_[8][8]=
{
{ 01416161714 4 0}//ç
{14 0151715 114 0}//ğ
{ 0 012 4 4 414 0}//i
{10 01417171714 0}//ö
{ 0151614 130 4 0}//ş
{10 01717171714 0}//ü
{ 0 0 0 0 0 0 0 0}//boş
{ 0 0 0 0 0 0 0 0} //boş
};
//değişkenin önüne const yazarak onun sabit bir ifade olmasını sağlarız.
//program akışında artık değiştirilemez.
//bu ifade ile bilgi program belleğinde saklanır.
//kapasitesi sınırlı olan geçici(ram) bellek çok kullanılmamış olur.
//-------
//rs=0 => komut kaydedicisi
//rs=1 => veri kaydedicisi
for(i=0;i<=7;i++)
{
lcd_send_byte(0adres);// 1.değerdeki 0 ile rs=0 komut(cgram) kaydedicisi seçildi.
for(s=0;s<=7;s++)
lcd_send_byte(1karakter_[i][s]);
adres=adres+8;
}
}
void buyuk_turkce_karakterler()
{
int isadres=64;
const byte karakter_[8][8]=
{
{141716161714 4 0}//Ç
{ 6 01516231715 0}//Ğ
{ 4 014 4 4 414 0}//İ
{10 01417171714 0}//Ö
{15161614 130 4 0}//Ş
{10 01717171714 0}//Ü
{ 0 0 0 0 0 0 0 0}//boş
{ 0 0 0 0 0 0 0 0} //boş
};
//değişkenin önüne const yazarak onun sabit bir ifade olmasını sağlarız.
//program akışında artık değiştirilemez.
//bu ifade ile bilgi program belleğinde saklanır.
//kapasitesi sınırlı olan geçici(ram) bellek çok kullanılmamış olur.
//-------
//rs=0 => komut kaydedicisi
//rs=1 => veri kaydedicisi
for(i=0;i<=7;i++)
{
lcd_send_byte(0adres); // 1.değerdeki 0 ile rs=0 komut(cgram) kaydedicisi seçildi.
for(s=0;s<=7;s++)
lcd_send_byte(1karakter_[i][s]);// cgram'e bayt bayt karakterimizi gönderiyoruz
adres=adres+8;
}

}

2) lcd.c dosyasında yapılacak değişiklikler.

Dosya içindeki lcd_putc() fonksiyonunu alttaki lcd_putc() fonksiyonu ile değiştiriyoruz.

void lcd_putc( char c)
{
switch (c) {
case '\\f' : lcd_send_byte(01);
delay_ms(2); break;
case '\\n' : lcd_gotoxy(12); break;
case '\\b' : lcd_send_byte(00x10); break;
case 'Ç' : lcd_send_byte(10x00); break;//64 adresinden gelen
case 'Ğ' : lcd_send_byte(10x01); break;//72
case 'İ' : lcd_send_byte(10x02); break;//80
case 'Ö' : lcd_send_byte(10x03); break;//88
case 'Ş' : lcd_send_byte(10x04); break;//96
case 'Ü' : lcd_send_byte(10x05); break;//104
case 'ç' : lcd_send_byte(10x00); break;//112
case 'ğ' : lcd_send_byte(10x01); break;//120
case 'ı' : lcd_send_byte(10x02); break;//
case 'ö' : lcd_send_byte(10x03); break;
case 'ş' : lcd_send_byte(10x04); break;
case 'ü' : lcd_send_byte(10x05); break;
case '\\1' : lcd_send_byte(10x00); break;
case '\\2' : lcd_send_byte(10x01); break;
case '\\3' : lcd_send_byte(10x02); break;
case '\\4' : lcd_send_byte(10x03); break;
case '\\5' : lcd_send_byte(10x04); break;
case '\\6' : lcd_send_byte(10x05); break;
case '\\7' : lcd_send_byte(10x06); break;
case '\\8' : lcd_send_byte(10x07); break;
default : lcd_send_byte(1c); break;
}
}


3)Artık yeni bir proje oluşturup istediğimiz gibi Türkçe karakterlerimizi yazabiliriz.Aşağıdaki örneği inceleyerek yazmaya başlayabilirsiniz.

Sadece küçük karakterler ile yazacaksak kucuk_turkce_karakterler() büyük karakterleri kullanacaksak buyuk_turkce_karakterler(); fonksiyonlarını yazmadan önce çağırmamız yeterlidir.

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include // lcd için gerekecek fonksiyonların bulunduğu dosya
void main()
{
lcd_init();//ekranımızı kuruyoruz
kucuk_turkce_karakterler();//Küçük Türkçe karakterler için fonksiyonumuzu çağırıyoruz.
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
printf(lcd_putc"Güzel Türkçe");
for(;
{}
}
------------------------------------------------------------------------

#if defined(__PCM__)
#include <16F628A.h>
#use delay(clock=4000000)
#fuses INTRC_IONOWDTNOPROTECTNOLVPNOBROWNOUT
#define use_portb_lcd TRUE //lcd bilgisi için port b'yi kullanıyoruz
#include // lcd için gerekecek fonksiyonların bulunduğu dosya
void main()
{
lcd_init();//ekranımızı kuruyoruz
buyuk_turkce_karakterler();//Büyük Türkçe karakterler için fonksiyonumuzu çağırıyoruz.
lcd_gotoxy(11);//1.satırın 1.karakterine gidiyoruz
printf(lcd_putc"DÜNYA'DA UÇMAK");
for(;
{}
}


Devre Şeması

Bu yazının artık sonuna geldiğini sanıyorum.Umarım yararlı ve anlaşılır olmuşumdur.İyi Çalışmalar Dilerim.

Sinan GÜMÜŞTEKİN
Kocaeli Üniversitesi Mekatronik Bölümü


Dosyaları Buradan İndirebilirsiniz

[Sadece Üyelere Linkler Açıktır.Üye Olun !!! Tıklayarak Üye Olun !!!]
Password : www.proelo.com
__________________
AMD FX X8 8350 Soket AM3+ 4GHz 16MB Cache 32nm İşlemci
ASUS SABERTOOTH 990FX R2.0 AMD 990FX/SB950 AM3+ DDR3 1866MHz SATA 3.0 USB 3.0 Anakart
CORSAIR 8GB (2x4GB) Vengeance DDR3 1600MHz CL9
CORSAIR 8GB Vengeance DDR3 1600MHz CL9 Siyah Tek Modül Ram
Sapphire HD7950 GDDR5 3GB 384Bit AMD Radeon DX11.1 Ekran Kartı
Turuvatek Big Tower 550 Watt (Siyah Saydam)
PIONEERNADIR isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
2x16 Lcd ıcın Yardımcı Olursanız Sevınırın scale İstek ve Sorun 0 4. January 2009 12:44 AM
ZOTAC GeForce 9800GTX Sıvı Soğutma Nick Donanım Haberleri 0 29. May 2008 06:30 PM