Pic ve Seri Port Haberleşmesi

pikacuya tsk etmek icin üye oldum..gercekten cok güzel bilgi paylaşmış.

ben de sıra numarası alma amacı ile bir dügmeye basıldıgında bilgisayarda o dügmeye basıldıgını anlayip , son sıra numarası degerini döndermek icin bir uygulama yapmak istiyorum.
acaba dogru yerdemiyim ?
 
Dostum mükemmelsin bir konu ancak bu kadar anlaşılır ve güzel anlatılır.
Bilgine misli misli bilgi katasın emeğine sağlık.


kardesım gercekten guzel ve anlasılır. fakat pıc e proton IDE ILE nasıl bır komut yazarak bu bılgıyı gonderıp yada okuya bılırız
 
Peki ya Java? Java'da bu tip işlemleri yapmak kolay mıdır?
 
SpO2(insan kanondaki oksijen miktarını ölçen sensör)sensörden gelen saniyedeki 3bytelık verinin 3. byteını pIC'e almam gerekiyor, Spo2 sensör sn'de 3byte veri gönderiyor ve RS232 portu var buradan alacağım C dilinde bunun programlamasını nasıl yapabilirim yardım lütfen
 
pic_achu hocam çok teşekkür ederim. çok açıklayıcı bilgi oldu.
 
sn has_artvin_li seri iletişim ile ilgili ansiklopedik bilgileri netten bulursun ben genel olarak sana şöyle anlatim seri iletişim bitleri tek hattan göndermeyle olur
asenkron ve senkron iletişim vardır asenkron iletişim senkrona göre daha yavaştır çünkü bitlerin yanında bir start bir de stop biti kullanılır seri porttan asenkron olarak iletişim yapıyoruz senkron ise fazladan bir clock hattı start ve stop bitinin yerine kullanılır.

bizim yaptığımız iletişim asenkron olduğu için zamanlamalara yani baudrate (bit hızı) e dikkat etmek gerekir
örn 2400 baud için her bitin süresi 417 us dir (1/2400 sn)
donanımsal olarak asenkron kullanımı daha güvenlidir çünkü yazılımsal da komutların gecikmesi de bu süreyi uzatabilir bunlar gözardı edilmemelidir
asenkron veri göndermeden önce stopbiti olan sürekli lojik 1 (high) ilk 0 düştüğünde start biti dir veri
gönderilmeye başlanır sonra belli bir süre yine 1 yapılarak stop biti 1 gönderilerek verinin gönderildiği bildirilir.

şimdilik bu kadar
kolay gelsin




ya benimde bir sorunum var ama tamda senin konunla ilgili olan PIC. ya döngüde problem yaşıyorum yapmak istediğim matlabda yazmış olduğum programda ilk dört harfi tanıttım şimdi onları sese dönüştürmek bu yüzden bir pıc ve ısd2560 ses kayıt entegresi falan kullancağım ama programda sorun yaşıyorum. porta'ya A bilgisimi B bilgisimi Cbilgisi mi yoksa D bilgisimi geldi demek. eğer A ise ISD2560'a A bilgisi göndersin falan. ancak döngü oluşturamıyorum. yardımcı olabilirmisin??
şimdiden teşekkrü ederim.


list P=16f628
status equ 03h
porta equ 05h
portb equ 06h
trisa equ 85h
trisb equ 86h
clrf porta
clrf portb
bsf status,5
bsf trisa,1 ; porta'nin birinci bitini giriş seçtim.

movlw 00h
movwf trisb ; portb'yi de çıkış seçtim

bcf status,5
??
 
ya benimde bir sorunum var ama tamda senin konunla ilgili olan PIC. ya döngüde problem yaşıyorum yapmak istediğim matlabda yazmış olduğum programda ilk dört harfi tanıttım şimdi onları sese dönüştürmek bu yüzden bir pıc ve ısd2560 ses kayıt entegresi falan kullancağım ama programda sorun yaşıyorum. porta'ya A bilgisimi B bilgisimi Cbilgisi mi yoksa D bilgisimi geldi demek. eğer A ise ISD2560'a A bilgisi göndersin falan. ancak döngü oluşturamıyorum. yardımcı olabilirmisin??
şimdiden teşekkrü ederim.


list P=16f628
status equ 03h
porta equ 05h
portb equ 06h
trisa equ 85h
trisb equ 86h
clrf porta
clrf portb
bsf status,5
bsf trisa,1 ; porta'nin birinci bitini giriş seçtim.

movlw 00h
movwf trisb ; portb'yi de çıkış seçtim

bcf status,5
??

Kardeş Sen programı ASM dili ile yapıyorsun işinde çok zor Allah kolaylık versin ;)

Ama dersen ki Kardeş en kolayı hangisi ise onu deneyelim o zaman proton basicden yazar işini çözeriz elimizden geldiği ve zamanımız yettiğince...
 
harbimi ya, çok teşekkür ederim..
bende farkettim gerçekten benim işim çok zor vazgeçtim zaten ASM den bir türlü tutturamadım kodları falan. C'ye yönelecekti şimdi ama diyorsanki proton basic!!!
ee proton basicten yazsak çok zor olurmu peki yapabilir miyiz??
 
Hee harbii yaa ....


Kaynağı çoktur bu protonun ama sen öğrenceksen C öğren protondan daha kaliteli bir dilmiş şahsen ben bilmek istiyorum ama bi türlü öğrencek zamanım olmadı...
 
Kardeş öyle desene ;D mscomm ile ilgili takıldığın yerler varsa sorarsın kullanımı şöyle: ;)


MSCOMM Seri iletişim kontrolü:

Bu kontrolü kullanabilmek için araç kutusuna sağ tıklayıp Components i açın
Sonra mscomm control yanındaki kutucuğu işaretleyip projeye ekleyin

1.CommPort
Kullanılacak com portunun numarası bildirilir

Kod:
MSComm1.CommPort = 2        ‘COM2 yi kullan


2.Settings
Kullanılacak com portun ayarları yapılır

Kod:
MSComm1.Settings = “9600,N,8,1”        ‘Hız, Parity, Data uzunluğu, Stop biti


3.PortOpen
True değeri verilince kullanılacak portu açar
False değeri verilince kullanılacak portu kapar
Kod:
MSComm1.PortOpen = True        ‘Com portu aç


4.Input
Comm porttan bilgi okunur
Porta gelen ve buffer da bekleyen bilgi bu özellikle öğrenilir.

Kod:
Text1.Text = MSComm1.Input        ‘Textbox a gelen bilgiyi yaz


5.Output
Comm porta bilgi yazılır

Kod:
MSComm1.Output = “Merhaba”        ‘seri porttan Merahaba bilgisini gönder

6.InputLen
Porta gelen bilgiler alınıncaya kadar Buffer da tutulur. InputLen özelliği ile okuma yapılırken
Kaç karakterlik bloklar halinde okuma yapılacağı belirlenir. Bu özelliğe 0 verilirse Bufferdeki
Tüm karakterler tek seferde okunur.

Kod:
MSComm1. InputLen = 1        ‘1 karakterlik blok halinde buffer dan bilgi oku
MSComm1. InputLen = 0        ‘Bufferdaki tüm karakterleri oku

7.InputMode
Text modunda gelen bilginin ascii karşılığı olan karakter olarak okuma yapılır
Binary modunda gelen bilginin binary karşılığı olan bir bytelık bilgi olarak okuma yapılır

Kod:
MSComm1. InputMode = 1            ‘ text modunda bilgi okur

MSComm1. InputMode = 0            ‘ binary modunda bilgi okur

8.InBufferSize

Normalde Buffer uzunluğu 1024 byte ve buffer dolmadığı sürece problem çıkmaz.
Eğer bu değer yeterli değilse InBufferSize özelliği ile buffer belleği artırılabilir.
Kod:
MSComm1.InBufferSize = 2048    ‘Buffer belleği 2048 byte


9.InBufferCount
Bufferde bekleyen karakter sayısı bu özellikle öğrenilir.
Okuma yapmadan önce bu özelliğe bakılarak buffer de bekleyen karakterlerin olup olmadığını anlayabiliriz. Ayrıca bu özelliğe 0 verilirse buffer temizlenir

Kod:
MSComm1.InBufferCount = 0    ‘Buffer belleği temizle

Text1.Text = MSComm1.InBufferCount     ‘Buffer da varsa bekleyen karakter sayısını textbox a yaz





kardeş merhaba, ben pic basic pro biliyorum yeticek kadar.. benim seri porttan pic'e bilgi göndermem lazım gönderdiğim bilgiye göre de pic port'larından çıkış vericek ,, yani şöyle 1'e tıkladığım zaman porta.1 çıkış vericek bir daha bastığım zaman kapanıcak.. bu şekilde 360 adet çıkışa ihtiyacım var ,, 16f877 kullanıcam bunu nasıl yazabilirim ,, yardımcı olur musun ?? şimdiden teşekkür ederim...
 

Forum istatistikleri

Konular
129,834
Mesajlar
930,598
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Geri
Üst