seri haberleşme 16f628a uart

mali1554

Üye
Katılım
27 Tem 2013
Mesajlar
24
Puanları
1
Yaş
34
selamul aleykum..
628a ile seri haberleşmeyi nasıl yapacam arkadaşlar yazılımsalda yapabilirmıyım veya hazır registirları nasıl kullnacam hangi registirleri kullnacam nasıl yapacam sabhtan beri araştırıyorum bir güzel dokuman bulamadım.... bide seri haberleşme kayan yazılardada
kullanılırmı .........
teşekurler şimdiden...
 
selam ben pic basic kullanıyorum bu konuda tam olarak ne yapacaksın biraz bahsetsen daha iyi olacaktır.
aşağıda 628a nın uart portlarından kesme ile gelen bilgiyi alırsın ve keseme etiketinde yapmak istediğin işlemleri gerçekleştirebilirsin

program başlangıcı.

include "modedefs.bas"
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25 ' 9600 Baud @ 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically


SYMBOL GIE =INTCON.7 'genel interruptları açıyor
SYMBOL PEIE =INTCON.6 'peripheralinterruptları açıyor
SYMBOL RCIE =PIE1.5 'USART Recive interrupt enable bit
SYMBOL RCIF =PIR1.5 'USART Receive interrupt flag bit
cmcon = 7
RCIE=1
PEIE=1
GIE=1
'*
'trisb=%00000010 *yukarıdaki kodlar ile 9600 baud da portu ayarlıyorsun
portb=%00000010
'*
ON INTERRUPT GOTO INT '"dışarıdan bilgi gelirse INT etiketine kesme olur"
gelen var byte
'*
basla:
pause 100 '*burada normal program kodların yer alacak
goto basla

'*
DISABLE 'kesme gerçekleştiği andan itibaren tekrar kesmenin oluşmaması için kesmeler iptal edilir
INT:
GIE=0
hserin [gelen] 'rx bacağından alınan veri gelen değişkenine alınır.
pause 2
hserout [gelen] 'tx pininden gelen veri tekrar geri gönderilir.
'*
'* buraya veri geldiğinde yapmak istediğin diğer kodları yazabilirsin
'*
RCIF=0
GIE=1
Resume
enable 'kesmeler aktif


bu kodlar ile rx e gelen veri tx den gönderilerek deneme yapabilirsin
 
selam ben pic basic kullanıyorum bu konuda tam olarak ne yapacaksın biraz bahsetsen daha iyi olacaktır.
aşağıda 628a nın uart portlarından kesme ile gelen bilgiyi alırsın ve keseme etiketinde yapmak istediğin işlemleri gerçekleştirebilirsin

program başlangıcı.

include "modedefs.bas"
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25 ' 9600 Baud @ 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically


SYMBOL GIE =INTCON.7 'genel interruptları açıyor
SYMBOL PEIE =INTCON.6 'peripheralinterruptları açıyor
SYMBOL RCIE =PIE1.5 'USART Recive interrupt enable bit
SYMBOL RCIF =PIR1.5 'USART Receive interrupt flag bit
cmcon = 7
RCIE=1
PEIE=1
GIE=1
'*
'trisb=%00000010 *yukarıdaki kodlar ile 9600 baud da portu ayarlıyorsun
portb=%00000010
'*
ON INTERRUPT GOTO INT '"dışarıdan bilgi gelirse INT etiketine kesme olur"
gelen var byte
'*
basla:
pause 100 '*burada normal program kodların yer alacak
goto basla

'*
DISABLE 'kesme gerçekleştiği andan itibaren tekrar kesmenin oluşmaması için kesmeler iptal edilir
INT:
GIE=0
hserin [gelen] 'rx bacağından alınan veri gelen değişkenine alınır.
pause 2
hserout [gelen] 'tx pininden gelen veri tekrar geri gönderilir.
'*
'* buraya veri geldiğinde yapmak istediğin diğer kodları yazabilirsin
'*
RCIF=0
GIE=1
Resume
enable 'kesmeler aktif


bu kodlar ile rx e gelen veri tx den gönderilerek deneme yapabilirsin

cok sağol


ben asmbly kullanıyorum asm kodalar var paylaşa bilirmisin yoksada sağolasın bilgi paylşaştığın için..
 

Forum istatistikleri

Konular
127,947
Mesajlar
913,816
Kullanıcılar
449,592
Son üye
E.E.M.

Yeni konular

Geri
Üst