AD Girişleri ve giriş bağlantısı

hamdisuat

Üye
Katılım
26 Eyl 2011
Mesajlar
188
Puanları
1
Yaş
66
AD uygulamasında bütün B "port"ları LCD için kullanılabilir mi (örnek:
D4 -------> pin_b0
D5 -------> pin_b1
D6 -------> pin_b2
D7 -------> pin_b3
e -------> pin_b4
rs -------> pin_b5

AN girişlerine 10K uçları +5V ve gnd bağlı ve 1K trimpot üzerinden +5V girişi doğru bir bağlantı mıdır?

(LCD'ye AN girişleri yazdırılacak-3 adet giriş var-Sn Serdar Çiçek'den alıntı-ADC1 uygulaması)
Teşekkür Ederim.
 
LCD için B'de sadece 1 ve 7 portlarını ve diğer LCD bağlantıları için c ve d portlarını da kullandığımda ve AN0 pini de giriş yapılarak devre Digital çıktıyı veriyor ancak aynı dosyaya portları yukarıdaki gibi yüklediğim zaman sonuç alamadım.
 
serdar hocanın kitabındaki lcd dosyasını bilmiyorum. ama muhtemelen ; pinleri kaydırdığın için lcd ye anlayacağı bir bilgi gönderemiyoprsundur. mesela lcd ye "1100" bilgisi yerine pinleri değiştirirsen; "1001" "0011" .... bilgilerini gönderirsin. data uçlarından bahsediyorum. diğer uçları hesap bile etmeye bile gerek yok.

kullanacağın lcd 2x16 ise 4 data pinini kullanacaksan eger aşağıdaki lcd dosyasını kullan istediğin pini "" #define d4 pin_xx "" yazan tanımlamalarda belirt.

kolay gelsin.






////////////////////////////////////////////////////////////////////////////////
// TR_LCD.c /////
// /////
// Bu LCD sürücü dosyası 2x16 HD44780 uyumlu LCD’ler /////
// içindir. LCD’ye sadece yazma yapılacağı için R/W Logic0 /////
// konumunda durması için şaseye bağlanmalıdır. /////
// lcd_ayarla(); bu komut LCD'nin başlangıç ayarlarını yapmak içindir. /////
////////////////////////////////////////////////////////////////////////////////
// lcd_sil(); bu komut Lcd'yi silmek için kullanılır. /////
////////////////////////////////////////////////////////////////////////////////
// adres(x,y); komutuyla imleç istenilen adrese getirilebilir. /////
// Bu komutta y satır bilgisini, x sütun bilgisini ifade eder. /////
////////////////////////////////////////////////////////////////////////////////
// lcd_yaz(" "); komutuyla iki tırnak arasına sadece yazısal ifadeler /////
// kullanılabilir.Örneğin bu komutla %sabitleri kullanılamaz. /////
////////////////////////////////////////////////////////////////////////////////
// printf(lcd_yaz," "); komutuyla yazılar hemde değişkenler /////
// gösterilebilir. %sabitleri kullanılabilir.Ancak \sabitleri kullanılamaz /////
////////////////////////////////////////////////////////////////////////////////
// İstenilen pinler aşağıdaki define tanımlamalarından ayarlannabilir. /////
// LCD..pin..bağlanılacak pin /////
////////////////////////////////////////////////////////////////////////////////


#define d4 pin_xx
#define d5 pin_xx
#define d6 pin_xx
#define d7 pin_xx
#define e pin_xx
#define rs pin_xx


void data_tara(byte dsg)
{
output_bit(d4,bit_test(dsg,0));
output_bit(d5,bit_test(dsg,1));
output_bit(d6,bit_test(dsg,2));
output_bit(d7,bit_test(dsg,3));
}


////////////////////////////////////////////////////////////////////////////////


void lcd_command(byte m)
{
data_tara(m>>4);
output_bit(rs,0);
delay_cycles(1);
output_bit(e,1);
delay_cycles(1);
output_bit(e,0);
delay_ms(2);


data_tara(m&0x0F);
output_bit(rs,0);
delay_cycles(1);
output_bit(e,1);
delay_cycles(1);
output_bit(e,0);
delay_ms(2);
}


////////////////////////////////////////////////////////////////////////////////


void lcd_yaz(byte k)
{
data_tara(k>>4);
output_bit(rs,1);
delay_cycles(1);
output_bit(e,1);
delay_cycles(1);
output_bit(e,0);
delay_ms(2);


data_tara(k&0x0F);
output_bit(rs,1);
delay_cycles(1);
output_bit(e,1);
delay_cycles(1);
output_bit(e,0);
delay_ms(2);
}


////////////////////////////////////////////////////////////////////////////////


void adres(byte x, byte y)
{
if (y==1)
lcd_command(0x80|(x-1));


if (y==2)
lcd_command(0x80|(0x40+(x-1)));
}


////////////////////////////////////////////////////////////////////////////////


void lcd_ayarla()
{
int j=0;
output_bit(rs,0);
output_bit(e,0);
delay_ms(30);

for(j=0;j<=3;j++)
{
lcd_command(0x03);
delay_ms(5);
}

lcd_command(0x02);
lcd_command(0x28);
lcd_command(0x08);
lcd_command(0x0C);
lcd_command(0x06);
lcd_command(0x01);
}


////////////////////////////////////////////////////////////////////////////////


void lcd_sil()
{
lcd_command(0x01);
}


////////////////////////////////////////////////////////////////////////////////
 
"define lcd_DATA_port getenv()" ve "LCD_DATA4 pin_" ile deneyeceğim eğer benim hatam yok ise
"#define d4 pin_xx" bu kodla olmuyor proteus kullanmayı bilmediğim için de emin olamadım. Denerim çok sağolun size de kolay gelsin üstat.
 
lcd tamamı b portuna bağlandı, enable b0 bağlantısı ile "d4 pin_xx" komutu çalıştı yardım için teşekkür.
 

Forum istatistikleri

Konular
127,963
Mesajlar
913,927
Kullanıcılar
449,609
Son üye
cherrywine

Yeni konular

Geri
Üst