list			p=16f84
#include		<p16F84a.inc>
__CONFIG		_CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;----------------------------------------------------------------------
#define	InRight	PORTB,0
#define	out		PORTB,1
#define	InLeft	PORTB,2
duty	equ		H'0C'		; length of duty cycle
temp	equ		H'0D'		; length of duty cycle
bufer	equ		H'0E'

;---------------------------------------------------------------------


;---------------------------------------------------------------------

		org	0x000

		bsf		STATUS,RP0
		movlw	B'00000101'		
		movwf	TRISB
		movlw	B'11100111'
		movwf	OPTION_REG
		bcf		STATUS,RP0
		movlw	B'00000000'		
		movwf	PORTB			
rstrt	movlw	B'00000000'
		movwf	PORTB
;suzdavam 1ms	pulnej
		movlw	D'249'
		movwf	temp
ms1		bsf		out
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		decfsz	temp
		goto	ms1
;dopulvam kum cikala za da stane tochno 1ms	
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
;suzdavam promiana na PWM	
		movlw	D'1'
		addwf	bufer,w		
		movwf	duty
b0loop	movf	duty,w
		movwf	temp
		bsf		out
pwma	nop
		nop
		decfsz	temp	
		goto	pwma
		bsf		InRight
		btfss	InRight	;programa za proverka na butona
		goto	nextbut
		incf	temp
nextbut	btfss	InLeft
		goto	PWM
		decf	temp
		goto	PWM
PWM		movfw   temp
		addwf	bufer
		movfw	bufer
		sublw	D'1'
		movwf	temp
		bcf		out
pwmb	nop
	
		decfsz	temp
		goto	pwmb
;suzdavam  prazno
		movlw	D'250'
		movwf	temp
ms5		bcf		out
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop

		decfsz	temp
		goto	ms5
		nop
		goto	rstrt

;----------------------------------------------------------------------

		end
