Forum TR
Go Back   Forum TR > Bilgi Bankası (Databank) (Ödev) > Üniversite Bilgileri
ForumTR'ye Reklam Vermek İçin Tıklayınız: network@frmtr.com
Üniversite Bilgileri Üniversite Bilgi Paylaşım Forumu

Cevapla
 
Konu Araçları
Eski 04-12-07, 00:34   #1 (permalink)
Konya'nın Gokkuşagı ♪♪♪
 
Giriş Tarihi: 03-08-2006
Yer: BuLutLarin Üstü! Mekan:Konya
Yaş: 18
Mesajlar: 1,117
Rep Puanı: 22985958
NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11
Rep Gücü: 229895
Varsayılan Mikrodenetleyici ile Seri iletişim


1 MİKRODENETLEYİCİ NEDİR?
Bir bilgisayarın sahip olduğu Ram ve I/O ünitesi bileşenlerinin tek bir chip içerisinde üretilmiş biçimine mikrodenetleyici (mikrokontroller) denir. Bilgisayar teknolojisinin gerekli olduğu uygulamalarda kullanılmak üzere üretilen mikrodenetleyiciler, mikroişlemcilere göre çok daha ucuzdur. Günümüzde televizyon, radyo, otomobil, buzdolabı gibi birçok alanda mikrodenetleyiciler kullanılmaktadır. Mikrodenetleyici üreten firmalar ürettikleri chiplere farklı isimler vermektedir. Üreticilerinin ürettikleri mikrodenetleyiciler birbirinin neredeyse aynısı olmasına rağmen farklı isimlerle adlandırılmaktadırlar. Mikrochip firması ürettiklerine pic adını verirken, parça numarası olarakta 16C84, 16F84, 12C508 gibi numaralar vermektedir. Aslında PIC16C84, PIC16F84 ve PIC16F84A aynı EEPROM belleğe ve özelliklere sahip olmalarına rağmen farklı adlarla anılmaktadırlar. PIC, adını ingilizcedeki Peripheral Interface Controller (Çevresel üniteleri destekleyen arabirim) cümlesinden almaktadır. Pic lamba, motor, sensör gibi üniteleri çok hızlı bir şekilde kontrol edebilmektedir. RISC (Reduced Instruction Set Computer) mimarisi adı verilen bir yöntem kullanılarak üretildiklerinden kullanılacak komutlar basit ve sayı olarakta azdır. PIC’lerin piyasada bulunan türleri çok farklı ambalajlara sahiptir. Örneğin PIC16F84 , 18 pinli standart DIP şeklinde ambalajlanmış ve PIC 0.3 inç genişliğindedir. Her iki yanında 0.1 inç aralıklarla yerleştirilmiş 9’ar pini bulunmaktadır. CMOS teknolojisi ile üretilmiş olan PIC16F84 çok az enerji harcar. RA0-RA3 pinleri ve RB0-RB7 pinleri giriş/çıkış pinleridir.

SENKRON İLETİŞİM
Senkron bilgi transferinde bilgi ile clock pals de transfer edilir.Bu durum start ve stop bitlerinin gereğini ortadan kaldırır. Aynı zamanda senkron iletişim karakter blokları bazında olduğu için asenkrona göre daha hızlıdır. Ancak daha karmaşık devreler içerir ve daha pahalıdır. Senkron iletişim alıcı ve vericinin eş zamanlı çalışması anlamına gelir. Clock pals ihtiyacı da bu durumdan ileri gelir.
İletime başlama şu şekilde olur. Önce gönderici taraf belirli bir karakter gönderir.Bu her iki tarafça bilinen iletişime başlama karakteridir.Alıcı taraf bu karakteri okursa iletişim kurulur. Verici bilgileri gönderir. Transfer işlemi veri bloğu tamamlanana yada alıcı verici arasındaki senkronizasyon kayboluncaya kadar devam eder.
1-Hata saptama ve koruması yapılır
2-Hız genellikle modemler tarafından saptanır.
3-Senkron terminaller asenkron terminallere göre daha hızlı ve pahalıdır.
4-Veriler bloklar halinde gönderilir.
5-Blok formatları kullanılan iletişim protokollerine göre değişir.
Tipik bir senkron verici bloğunu oluşturan kısımlar aşağıdaki gibidir.
• Control field(Kontrol sahası) :Transfere başlama ve kontrol bilgileri içerir.Bu bilgiler arasında hata düzeltme bilgileri de vardır.
• Header(Başlık) :Gönderilmek istenen terminalin adres bilgilerini içeren başlık.
• Squence number(Sıra num.) :Verilerin kaybolup kaybolmadığının anlaşılması için gelen ve giden bilgilerin hayıt numaraları
• Data(veri) :Bilgi yada yönetici data
• Error check(Hata saptama) :Transfer edilen veri bloğundan üretilen hata kontrol bilgisi gönderilir. Alıcı taraf aynı şekilde eline geçen veri bloğundan hata kontrol bilgisini üretir ve aldığı hata kotrol bilgisiyle kendi türettiğini karşılaştırır. Eğer farklılık varsa hata üretir.

1.2.2 ASENKRON İLETİŞİM
Asenkron iletişimin belirgin özellikleri şunlardır:
-Transferler karakter bazında yapılır.
-Her bir veri haberleşme cihazının parametreleri eş değerde olmalıdır. Şekil 1.1 de asenkron iletişimin basit şekli ile asenkron data bloğu görülmektedir. Bir asenkron karakter start biti, parity biti, veri bitleri ve stop bitlerinden oluşur.



• Start bit: Bir karakterin gönderilmeye başlandığını bildirmek için kullanılır. Her zaman transferin ilk biti olarak gönderilir.
• Data bits: Veri bitlerini oluşturan gruplar bütün karakterlerden ve klavyedeki diğer tuşlardan oluşur.
• Parity bit: Transfer edilen karakterlerin karşı tarafa doğru gönderilip gönderilmediğini kontrol etmek için kullanılan bittir. Eğer alıcı, alınan parity biti ile hesaplanan parity bitinin eşit olmadığını tespit ederse, hata verir ve o andaki karakteri kabul etmez.
• Stop bit: Karakterin bittiğini gösterir. Karakterler arasında boş ya da ölü zamanlar sağlar. Stop biti gönderildikten sonra sonra istenildiği zaman yeni bilgi gönderilebilir.
• Baud: Bit/sn olarak ifade edilen bit iletişim hızı birimidir. Anolog sinyaldeki değişim hızıdır.
Asenkron seri veri hatları veriyi ASCII kodlanmış karakter biçiminde kullanır. Asenkron iletişimde faydalı 7 bilgi bitini göndermek için toplam 10 veri bitine ihtiyaç duyulur. Bu da asenkron iletişimin belirli ölçüde verimsiz olmasına neden olmaktadır.

1.3 PIC16F84 MİKRODENETLEYİCİLERİNİN HABERLEŞMESİ
Assembler da bir uygulama vermeden önce seri haberleşmenin kolay anlaşılması için TX (Transmit/Gönderme) ve RX(Recieve/Alma) algoritmaları aşağıdaki şekildedir.

TX Bölümü (Transmit)
Şekil 1.2 de TX algoritmasını görülmektedir. Buradaki 1 bit bekleme süresi uygun formül ile bulunur. Örnek olarak 2400 baud için bu süre 416 uS dir. Bu algortimanın Assembler kodları aşağıda verilmiştir.


RX Bölümü (Receive)
Veri alma bölümünün programı aşağıda ve blok diyagramı Şekil 1.3 te görülmektedir.
’****** SERI HABERLEŞME *********
‘****** RX BÖLÜMÜ**************
‘******RX Pin=Portb.1************


Start
clrf RX_veri
btfsc portb,1


goto start
call delay_half
movlw .9
movwf sayac


RX_Loop:
bsf status,c
btfss portb,1
bcf status,c
rrf RX_veri,f
call delay_full
decfsz sayac,f
goto RX_Loop
call delay_half
STOP_Loop:
btfss portb,1
goto STOP_Loop
end



2 DEVRENİN İNCELENMESİ
Sistemde bir adet kontrol paneli ve üç adet de aygıt bulunmaktadır. Uygulamada aygıtların üzerindeki röle elemanının kontrolü yapılmakta ve 1.aygıta bir fan bağlanmış durumdadır. Şekil 2.1 te görülmektedir

KONTROL PANELİ
Panelde 6 adet buton bulunmakta ve bunlar 1., 2. ve 3. makineyi aktif hale geçiren ve pasif duruma geçiren butonlar olmak üzere çalışmaktadırlar. Butonlar mikrodenetleyicinin B portuna bağlı durumdadırlar. Ayrıca kontrol panelinden aygıtların durumunun gözlenebilmesi amaçlı kırmızı ve yeşil led göstergesi bulunmaktadır. Veri girişi ve +5V PIC besleme gerilimi devreye giriş yapmaktadır. Şekil 2.2’de devre şeması ve Şekil-2.3 ‘te ise baskı devre şeması görülmektedir.



Eleman değerleri
R50=R51=R52=R53=R54=R55=3,3K
R56=R58=R60=2,2K
R67=10K
R65=R66=560
R63=100
D53=D55=D57=D59=Yeşil led
X1=4MHZ KRISTAL
C1=C2=28PF
D52=DIYOT
B1,B2,B3,B4,B5,B6=MERCIMEK BUTON
U1=PIC16F84

2.2 Kontrol edilen aygıt
Aygıt üzerindeki mikrodenetleyicinin A portundan veri girişi ve yine aynı porttan veri çıkışı gerçekleşmektedir. Devrede, veri girişi, +5V PIC besleme gerilimi, +12V röle bobin besleme gerilimi bağlantı noktaları bulunmaktadır. Şekil-2.4 da devre şeması ve Şekil-2.5 de baskı devre kartı görülmektedir..

Şekil-2.5 Kontrol edilen aygıtın baskı devre kartı


R1=10K
R4=470
R2=560
R3=100
R6=1K
R7=2.2K
Q1=BC337 NPN
D2=DIYOT
X1=4MHZ KRISTAL
C1=C2=28PF
RELAY=5 PINLI 2 KONTAKLI RÖLE
U1=PIC16F84
D1=SARI, D3=KIRMIZI, D4=YEŞİL LED

2.3 Devrenin simülasyonu
Devrenin, proteus programı ile gerçekleştirilmiş simülasyonu Şekil-2.6 da görülmektedir. Kontrol paneli üzerinde butonları ve aygıtların konumlarını gösteren ledler görülmektedir. Aygıtlarda da rölenin çekmiş veya bırakmış konumda olduğunu gösteren ledler bulunmaktadır. Yeşil led rölenin çektiğini, kırmızı ise bıraktığını göstermektedir..




Şekil-2.6 Devrenin proteus programı ile gerçekleştirilen simülasyonu



2.4 Devrenin çalışması
Devre alıcı ve verici sistem olmak üzere iki şekilde çalışmaktadır. Başlangıçta verici kısım kontrol paneli, alıcı kısımda aygıtlar olurken, veri iletişimi esnasında kontrol paneli alıcı, aygıt ise verici konuma geçerek iletişimi tamamlamaktadırlar.
Kontrol paneli üzerindeki butonlar B portuna bağlı durumda bulunmaktadır. Butonlardan herhangi birine basıldığı anda PIC elemanının ilgili pin girişini sıfıra çekerek, daha önceden programlanmış veriyi göndermeye başlar. İlk olarak bir bitlik start bitini gönderir. Start bitini alan aygıtlar, okuma işlemine başlarlar. Bu işlemler eşzamanlı olarak gerçekleşir. Kontrol panelinden veri gönderme işlemi bittikten sonra, aygıtlar okuduğu veriyi kendi içlerindeki programlanmış görevlerle karşılaştırarak uyup uymadığına bakarlar. Eğer veri daha önceden programlanmış görevlerle uyuşuyorsa, yapması gereken işlemleri gerçekleştirir, uyuşmuyor ise bekleme konumuna geçerek, hiçbir işlem gerçekleştirmez.
Daha sonra kontrol paneli okumaya, aygıt ise yaptığı işlemi kontrol paneline bildirmek için veri göndermeye hazır konuma geçerler. Bu sefer başlangıçtaki veri gönderme işleminin aynısı tekrarlanır. Aygıt, start biti gönderir ve ardından da veriyi gönderir. Bu esnada kontrol paneli okuma işlemini gerçekleştirir. Okuduğu kodu karşılaştırarak yapması gereken işlemi gerçekleştirir. Devrede aygıtların aktif veya pasif olduğunu yeşil veya kırmızı ledleri yakarak göstermektedir.
Devrenin bu şekilde çalışması esnasında bizim için en önemli etken zamanlama işleminin istenilen hıza ayarlanarak, devrenin çalışma hızının en yüksek değerde tutulmasıdır. Uygulamada her bir peryot için 50 mikrosaniyelik zaman dilimi yeterli olmaktadır. Ancak uygulamanın gerçeğe uygunluğu açısından daha uzun kablo ve kapasitif etkiler dikkate alınarak her bir peryot yaklaşık 100 mikrosaniyelik zamanda gerçekleştirilmiştir. Kontrol panelinden veri gönderme ve geriye veri alma işlemi yaklaşık olarak 25 peryot sürmektedir. Buda 2.5 milisaniyelik bir zaman dilimine tekabül eder.
Sistemde kullanılan aygıtların kodları Tablo-2.1’deki şekildedir. 0,1,2,3 bitleri aygıtın yapması gereken işlemleri göstermektedir. 4,5,6,7 bitleri ise aygıtın kodunu göstermektedir.



Tablo-2.1 İletişim işleminde kullanılan aygıtlara ait kodlar

1.aygıt 2.aygıt 3.aygıt
Aktif hale geçir kodu 00010001 0010001 00110001
Pasif hale geçir kodu 00010000 0010000 00110000


2.5 Kontrol paneli ve aygıtlarda kullanılan PIC16F84 mikrodenetleyicilerin programlanması

2.5.1 Kontrol panelinde kullanılan PIC16F84 mikrodenetleyicisinin programlanması
Program aşağıdaki şekildedir
;*********************************
;*********Kontrol paneli************
;**********02/06/2004**************
LIST P=16F84 ;PIC16F84'ün tanıtılması
include P16F84.INC
__CONFIG_XT_OSC&_CP_OFF&_WDT_OFF&_PWRTE_ON
;*******Tanımlamalar***********
SAY EQU H'1C'
SAY1 EQU H'1D'
SAY2 EQU H'1E'
RP0 EQU H'05'
SAYAC EQU H'1f'
RVERI EQU H'21'
TVERI EQU H'22'
MAC1ON EQU H'24'
MAC2ON EQU H'25'
MAC3ON EQU H'26'
MAC1OF EQU H'27'
MAC2OF EQU H'28'
MAC3OF EQU H'29'
;*******Başlangıç*************
ORG 0
BSF STATUS,5 ;BANK1'E GEÇ
MOVLW B'11110000'
MOVWF H'85' ;PORTA,0,1,2,3'NİN UCUNU ÇIKIŞ YAP
MOVLW B'11111111'
MOVWF H'86' ;PORTB GİRİŞ YAP
BCF STATUS,5 ;BANK0'A GEÇ
CLRF PORTB ;PORTB'Yİ TEMİZLE
CLRF PORTA ;PORTA'YI TEMİZLE
BSF PORTA,0 ;PORTA,0 IN CIKISINI 1 YAP
;----------------------------------------------------
MOVLW B'00010001' ;1.MAKİNE AKTİF KODUNU TANIMLA
MOVWF MAC1ON ;MAC1ON(AKTIF)
MOVLW B'00010000' ;1.MAKİNE PASİF KODUNU TANIMLA
MOVWF MAC1OF ;MAC1OFF(PASIF)
MOVLW B'00100001' ;2.MAKİNE AKTİF KODUNU TANIMLA
MOVWF MAC2ON ;MAC2ON(AKTIF)
MOVLW B'00100000' ;2.MAKİNE PASİF KODUNU TANIMLA
MOVWF MAC2OF ;MAC2OFF(PASIF)
MOVLW B'00110001' ;3.MAKİNE AKTİF KODUNU TANIMLA
MOVWF MAC3ON ;MAC3ON(AKTIF)
MOVLW B'00110000' ;3.MAKİNE PASİF KODUNU TANIMLA
MOVWF MAC3OF ;MAC3OFF(PASIF)
;---------------HERHANGİ BİR BUTONA BASILDIMI?--------
BASLAT
BTFSS PORTB,0 ;PORTB,0 YE BASILDIMI
GOTO MAC11 ;BASILDIYSA 1.MAKINEYI HAREKETE GECIR
BTFSS PORTB,1 ;PORTB,1 YE BASILDIMI
GOTO MAC10 ;BASILDIYSA 1.MAKINEYI DURDUR
BTFSS PORTB,2 ;PORTB,2 YE BASILDIMI
GOTO MAC21 ;BASILDIYSA 2.MAKINEYI HAREKETE GECIR
BTFSS PORTB,3 ;PORTB,3 YE BASILDIMI
GOTO MAC20 ;BASILDIYSA 2.MAKINEYI DURDUR
BTFSS PORTB,4 ;PORTB,4 YE BASILDIMI
GOTO MAC31 ;BASILDIYSA 3.MAKINEYI HAREKETE GECIR
BTFSS PORTB,5 ;PORTB,5YE BASILDIMI
GOTO MAC30 ;BASILDIYSA 3.MAKINEYI DURDUR
GOTO BASLAT
;----------------------------------------------------
MAC11
MOVLW B'00010001'
MOVWF TVERI ;VERIYE 1. MAKINEYI HAREKETE GECIRI YUKLE
GOTO START
;----------------------------------------------------
MAC10 MOVLW B'00010000'
MOVWF TVERI ;VERIYE 1. MAKINEYI YUKLE
GOTO START
;----------------------------------------------------
MAC21 MOVLW B'00100001'
MOVWF TVERI ;VERIYE 2. MAKINEYI HAREKETE GECIRI YUKLE
GOTO START
;----------------------------------------------------
MAC20 MOVLW B'00100000'
MOVWF TVERI ;VERIYE 2. MAKINEYI YUKLE
GOTO START
;----------------------------------------------------
MAC31 MOVLW B'00110001'
MOVWF TVERI ;VERIYE 3. MAKINEYI HAREKETE GECIRI YUKLE
GOTO START
;----------------------------------------------------
MAC30 MOVLW B'00110000'
MOVWF TVERI ;VERIYE 3. MAKINEYI YUKLE
GOTO START

;------------VERİ GÖNDERME İŞLEMİNE BAŞLIYOR---------
START
CALL TX ;ALTPROGRAM

;------------VERİ GÖNDERME İŞLEMİ BİTTİ--------------

CALL BEKLE1S
CALL BEKLE1S
BCF PORTA,0 ;PORTA,0 I SIFIRLA
CALL BEKLE1S
CALL BEKLE1S

;------------VERİ OKUMA İŞLEMİNE BAŞLIYOR------------

CALL RX

;------------VERİ OKUMA İŞLEMİ BİTTİ----------------

;-----OKUNAN KODUN KARŞILIĞI ARANIYOR----

CALL CONTROL
;----------------------------------------------------
CALL BEKLE1S
TEKRAR BTFSC PORTA,4
GOTO TEKRAR
BSF PORTA,0 ;PORTA,0 I TEKRAR AKTIF HALE GETIR
CALL BEKLE1S
CALL BEKLE1S
;----------------------------------------------------
GOTO BASLAT

;---------ALTPROGRAMLAR-----------------------------
;----------------------------------------------------
TX
BCF PORTA,0 ;START BIT SEND
CALL BEKLE1S
MOVLW D'8'
MOVWF SAYAC
TX_LOOP
RRF TVERI,F
BTFSS STATUS,C
BCF PORTA,0
BTFSC STATUS,C
BSF PORTA,0
CALL BEKLE1S
DECFSZ SAYAC,F
GOTO TX_LOOP
BSF PORTA,0 ;STOP BIT SEND

RETURN
;----------------------------------------------------

RX CLRF RVERI ;RVERI YI SIFIRLA
RXL BTFSC PORTA,4 ;PORTA,4 YI KONTROL ET,START BIT GELDIMI?
GOTO RXL
CALL BEKLE05S ;YARIM ZAMAN BEKLE
MOVLW D'9'
MOVWF SAYAC ;SAYACA 9 DEGERINI VER
RX_LOOP
BSF STATUS,C ;CARRY BITINI 1 YAP
BTFSS PORTA,4 ;PORTA,1 DEN 1 MI GELDI?
BCF STATUS,C ;GELMEDIYSE C'YI SIFIRLA
RRF RVERI,F ;VERIYI SAGA KAYDIR
CALL BEKLE1S ;BIRIM ZAMAN BEKLE
DECFSZ SAYAC,F ;SAYICIYI AZALT
GOTO RX_LOOP
RETURN

;----------------------------------------------------
CONTROL
MOVF MAC1ON,W ;1.MAKINA AKTİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W YI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M1ON
;---------------
MOVF MAC1OF,W ;1.MAKINA PASİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W yI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M1OF
;---------------
MOVF MAC2ON,W ;2.MAKINA AKTİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W YI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M2ON
;---------------
MOVF MAC2OF,W ;2.MAKINA PASİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W yI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M2OF
;---------------
MOVF MAC3ON,W ;3.MAKINA AKTİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W YI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M3ON
;---------------
MOVF MAC3OF,W ;2.MAKINA PASİF KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W yI EXOR LA
BTFSC STATUS,2 ;SONUC BIRMI?
GOTO M3OF
;---------------
GOTO PINRET
;---------------
M1ON BSF PORTA,3 ;1.MAKİNE AKTİF LAMBASINI YAK
GOTO PINRET
M1OF BCF PORTA,3 ;1.MAKİNE PASİF LAMBASINI YAK
GOTO PINRET
M2ON BSF PORTA,2 ;2.MAKİNE AKTİF LAMBASINI YAK
GOTO PINRET
M2OF BCF PORTA,2 ;2.MAKİNE PASİF LAMBASINI YAK
GOTO PINRET
M3ON BSF PORTA,1 ;3.MAKİNE AKTİF LAMBASINI YAK
GOTO PINRET
M3OF BCF PORTA,1 ;3.MAKİNE PASİF LAMBASINI YAK
GOTO PINRET

PINRET RETURN
;----------------------------------------------------
BEKLE1S ; TAM PERYOT GECİKME
MOVLW D'1'
MOVWF SAY
D1 MOVLW D'1'
MOVWF SAY1
D2 MOVLW D'100'
MOVWF SAY2
D3 NOP
DECFSZ SAY2,F
GOTO D3
DECFSZ SAY1,F
GOTO D2
DECFSZ SAY,F
GOTO D1
RETURN
;----------------------------------------------------
BEKLE05S ;YARIM PERYOT GECİKME
MOVLW D'1'
MOVWF SAY
D4 MOVLW D'1'
MOVWF SAY1
D5 MOVLW D'50'
MOVWF SAY2
D6 NOP
DECFSZ SAY2,F
GOTO D6
DECFSZ SAY1,F
GOTO D5
DECFSZ SAY,F
GOTO D4
RETURN
;----------------------------------------------------
END
;************************************
;************************************

2.5.2 Kontrol edilen aygıtta kullanılan PIC16F84 mikrodenetleyicisinin programlanması
Programlama esnasında kontrol edilecek aygıtı tanımlayan kodların Tablo-1’den alınarak uygun olanları yazılmalıdır. Aşağıda 1.aygıtın kontrolü amaçlı program yazılmış bulunmaktadır

;************************************
;****KONTROL EDİLEN AYGIT********
;***********02/06/2004*****************
LIST P=16F84 ;PIC16F84'ÜN TANITILMASI
INCLUDE P16F84.INC
__CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_PWRTE_ON
;**********TANIMLAMALAR***********
SAY EQU H'1C'
SAY1 EQU H'1D'
SAY2 EQU H'1E'
RP0 EQU H'05'
RVERI EQU H'21'
TVERI EQU H'22'
SAYAC EQU H'23'
MAC1ON EQU H'24'
MAC1OF EQU H'25'
MAC1LON EQU H'26'
MAC1LOF EQU H'27'
MACL EQU H'28'
;*********BAŞLANGIÇ*****************
ORG 0
BSF STATUS,5 ;BANK1'E GEÇ
CLRF TRISB ;PORTB'NİN UÇLARINI ÇIKIŞ YAP
MOVLW B'11111101'
MOVWF H'85' ;PORTA,1 U CIKIS YAP
BCF STATUS,5 ;BANK0'A GEÇ
CLRF PORTB ;PORTB YI TEMIZLE
CLRF PORTA
;----------------------------------------------------
BASLAR
MOVLW B'00010001' ;1.MAKINAYI HAREKETE GECIR KODUNU TANIMLA
MOVWF MAC1ON
MOVLW B'00010000' ;1.MAKINAYI DURDUR KODUNU TANIMLA
MOVWF MAC1OF
BASLA
;--------VERİ OKUMA İŞLEMİ BAŞLIYOR-------------------
RXR CALL RX
;--------OKUNAN VERİ KARŞILAŞTIRILIYOR-----------------
MOVF MAC1ON,W ;1.MAKINAYI HAREKETE GECIR KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W YI EXOR LA
BTFSC STATUS,2 ;SONUC SIFIRMI?
GOTO MAC11
;---------------
MOVF MAC1OF,W ;1.MAKINAYI DURDUR KODUNU W YA YUKLE
XORWF RVERI,W ;VERI ILE W YI EXOR LA
BTFSC STATUS,2 ;SONUC SIFIRMI?
GOTO MAC10

;----DİĞER AYGITLARIN İŞLEM YAPTIĞI ZAMANDA BEKLEME KONUMUNA GEÇİYOR--------------------
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE1S
CALL BEKLE05S

GOTO RXR
;----------------------------------------------------
MAC11 BSF PORTB,0 ;PORTB,0 I HAREKETE GECIR MOVLW B'00010001' ;1.MAKINA HAREKETE GECTI, LAMBA KODUNU TANIMLA
MOVWF MACL
GOTO TRANS

MAC10 BCF PORTB,0 ;PORTB,0 I DURDUR
MOVLW B'00010000' ;1.MAKINA DURDU, LAMBA KODUNU TANIMLA
MOVWF MACL
GOTO TRANS
;-----------------------------------------------------
TRANS
BTFSC PORTA,0 ;KONTROL PANELİ VERİ OKUMA İŞLEMİNE BAŞLADIMI?
GOTO TRANS
CALL BEKLE1S
;-----------------------------------------------------
BSF PORTA,1 ;VERİ GÖNDERME İŞLEMİNE HAZIRLANIYOR.
CALL BEKLE1S
CALL BEKLE1S

;--------VERİ GÖNDERME İŞLEMİ BAŞLIYOR---------------
CALL TX
;--------VERİ GÖNDERME İŞLEMİ BİTİYOR----------------
CALL BEKLE1S
CALL BEKLE1S
CLRF MACL ;MACL KODUNU SIFIRLA
BCF PORTA,1 ;VERİ OKUMA İŞLEMİNE BAŞLANIYOR
DONGU BTFSS PORTA,0
GOTO DONGU
;----------------------------------------------------
GOTO BASLA
;----------------------------------------------------
;-------------ALTPROGRAMLAR------------
RX
CLRF RVERI ;RVERI YI SIFIRLA
BTFSC PORTA,0 ;PORTA,0 YI KONTROL ET,START BIT GELDIMI?
GOTO RX
CALL BEKLE05S ;YARIM ZAMAN BEKLE
MOVLW D'9'
MOVWF SAYAC ;SAYACA 9 DEGERINI VER
RX_LOOP
BSF STATUS,C ;CARRY BITINI 1 YAP
BTFSS PORTA,0 ;PORTA,0 DEN 1 MI GELDI?
BCF STATUS,C ;GELMEDIYSE C'YI SIFIRLA
RRF RVERI,F ;VERIYI SAGA KAYDIR
CALL BEKLE1S ;BIRIM ZAMAN BEKLE
DECFSZ SAYAC,F ;SAYICIYI AZALT
GOTO RX_LOOP
RETURN
;----------------------------------------------------
TX
BCF PORTA,1 ;START BİTİ GÖNDER PORTA,4
CALL BEKLE1S
MOVLW D'8'
MOVWF SAYAC
TX_LOOP
RRF MACL,F
BTFSS STATUS,C
BCF PORTA,1
BTFSC STATUS,C
BSF PORTA,1
CALL BEKLE1S
DECFSZ SAYAC,F
GOTO TX_LOOP
BSF PORTA,1 ;STOP BİTİ GÖNDER
RETURN
;----------------------------------------------------
BEKLE1S ;TAM PERYOT GECİKME
MOVLW D'1'
MOVWF SAY
D1 MOVLW D'1'
MOVWF SAY1
D2 MOVLW D'100'
MOVWF SAY2
D3 NOP
DECFSZ SAY2,F
GOTO D3
DECFSZ SAY1,F
GOTO D2
DECFSZ SAY,F
GOTO D1
RETURN
;----------------------------------------------------
BEKLE05S ;YARIM PERYOT GECİKME
MOVLW D'1'
MOVWF SAY
D4 MOVLW D'1'
MOVWF SAY1
D5 MOVLW D'50'
MOVWF SAY2
D6 NOP
DECFSZ SAY2,F
GOTO D6
DECFSZ SAY1,F
GOTO D5
DECFSZ SAY,F
GOTO D4
RETURN
;----------------------------------------------------
END
;*************************************
;*************************************


2.6 Veri transferinin zamanlaması
Kontrol panelinden veri gönderilmeye başlandığı andan itibaren, verinin zamana bağlı olarak iletimi söz konusudur. Verinin çift yönlü iletiminin zamanlaması Şekil-2.7 de görülmektedir. Herbir peryot arasındaki geçen zaman yaklaşık 100 mikrosaniyedir.



[img]http://resimkoydurt.re.funpic.org//upload/b4d1052f47ed8c6eef88fc2a6b9ea5a3.jpg[/mg]
3 SONUÇ
Mikrodenetleyici kullanılarak gerçekleştirilen seri haberleşmede, sistem sade ve karmaşadan uzak hale gelmesine karşılık, bit transfer oranı düşer. Bu uygulama basit bir kontrol sistemi uygulaması olduğundan dolayı PIC16F84 kullanılmıştır, ancak daha kompleks bir uygulama için seri port çıkışı bulunan bir mikrodenetleyici kullanılması, devrenin performansına büyük oranda katkı sağlayacaktır. PIC16F84’te veriyi seri forma dönüştürmek için çeşitli işlem basamakları uygulanmaktadır. Bu da zaman kaybı oluşturur. Bu nedenle uygulamada yüksek oranda bit transferinin gerçekleşmesi gereken sistemlerde paralel haberleşme kullanılmalıdır.
Devre yukarıdaki şekilde uygulanarak gerçeğe yakınlık sağlanmış ve sorunsuz olarak çalışmıştır. Eğer uygulamada tek hat seri iletişim kullanılmamış olsaydı, sistem daha karmaşık hale gelir ve maliyet de büyük oranda artardı. Devre üzerindeki döngülerin zamanlamaları kısaltılarak peryot zamanı düşürülebilir ve bu haliyle gerçek bir kontrol sistemi uygulaması yapılabilir.


not: daha cok bilgi ve yardim için. özel mesaj ( pm ) yardimi alabilirsiniz

Mesajı son düzenleyen NEFRET ( 04-12-07 - 00:37 ).
NEFRET çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-12-07, 21:27   #2 (permalink)
Üye
 
Giriş Tarihi: 10-11-2007
Yer: AFyoN llιlı.ıl SanDıKLı llιlı.ıl
Yaş: 17
Mesajlar: 139
Rep Puanı: 366255
bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11bu_l_ut Rütbe: Artı 11
Rep Gücü: 3672
Varsayılan C: Mikrodenetleyici ile Seri iletişim


cok cok tsk ler paylastıgın için + rep
bu_l_ut çevrimdışı   Alıntı Yaparak Cevapla
Eski 05-02-08, 18:32   #3 (permalink)
Konya'nın Gokkuşagı ♪♪♪
 
Giriş Tarihi: 03-08-2006
Yer: BuLutLarin Üstü! Mekan:Konya
Yaş: 18
Mesajlar: 1,117
Rep Puanı: 22985958
NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11NEFRET Rütbe: Artı 11
Rep Gücü: 229895
Varsayılan C: Mikrodenetleyici ile Seri iletişim


tşkler saoloiasn: )
NEFRET çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-03-08, 13:42   #4 (permalink)
Geçerken Uğradım
 
Giriş Tarihi: 09-09-2006
Mesajlar: 94
Rep Puanı: 2375
Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11Iam_miLitaN Rütbe: Artı 11
Rep Gücü: 46
Varsayılan C: Mikrodenetleyici ile Seri iletişim

tsk edereimmm
Iam_miLitaN çevrimdışı   Alıntı Yaparak Cevapla
Eski 14-05-08, 03:36   #5 (permalink)
mêLîKêM asKmmm
 
Giriş Tarihi: 07-03-2008
Yer: Çorum.........Gi......... Server:Logos.......Z.... NiCk:Akeir4.........A...
Yaş: 20
Mesajlar: 2,204
Blog Mesajları: 2
Rep Puanı: 18664621
profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11profAkeir4 Rütbe: Artı 11
Rep Gücü: 186673
Varsayılan C: Mikrodenetleyici ile Seri iletişim

PAylaşım için TY
profAkeir4 çevrimdışı   Alıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Tüm saatler GMT +3. Şuan saat: 03:51
(Türkiye için GMT +2 seçilmelidir.)


ForumTR Mail'den Ücretsiz Bir Mail Almak veya Mail'inizi Okumak İçin Tıklayınız.

Forums Directory eXTReMe Tracker Almanya Vizesi | Rusya Vizesi | Ukrayna Vizesi | Fransa Vizesi | Vize İşlemleri | Almanya Otelleri | Tatil | Haberler | Telefon Santrali | Daily News

Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir,
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız sikayet@frmtr.com email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.
Report Abuse, Harassment, Scamming, Hacking, Warez, Crack, Divx, Mp3 or any Illegal Activity to abuse@frmtr.com


Search Engine Optimization by vBSEO

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477