

	LIST		P=16F628 
	#INCLUDE	<P16F628.INC> 
__CONFIG  _MCLRE_ON & _LVP_OFF & _BODEN_OFF  & _CP_OFF & _WDT_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT


#DEFINE PS_KI	PORTB,2		
#DEFINE PS_BE	PORTB,1	
#DEFINE GOMB	PORTB,0
#DEFINE LED		PORTA,0


	CBLOCK 0x20
SZOVPTR	
	ENDC                      
	        	

#DEFINE	CLKFRQ	D'4000000'	
#DEFINE	BAUD(X)	(CLKFRQ/(D'16'*X))-1
#DEFINE	INI_TXSTA B'00100100'
#DEFINE	INI_RCSTA B'10010000'	

	

	ORG	0
	
	bsf STATUS,RP0	
	movlw	b'11111110'	
	movwf	TRISA
	movlw	b'11111111'
	movwf	TRISB
	bcf STATUS,RP0
	
	CALL	INI_SOROS
	bsf		LED

WAIT
	btfss	GOMB
	goto	WAIT

	bcf		LED
	call	KIIRAT
	bsf		LED
	
	GOTO	WAIT
	

INI_SOROS			
	BANKSEL	SPBRG	
	MOVLW	BAUD(D'9600')	
	MOVWF	SPBRG	
	MOVLW	INI_TXSTA	
	MOVWF	TXSTA
	BCF	PS_KI	
	BSF	PS_BE		
	BANKSEL	RCSTA	
	MOVLW	INI_RCSTA	
	MOVWF	RCSTA
	MOVFW	RCREG
	MOVFW	RCREG	
	RETURN
	
KIIRAT
	movlw 'A' 
	movwf TXREG 
	btfss PIR1,TXIF 
	goto 	
	return
	
	END