Şu an Topraklama Sistemleri kategorisindeki Pic isimli konuyu okuyorsunuz.
-
PIC16F877 İLE DATA BUS (VERİ YOLU) UYGULAMASI
Şekil 1
Bilgisayar veya ana makine (ana makine mikro denetleyici içeren bir kart olabilir) ile diğer uydu makinelerin haberleşmesi çeşitli yollarla gerçekleştirilebilir. Bu makineler bir fabrikadaki seri üretim makineleri olabileceği gibi bir evdeki televizyon, müzik seti, klima, fırın, ışıklar, kombi gibi ev aletleri olabilir. PIC16F877 mikro denetleyici içeren bir kontrol kartı ile uydu makinelerden bilgiler toplanabilir veya onlara komutlar gönderilerek iş yaptırılabilir. Ana makine veya bilgisayar (PC) ile uydu makineler arasındaki iletişim için çeşitli protokoller kullanılabilir. Bu protokollerden en uygunu RS232***8217;dir.
RS232 hakkında ayrıntılı bilgi için Seri Portun PIC mikro denetleyicilerle pratik kullanımı (ETMD Bizden Haberler Şubat 2004 Sayı 15), Paralel Portun Kullanımı, Seri Portun PIC mikro denetleyicilerle pratik kullanımı (http://www.etmd.org.tr/yazilar.asp ). Uydu makineler ile ana makine veya bilgisayarın birbirine bağlanmasında data bus (veri yolu) denilen bağlantılar kullanılır (Şekil 1). PIC kartları ile bilgisayar arasındaki bağlantı Şekil 2***8217;de gösterilmiştir.
Bu yazının amacı yukarıdaki şekilde görüldüğü gibi iki iletken ile bir çok mikroişlemciyi birbirine bir BUS üzerinden birbirine bağlayarak seri port üzerinden bilgisayar veya ana makine ile haberleştirmektir.
Seri port üzerinden PIC ile haberleşme bu konularla uğraşan meraklılar için önemli konulardan biridir. Bu konuya bir ışık tutmak ve amatör olarak bu işi uğraş edinen insanlara yardımcı olmak için bu küçük uygulamayı denemelerden sonra yayınlamaya karar verdim. Devre denenmiş ve çalışması kontrol edilmiştir.
Bu uygulamada bir yada birden çok PIC***8217;in iki kablo ile bilgisayar ile haberleşmesini sağlayacağız. RS232 protokolü ile haberleşme yapıldığı, için arka arkaya bağlanacak PIC sayısı kullanılacak bağlantı iletkeninin uzunluğunu 12 metre ile sınırlandırmaktadır. Eğer bu mesafenin daha uzun olması istenirse RS485 protokolü ile ( yaklaşık 800-1000 mt.) PIC***8217;ler arasında daha iyi bir Data Bus (Veri Yolu) sistemi kurulabilir.
Aşağıdaki assambly kodlar Data Bus (Veri Yolu) sisteminin birinci PIC***8217;in kodlarıdır.
Özetle çalışma sistemi şöyledir: Kodlar PIC16f877***8217;ye doğru yüklenip devre doğru kurulduğunda bilgisayarın klavyesinde ***8220;1***8221; tuşuna basıldığında uydu makinedeki PIC mikro denetleyici
DT"<** Su anda klavyede 1 tusuna bastiniz **>"
Satırında yazılı olan bilgiyi Hyper teminale gönderecektir. Hyper terminalde aşağıdaki yazı görünecektir.
<** Su anda klavyede 1 tusuna bastiniz **>
***8220;1***8221; değerini PIC aşağıdaki satır ile anlamakta, gönderilen değeri bu satır ile karşılaştırdıktan sonra gelen değerin kendisine gönderdiğini anlayıp DT satırındaki değeri hyper terminalle göndermektedir.
SUBLWD'49';klavyeden gönderilen 1***8217;in ascii karşılığı 49***8217;dur.
BUS sistemine 2. işlemcisine aşağıdaki kodlarda şu değişiklikler yapılarak 2. işlemci programlanır.
SUBLWD'49'
satırındaki 49 yerine ***8220;2***8221; nin ascii değeri olan 50 yazılmalı yani bu satır
SUBLWD***8217;50***8217; ile değiştirilmelidir.
DT"<** Su anda klavyede 1 tusuna bastiniz **>"
Satırı yerine 2. PIC***8217;in göndereceği satır ise
DT"<** Su anda klavyede 2 tusuna bastiniz **>"
Şeklinde değiştirilmelidir.
Diğer BUS sistemindeki PIC16f877***8217;ler içinde buna uygun değişiklikler yapılarak istenildiği kadar işlemci BUS sistemine bağlanabilir.
Diyelim ki 3 16F877 bağladınız durumda:
Klavyeden ***8220;1***8221; tuşuna bastığınızda hyper terminale
DT"<** Su anda klavyede 1 tusuna bastiniz**>" bilgisi
Klavyeden ***8220;2***8221; tuşuna bastığınızda hyper terminale
DT"<** Su anda klavyede 2 tusuna bastiniz**>" bilgisi
Klavyeden ***8220;3***8221; tuşuna bastığınızda hyper terminale
DT"<** Su anda klavyede 3 tusuna bastiniz**>" bilgisi
gönderilecektir.
Not:
1 ascii değeri 49
2 ascii değeri 50
3 ascii değeri 51
PROGRAM
;Windows hyper Terminali 19200 bps, N,8,1 ile bilgi gönderme bu göndermede el sıkışması YOK olarak
; Program adı : Seri port üzerinden birden çok PIC ile haberleşme.
LISTP=16F877,C=140
ERRORLEVEL1,-(305)
#INCLUDE"P16F877.INC"
__CONFIG _PWRTE_ON&_XT_OSC&_LVP_OFF&_WDT_OFF
TEMPEQU7FH
SAYAC1EQU8FH
ORG0;program başlangıç satırı
GOTOMSTART
MSTART
BCFSTATUS,RP1
BCFSTATUS,RP0;BANK0 geç.
MOVLW0X00
MOVWFPORTA
MOVWFPORTB
MOVWFPORTC
MOVWFPORTD
MOVWFPORTE
BCFSTATUS,RP1
BSFSTATUS,RP0;BANK1 bank geç.
CLRFTRISA
CLRFTRISD
CLRFTRISE
MOVLW0XFF
MOVWFTRISB
MOVLW0XFF
MOVWFTRISC
; Baud Values with BRGH = 0
; ((20000000/9600)/64)-1 = 32
;movlwd'6'; 9600 baud @ 4 Mhz Fosc brgh=0
;movlwd'25'; 9600 baud @ 4 Mhz Fosc brgh=1
;movlwd'207' ; 1200 baud @ 4 Mhz Fosc brgh=1
;movlwd'2272' ; 110 baud @ 4 Mhz Fosc brgh=1
;movlwd'103'; 2400 baud @ 4 Mhz Fosc brgh=1
;movlwd'52'; 4800 baud @ 4 Mhz Fosc brgh=1
;movlwd'12'; 19200 baud @ 4 Mhz Fosc brgh=1
MOVLWD'12';19200 BAUD AT 4 MHZ FOSC
MOVWFSPBRG
MOVLWB'00100100'
MOVWFTXSTA;Enable Async Transmıssıon,Brgh=1 Hıgh Speed
BCFSTATUS,RP1
BCFSTATUS,RP0;BANK0
MOVLWB'10010000'
MOVWFRCSTA;ENABLE ASYNC RECEPTION
CLRF TEMP
SETTLE
DECFSZ TEMP
GOTOSETTLE
MAIN
CLRFTEMP
CALLRXLOOP
SUBLWD'49';klavyeden gönderilen 1***8217;in ascii karşılığı 49***8217;dur.
BTFSCSTATUS,Z
CALLPRN
GOTOMAIN
PRN
MOVFTEMP,W
CALLTABLE
CALLTXLOOP
INCFTEMP,F
SUBLWD'62'; '>' GREATER SYMB
BTFSSSTATUS,Z
GOTOPRN
CALLTAB
MOVFPORTB,w
CALLTXLOOP
CALLENTER
CALLLF
RETURN
ENTER
MOVLWD'13';code for return
CALLTXLOOP
RETURN
TAB
MOVLWD'9';code for tab
CALLTXLOOP
RETURN
LF
MOVLWD'10';code for linefeed
CALLTXLOOP
RETURN
TXLOOP
NOP
BTFSSPIR1,TXIF; Verinin hazır olup olmadığı kotrol edilir.
GOTOTXLOOP
MOVWFTXREG; giriş verisi W registerine aktarılır.
RETURN
RXLOOP
NOP
BTFSSPIR1,RCIF
GOTORXLOOP
MOVFRCREG,W
RETURN
TABLE
ADDWFPCL,F
DT"<** Su anda klavyede 1 tusuna bastiniz: haberlesme icin**>"
RETURN
END
UYGULAMA DEVRESİ
Şekil 2
Yazan :Galip KILIÇ
galip@istanbulcorap.com.tr
Konu Bilgileri
Users Browsing this Thread
Şu an 1 kullanıcı var. (0 üye ve 1 konuk)
Bu Konudaki Etiketler
Yetkileriniz
- Konu Acma Yetkiniz Yok
- Cevap Yazma Yetkiniz Yok
- Eklenti Yükleme Yetkiniz Yok
- Mesajınızı Değiştirme Yetkiniz Yok
-
Forum Kuralları