digbyte	macro	par0
	local	pon0
	local	exit1
	local	exit2
	local	pozitiv

	clrf	dig1
	clrf	dig2
	clrf	dig3
pozitiv
	movf	par0,w
	movwf	digtemp
	movlw	.100
pon0
	incf	dig1,f
	subwf	digtemp,f
	btfsc	STATUS,C
	goto 	pon0
	decf	dig1,f
	addwf	digtemp,f
exit1
	movlw	.10
	incf	dig2,f
	subwf	digtemp,f
	btfsc	STATUS,C
	goto	exit1
	decf	dig2,f
	addwf	digtemp,f
exit2
	movf	digtemp,w
	movwf	dig3
	endm

	LIST	p=16F628		;tell assembler what chip we are using
	include "P16F628.inc"		;include the defaults for the chip
	ERRORLEVEL	0,	-302	;suppress bank selection messages
	__config 0x3D18			;sets the configuration settings (oscillator type etc.)

		org 	0x00
		goto 	main
	

		org 	0x04
		goto	ISR
	

		Cblock	0x20
		dig1
		dig2
		dig3
		digtemp
	    D
		One
		W_temp
		endc

	
main
   		banksel TRISA
		movlw b'11111100'
	
		movwf	TRISA
		clrf	TRISB
		movlw	b'10000100'
		movwf	OPTION_REG
		banksel PORTA
		movlw	.96

		movwf	TMR0
		movlw	b'10100000'
		movwf	INTCON
	
		movlw	.21
		movwf	D
		clrf	One
		clrf	PORTA
Loop
		goto	Loop
ISR	
		Movwf	W_temp
		Movlw	.96
		movwf	TMR0

		bcf	INTCON,T0IF

		bcf	PORTA,0
		bcf	PORTA,1
		movf	One,f
		btfsc	STATUS,Z
		goto	Msdon
	
Lsdon
		bcf	One,0
		movlw high Bcdto7seg

		movwf	PCLATH
		 digbyte D
        
		movf	dig3,w
		call	Bcdto7seg
			
		movwf	PORTB

		bsf	PORTA,1

		movf	W_temp,w
	
		retfie
Msdon

		bsf	One,0
		movlw high Bcdto7seg
		movwf	PCLATH

		 digbyte D
	

		
		movf	dig2,w
		call	Bcdto7seg

	
		movwf	PORTB
		bsf	PORTA,0
	
		movf	W_temp,w
		retfie

		org	0x300

Bcdto7seg

		Addwf	PCL,f
		dt	0X3f, 0X06, 0X5b, 0X4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f
	 
		End

