list p=16f877A ; list directive to define processor
#include <p16f877A.inc> ; processor specific variable definitions
errorlevel -302, -207
org 00h
goto start
org 04h
;save working and status register
movwf W_Save
swapf STATUS,W
movwf STATUS_Save
;take data and put it on PORTB
banksel RCREG
movf RCREG,W
movwf PORTB
;restore working and status register
banksel W_Save
swapf STATUS_Save,W ; Restore Status and W
movwf STATUS ;
swapf W_Save,F ;
swapf W_Save,W ;
retfie
start
radix dec
cblock 20h
brojac,brojac1,podatak,aktiviraj_transmisiju,STATUS_Save,W_Save
endc
; setting TRIS/A/B/C
banksel TRISB
movlw 0ffh
movwf TRISA
movwf TRISC
movlw 00h
movwf TRISB
;Seting UART
movlw b'00000110' ; all analog pins = digital
movwf ADCON1
banksel SPBRG
movlw 0x0C
movwf SPBRG
movlw b'00100100'
movwf TXSTA
banksel RCSTA
movlw b'10010000'
movwf RCSTA
;Setting interrupts
banksel PIE1
bsf PIE1,RCIE
movlw b'11000000'
movwf INTCON
Main
call Trans ;call routine for sending data
call Pauza ;make a pause
goto Main ;all the time
Trans
banksel PORTA
movf PORTA,W
movwf TXREG
banksel TXSTA
WtHere btfss TXSTA,TRMT
goto WtHere
return
Pauza
movlw 50
movwf brojac1
mala_pauza_1
movlw 100
movwf brojac
mala_pauza
decfsz brojac,f
goto mala_pauza
decfsz brojac1,f
goto mala_pauza_1
return
end