noT: Rep e ihtiyacım yok.Dua ya ihtiyacım var.
burda adım adım seri port tan haberleşmeyi anlatıcam.ilk önce proteusta deneyeceğiz.derslerim bitince PC ile bir visual programla(delphi veya v.basic ile ) pic i yöneteceğiz.Fakat derslere kodlarla hemen başlıyacağım.eğer anlamadıgınız yer olursa sorarsınız.kodlara hemen başlayarak seriport haberleşmeyi daha cabuk öğrenebilirsiniz.
ilk ders:pic 16f877 ile SERIPORTU okumak
;USART (SERİPORT) DERSİ-1 :BURADA RS-232 yi PIC 16F877 İLE OKUYUP,okuduğumuz karakteri ledlerle (ASCII olarak) göstemek..
Kod
LIST p=16F877
#include "P16F877.INC"
org 0x00
goto basla
basla clrw ; w registerı temizlendi
movwf PORTA ; PORTA temizlendi
movwf PORTB ; portb temizlendi
; PORT AYARLARI
bcf STATUS,RP0 ; bank0
bsf RCSTA,SPEN ; USART aktif
bsf RCSTA,CREN ; seri alım aktif
bsf STATUS,RP0 ; bank1 e geç
clrw ; w registerı sil
movwf TRISB ; PORTB cıkış olarak ayarlandı
movlw 0x19 ; BRG değeri 9600 baud @ 4MHz e göre
movwf SPBRG ;
movlw 0xA4 ; CSRC/TXEN (dahili clock, 8 bit mode, asenkron iletişim, hızlı seçim)
movwf TXSTA
dongu call alim ;SERİPORTTAN ALIM
movwf PORTB ;alınan karakteri portb de ascii olarak göster
goto dongu ;tekrar almak için başla
;SERİ ALIM ALT PROGRAMI
alim bcf STATUS,RP0 ; bank0 a geç
alim1 btfss PIR1,RCIF ; seri porttan karakter gelfimi testi
goto alim1 ; hayır gelmemiş tekrar
movf RCREG,W ; evet burda karakter geldi,bunu w ye al
bcf PIR1,RCIF ; alım kesmesini tekrar temizle.
return
END
Proteusta Seriport tan karakter göndermek için Virtual Terminali kullanıyoruz.(PIC RX ile PC TX-yani Vİrtual Terminal'in TX ini birbirlerine bağlıyoruz.Aşağıdaki şekile bakın)
Proteus deneme
[url=http://upload2.resim bulunamadi57824/electronics.html]

[/url]
En son cirkinordek77 tarafından 26.01.2006, 00:34 tarihinde değiştirildi, toplam 2 kere değiştirildi