list p=pic16F877
#include
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İPORTTANALIM
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ç
kontrol1 btfss RCSTA,FERR
goto kontrol2
goto resset
kontrol2 btfss RCSTA,OERR
goto alim1 goto resset
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
resset bcf RCSTA,SPEN ; USART kapa
bcf RCSTA,CREN ; seri alım kapa
bsf RCSTA,SPEN ; USART aktif
bsf RCSTA,CREN ; seri alım aktif
return
END