max232 sız vb10 ile Serı port haberlesme (RS_232)

Başlatan murkofiliz, 16 Aralık 2013, 19:13:45

murkofiliz

Serial_Port_Murat2.rar

arkadaslarlar rarın ıcınde vb10 kodu, pbp dosyası, hex kodu ve ısıs sımulasyon ve sanal com port prog mevcut lakın calısmadı bı turlu muhtemelen php den dolayı. Cunku ısıste  vb 10 dan rx e bılgı geldıgını goruyorum ama 877a ya ıslem yaptıramıyorum bu konuda daha once calısmıs mutlaka arkadaslar vardır yardımlarınızı beklıyorum

kudretuzuner

Amatör

murkofiliz

#2
hocam linki yeniliyorum

mesaj birleştirme:: 16 Aralık 2013, 21:21:24

Serial_Port_Murat2 (1).rar

kudretuzuner

#3
Merhaba,
Arkadaşım bildiğim kadarı ile 4Share mahkeme kararı ile kapalı DNS ayarlarını falan değiştirip ulaşmak mümkün ama değmez.dropbox,rapidshare,vs ile yüklerseniz daha iyi olacak.Teşekkürler.
Ayrıca merak etmemin nedeni ise max232 kullanmadan PC ile PIC'i nasıl haberleştireceğiz?PC'deki  TX çıkışı     -10volt ile -12 volt arasıdır.PIC ise +5 volt ile çalışır.Bu voltaj dönüştürücüsü olmadan nasıl olacak?
Amatör


kudretuzuner

Merhaba,
Evet,izledim.Aklıma şöyle bir şey geldi İSİS simulasyonlarda bazı değerleri gözardı edebilir diye biliyorum.Profesyonel arkadaşlar daha doyurucu bilgi vereceklerdir tahmin ediyorum.Ama protoborda kurarsanız yukarıda bahsettiğim PC TX çıkış ile PIC'e giriş voltajları hem değer olarak hem de polarite olarak farkları vardır,çalışacağını hiç tahmin etmiyorum.
Amatör

murkofiliz

haklısın hocam bende anlamadım zaten ben aynı sekılde kurdum benım proteusta calısmadı galıba benım prograram daha gercekcı calısıyo aynen dedıgın gıbı max 232 ıle calısmaya karar verdım yalnız burda olcme yapıyorum ornen pc den 1 gonderdıgımde max ın cıkısından g alıyorum pekı benım pıc e dırek "g" dıyemı gırmem lagzım

Maxim

simulasyonda hata var
compim ile virtual terminal ayakları aynı olmayacak

compim txd -> virtual terminalde rdx olması gerekir
daha doğrusu
pic tx -> compim txd -> virtual terminal rxd
pic rx -> compim rxd -> virtual terminal txd

murkofiliz

Oncelikle ilgilendiniz icin hepinize cok tessekkur ederim hocam siz diger arkadasa katiliyomusunuz, bana cok mantikli geldi ve denedim ama pic sapitti tabi haliyle. Programda yazdigim coda "R" gonder diyorum terminalle bakiyorum ok "R" goruyorum max232nin cikisindan ise "g" karakteri cikiyo tabi haliyle pbp e yazdigim koda karsilik gelmiyo haliyle pic sapitiyo kisacasi sorum su olucak pc ile pic nasil bir dil kullanmaliyim ki busekilde haberlesmeyi sagliyayim

murkofiliz

@ DEVICE pic16F877A
@ DEVICE pic16F877A,WDT_ON
@ DEVICE pic16F877A,PWRT_ON
@ DEVICE pic16F877A,PROTECT_OFF
@ DEVICE pic16F877A,XT_OSC

CMCON=7

DEFINE OSC 4
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 25

INCLUDE "modedefs.bas"
TRISB=$00
TRISC=$80

TX VAR PORTC.6
RX VAR PORTC.7
SERIAL_DATA VAR BYTE
I VAR BYTE

PORTB=0
PORTC=0


MAIN:
SERIN RX,T9600,SERIAL_DATA
IF SERIAL_DATA="g" THEN
FOR I=7 TO 0 STEP -1
PORTB.0[I]=1
PAUSE 300
PORTB.0[I]=0
NEXT I
ENDIF

IF SERIAL_DATA="2" THEN
FOR I=0 TO 7
PORTB.0[I]=1
PAUSE 300
PORTB.0[1]=0
PAUSE 300
NEXT I
ENDIF

IF SERIAL_DATA="3" THEN PORTB=$FF
IF SERIAL_DATA="4" THEN PORTB=0
GOTO MAIN
END




arkadaslar oncelıkle merhaba aslında bukadar olmasada olur sızden rıcam sadece pcden A geldıgınde 1. ledı yakan B geldıgınde 2 ledı yapık 1. sonduren C geldıgıne 3 ledı yakıp 2 yı sonduren bı kod yazabılırmısınız  nerdeyse 2 hafta oldu cıldıracam su haberlesmeyı bı yapabılsem gerısı gelıcek sımdıden tesekkurler

Maxim

koda ilk defa baktım
öncelikle siz hardware serial tanımlaması yapmışsınız ama yazılım seri komutu kullanmışsınız.
yani bu satırların serin komutu için bir anlamı yok
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 25


hserin komutu donanım
serin komutu ise yazılımsal seri komuttur

help dosyasına bakacak olursak
SERIN Pin,Mode,{Timeout,Label,}{[Qual...],}{Item...}

bu şekilde bir kullanımı varmış
burada "mode" hangi baudrate hızında olduğunuzu tanımlar
siz T9600 seçmişsiniz tamam
birde "state" tanımı var

state: true veya inverted data demek
yani pc den gelen bilgiler için belkide inverted seçmek lazım
o yüzden şunu deneyin bir: N9600

ben proton kullandığım için fazla bilemiyorum onda daha farklı




murkofiliz

#11
hocam gercekten cok tessekkur ederım ete hocam cozdu konuyu sagolsun allah sızı ve sızın gıbılerı eksık etmesın basımızdan

murkofiliz

arkadaslar merhaba
          sımulasyonda compım secıp bagladıgımızda cıkısları olctugumde  (rx)ve (tx) +4.95 v simetrik  veriyo araya max 232 atınca tabikide voltaj aynı oldugu ıcın sadece max entegreyı beslıyo ve halıyle pıc e cıkıs vermıyo sımulasyonda boyle ayarlamıslar tabıkı bu ıs gercekte boyle olmıyacak mecburen max 232 baglamak gerekecek sımulasyonda com cıkısı aynı usb port gıbı simetrik +5 volt veriyo o nedenle bu tip projelerle ugrasan arkadaslar tavsiyem simulasyonda max 232 kullanmasınlar eger scadayı kendılerı yazıp virtual terminal yerıne compım ıle calısıyolarsa  tekrar soyluyorum max 232 gerekyok lakın bunu vırtual termınalle sadece pıc denemek ıcın bılgı gonderıyolarsa gerek var cunku virtual termınalın cıkısıda rx ve tx deki cıkısın voltajının degerını olcsenızde deger gostermıyo buda demek oluyo kı bu voltaj normal babalar gıbı + / - 12 v  oldugundan normal pc cıkısı gıbı calısyo  yardımcı olabıldıysem ne mutlu bana