			LIST			P=16F84A
			#INCLUDE		<NEW_P16F84A.INC>
			#INCLUDE		<Constants.h>
			ORG				0H
			GOTO			INIT_PIC
INIT_PIC
		
			CLRF			INTCON
			BANK1	
			CLRF			TRISA
			MOVLW			B'10000100'
			MOVWF			TRISB
			MOVLW			.0
			MOVWF			OPTIONREG
			BANK0
			CLRF			PORTB
			MOVLW			B'00000100'
			MOVWF			PORTA
			CANSEL_LOAD
			CANSEL_CLK
			LOW_DIN
			CALL			PAUSE_COR
			CALL			PAUSE_COR
			CALL			PAUSE_COR
			CALL			PAUSE_COR
			CALL			PAUSE_COR
			CALL			PAUSE_COR
			MOVLW			08H
			MOVWF			BIT_COUNT
			MOVWF			BIT_COUNT2

			CALL			INIT_MAX
			CALL			UPDATE_DIGITS
	
START
			NOP
;			CALL			UPDATE_DIGITS
			NOP
;'			CALL			PAUSE_COR
			NOP
			
			GOTO 			START

;-------------------оепеяшкйю 16-ахр б люу-7222/7219-------
UPDATE_DIGITS
			MOVLW			DIGIT0
			MOVWF			H_BYTE
			MOVLW			B'00001001'
			MOVWF			L_BYTE
			CALL			TRANSMIT

			MOVLW			DIGIT1
			MOVWF			H_BYTE
			MOVLW			03H
			MOVWF			L_BYTE
			CALL			TRANSMIT
							
			MOVLW			DIGIT2
			MOVWF			H_BYTE
			MOVLW			05H
			MOVWF			L_BYTE
			CALL			TRANSMIT

			MOVLW			DIGIT3
			MOVWF			H_BYTE
			MOVLW			07H
			MOVWF			L_BYTE
			CALL			TRANSMIT
			RETURN


;------------------PROCEDURES --------------

INIT_MAX

			MOVLW			DMODE		
			MOVWF			H_BYTE
			MOVLW			B'00001111'
			MOVWF			L_BYTE
			CALL			TRANSMIT

			MOVLW			INTENSITY
			MOVWF			H_BYTE
			MOVLW			0FH
			MOVWF			L_BYTE 
			CALL			TRANSMIT

			MOVLW			SLIMIT
			MOVWF			H_BYTE
			MOVLW			B'00000111'
			MOVWF			L_BYTE
			CALL			TRANSMIT

			MOVLW			SHUTDOWN
			MOVWF			H_BYTE
			MOVLW			01H
			MOVWF			L_BYTE
			CALL			TRANSMIT

			RETURN


;-------------------оепеяшкйю 16-ахр б люу-7222/7219-------
TRANSMIT								;ондопнцпюллю оепеяшкйх дюммшу б ЛЮУ7222/7219
			ENTER_LOAD					;BCF	PORTA,1 оепебнд б пефхл опхелю дкъ ЛЮУ
TRANSMITTING							;
										;яапяшбюел PORTA,2 б 0
			CANSEL_CLK
			LOW_DIN						;яапюяшбюел PORTA,0 б 0
			BTFSC			H_BYTE,7	;опнбепйю ахрю
			HIGHT_DIN					;
			ENTER_CLK					;опхмърэ ахр
			RLF				H_BYTE,F	;ядбхц пецхярпю бкебн мю ьюц
			CANSEL_CLK
			DECFSZ			BIT_COUNT,F	;слемэьюел явервхй, еякх мнкэ оепеундхл TRANSMIT2
			GOTO			TRANSMITTING;
TRANSMIT2	CANSEL_CLK					;
			LOW_DIN						;
			BTFSC			L_BYTE,7	;
			HIGHT_DIN					;
			ENTER_CLK					;
			RLF				L_BYTE,F	;
			CANSEL_CLK
			DECFSZ			BIT_COUNT2,F;
			GOTO			TRANSMIT2	;
			MOVLW			08H			;намнбкемхе явервхйнб
			MOVWF			BIT_COUNT	;сярюмнбйю яннрберярбсчыху 
			MOVWF			BIT_COUNT2	;онпрнб мю мнплюкэмсч
										;пюанрс дпюибепю ЛЮУ 
										;
			CANSEL_LOAD					;
			RETURN						;бшунд хг ондопнцпюллш
;---------------------------------------------------------------

PAUSE_COR
            movlw       .70
            movwf       REG_1
wr1         decfsz      REG_1, F
            goto        wr1
			NOP
			NOP
			RETURN
;----------------------------------------------
			END
