Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Harici modem ve pic

Başlatan igolcubasi, 14 Eylül 2004, 16:56:35

igolcubasi

Harici modemle pic 16f877 yi haberleştirmek istiyorum.
Donanım olarak ne kullanmalıyım.Max 22 gereklimi?
Yardımlarınız için teşekkür ederim.

igolcubasi


axanc

harici modem dediğin bilgisayar'a rs232 ile bağlanıyorsa, sen de o bağlantıyı PIC'in anlayacağı duruma getirmek için max232 kullanmalısın...
Uzmanlık: Bilgisayar Müh. öğrenci Derleyici: PicBasic Pro Compiler Ver. 2.45 Program: Proteus 6.2.5 ve MCSP

igolcubasi

axanc dostum yardımın için teşekkürler.Picbasic ile seri porttan okuduğum
bir stringi diğer stringle nasıl karşılaştırabilirim.

Veli B.

dizi kaç bitlik?
bir de 2. dizinin kaynağı nedir?

cozturk

Arkadaşlar bu max 232 her zaman gerekmeyebilir. Şöyle ki bu entegre picten gelen 0-5V arası gerilimi 0-12V şeklinde porta gönderiyor, aynı şekilde oradan gelen 0-12 v'u da 0-5V olarak pice gönderiyor.
Alıntı yapılan: "Melabs"
...most applications don't require level converters. Rather, inverted TTL (Mode bit 14 = 1) can be used. A current limiting resistor is suggested (RS-232 is suppose to be short-tolerant).

igolcubasi

Dizinin kaynağı harici modem.Seri porttan (RS232) picin seri portuna bağlanacak.Veri 8 bit.Modemden gelen bir string eldeki bir stringle karşılaştırılacak.OK ise şunu yap RESPONSE ise bunu yap gibi.İlginiz ve yardımlarınız mesleki terbiyenizden,sağolun.

mmengi

Hocam bu string meselesi için ya Proton+ 2.20 beta yada C derleyicisi kullanman gerekecek sanırım. Bu işi Pbp ile yaptırman zor olabilir.

igolcubasi

sevgili mmengi, proton ile basit bir örnek verebilirmisiniz.

mmengi

Burada sadece iki string karşılaştırılmış.rsr232 ile ilgili işler yok.Bir sorun var 16bitlik pic kullanman gerekecek  :cry:

DEVICE = 18F452               ' Must be a 16-bit core device for Strings 
DIM STRING1 as STRING * 20    ' Create a String capable of holding 20 characters 
DIM STRING2 as STRING * 20    ' Create another String capable of holding 20 characters    
    
CLS 
STRING1 = "EGGS"               ' Pre-load String STRING1 with the text EGGS 
STRING2 = "BACON"              ' Load String STRING2 with the text BACON 

IF STRING1 = STRING2 THEN      ' Is STRING1 equal to STRING2 ? 
PRINT AT 1,1, "EQUAL"          ' Yes. So display EQUAL on line 1 of the LCD 
ELSE                           ' Otherwise 
PRINT AT 1,1, "NOT EQUAL"         ' Display NOT EQUAL on line 1 of the LCD 
ENDIF 

STRING2 = "EGGS"               ' Now make the strings the same as each other 
IF STRING1 = STRING2 THEN         ' Is STRING1 equal to STRING2 ? 
PRINT AT 2,1, "EQUAL"          ' Yes. So display EQUAL on line 2 of the LCD 

ELSE                           ' Otherwise 
PRINT AT 2,1, "NOT EQUAL"      ' Display NOT EQUAL on line 2 of the LCD 
ENDIF 
STOP

Veli B.

Burada sanırım bir karmaşa var.Benim diziden anladığım sürekli olarak farklı değerler alabileceğidir.Burada ise sanırım 3 veya 4 tane 1 bytelık kalıplar ile dışarıdan gelecek diziler karşılaştırılacak.Bu durumda karşılaştırma sayısı max kalıp sayısı kadar olur.
Eğer doğru anladı isem if then ile gayet kolay yapılabilir.Sanırım biraz daha açıklama daha sağlıklı bir çözüme götürecek.

mmengi

hocam tam ne anlatmak istediğini anlamadım ama burada ki olay sadece string karşılaştırmak bunuda bir dizi gibi düşün ayrıca dizi tanımıda var usarttan gelen datayı diziye atabiliyorsun.Eğer programın help kısmına bakarsanız eminim daha aydınlatıcı olacak.bu string tanımı sadece 2.20 beta da var, 2.1.3 te dizi tanımı var gerçi ikiside aynı şey gibi ama.

Veli B.

Halen pbp kullanıyorum.Ne yazık ki şuan için proton helpi inceleyemiyorum.
Dizi konusuna gelince;
dizi örneğin 8 bitlik 4 karakterden oluşuyor, bu durumda dizi boyutunu zaten başta [4] tanımlıyoruz değil mi?Karşılaştırmadan  kastım ise eprom yada benzer bir ortam içerisine gömülmüş yine 8*[4] lük bir yada bir kaç  blok ile dışarıdan alınacak olan 8*[4] lük datanın karşılaştırılması değil mi?
Uyan sonuca göre ise şartlı bir rutini çalıştırmak.Anlatmak istediğim bu idi.Eğer buysa AND ile ve sonrasın da ise if then ile çözülebileceğini düşünüyorum.

mmengi

evet hocam dediğin gibi gerçi ben denemedim ama şöyle oluyor, string tanımladığın değişken 10 karakter olsun 8bitx10, senin içine koyduğun değer diyelim 5 karakter bu 5 karakterden sonra null karakter geliyor dolayısıyla sen bunu 3 karakterlik bir diziyle karşılaştırdığında ilk beş karakteri bu 3 karakterle karşılaştırmış oluyorsun.illada senin içine koyacağın kadar string tanımlaman gerekmiyor.zaten yukarıda karşılaştırma yapılan değerler 4 ve 5 karakterlik ama string tanımları 20 karakter.

igolcubasi

Sevgili dostlar;
Yardımlarınız için teşekkür ederim.
Bilgi paylaştıkça çoğalır.İnsan paylaştıkça erdemleşir.Sağolun varolun.