; ??????? ??????=20,0
	list p=16f628
	#include	<p16f628.inc>

	 __CONFIG  _HS_OSC & _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF    
 
; _CP_ALL ; _DATA_CP_ON ;

        errorlevel      -302    ;Nem hibaüzenetet bankváltás

;============================================================================================	

banc0	macro
	bcf  STATUS,RP0
	bcf  STATUS,RP1
	endm
banc1	macro
	bsf  STATUS,RP0
	bcf  STATUS,RP1
	endm
banc2	macro
	bsf  STATUS,RP1
	bcf  STATUS,RP0
	endm
banc3	macro
	bsf  STATUS,RP0
	bsf  STATUS,RP1
	endm
;==============================================================================================	
;konstansok
K_TMR0	equ	D'11'		;Állandó időmérő TMR0 = 0,1 ms, 10 kHz-es modulációs
K_SH	equ	D'100'		;Állandó frekvencia vizsgálatok azt mutatják, 10ms
K_SL	equ	D'50'		;Az állandó frekvenciapásztázó gombok 500ms
K_M60	equ	D'0'		;167 állandó alacsony byte számlálókat, idő-kapcsoló A és B fázis 
K_S60	equ	D'167'		;????????? ???????? ????? ??? ????????? ??????? ???????????? ????- ? ? B 
K_M90	equ	D'0'		;250; ????????? ???????? ????? ??? ????????? ??????? ???????????? ?????? ????
K_S90	equ	D'250'		;????????? ???????? ????? ??? ????????? ??????? ???????????? ?????? ????
K_NO	equ	D'5'		;????????? ???????? ?????????? ????????

;NYILVÁNTARTÁSOK
ZAD_F	equ	H'20'		;???????? ??????? ??????????? ?????????
S_P_MR	equ	H'21'		;??????? ?????????? ??????? ????????? ??????? ??????
S_P_SR	equ	H'22'		;??????? ?????????? ??????? ????????? ??????? ??????
TEMP	equ	H'23'		;????????? ??????? ??????? ?????????
S_A_MR	equ	H'26'		;??????? ???? A -??????? ??????
S_A_SR	equ	H'27'		;??????? ???? A -??????? ??????
S_B_MR	equ	H'28'		;??????? ???? B -??????? ??????
S_B_SR	equ	H'29'		;??????? ???? B -??????? ??????
S_C_MR	equ	H'2A'		;??????? ???? C -??????? ??????
S_C_SR	equ	H'2B'		;??????? ???? C -??????? ??????

RA_A	equ	H'2F'		;??????? ????????? ???? -A
RA_B	equ	H'30'		;??????? ????????? ???? -B
RA_C	equ	H'31'		;??????? ????????? ???? -C
RF	equ	H'32'		;???.?????: ??? ?????? ,1????=0 ?????? ?? ????, =1 ?????? ?? ???? ,2????=1 ?????? ?? +,3????=1 ?????? ?? -
				; ??? ????????? 4????=0-???? ????? ??.????, =1-???? ????? ??.????
				;??? ??? ;5-????=1- ????-A, =0-????????? ????- A;6-????=1- ????-B, =0-????????? ????- B
				;7-????=1- ????-C, =0-????????? ????- C;
RF1	equ	H'33'		;???.?????:???????? ????????? ?????? ???. 0-????.=0 ???? A +????????,0-????.=1 ???? A -????????
				;1-????.=0 ???? B +????????,1-????.=1 ???? B -????????;2-????.=0 ???? C +????????,2-????.=1 ???? C -????????			
UI1 	equ 	H'34'		;?????????? ????? ?????????? ?? ?????????
UI2 	equ 	H'35'		;?????????? ????? ?????????? ?? ?????????
UI 	equ 	H'36'		;????????? ??????? ??? ?????????
D_SH	equ	H'37'		;??????? ??????? ???????????? ?????? ??????? ????
D_SL	equ	H'38'		;??????? ??????? ???????????? ??????  ??????? ????
R_NO	equ	H'39'		;??????? ???????? ?????????? ????????

cnt1	equ 	H'3A'		;????????? ???????
cnt2	equ 	H'3B'		;????????? ???????
cnt3	equ 	H'3C'		;????????? ???????

ADROZU		equ     H'40'	; ????? ???
DTIM		equ     H'41'	; ?????? ???
W_COPY		equ	H'42'	; ????? ???????? W
STATUS_COPY	equ	H'43'	; ????? ???????? STATUS
;==============================================================================================	
        org 0			;?????? ??????
	goto	START
;==============================================================================================		
	org 4			;?????? ??????????				
	movwf	W_COPY		;?????????? ?????- W ????????? ? ???????? W_COPY
	swapf	STATUS,W	;???????? ????????? ? ???????? status ? ???????? ? W
	movwf	STATUS_COPY	;W ????????? ? ???????? STATUS_COPY
	btfsc	INTCON,T0IF	;?????????? ?? ???????????? ??????? TMR0
	goto	INT_TMR0	
END_PRER			;?????????????? ?????
	swapf	STATUS_COPY,W	;???????? ????????? STATUS ? ???????? ? W
	movwf	STATUS		;w-??????? ? STATUS
	swapf	W_COPY,F	;???????? ????????? ? ???????? W_COPY ? ????????? ? W_COPY
	swapf	W_COPY,W	;???????? ????????? ? ???????? W_COPY ? ??????????? ??????? W ??? ??????????? ?? STATUS
	retfie
;==============================================================================================		
INT_TMR0
	movlw	K_TMR0
	movwf	TMR0		;????????? ????????? ? TMR0				
	bcf	INTCON,T0IF	;?????????? ???? ?? ?????????? ??????? TMRO,? ????? ????????? ??????????
	clrwdt				
				;??????? ?????????? S_P_MR , S_P_SR ?? ??????? ?????? ?? TEMP=???????? ??????? ?????????			
	movf	TEMP,w
	call	P_MR		;?????????? ??????? ?????????? S_P_MR
      	clrf    PCLATH		;
	movwf	S_P_MR		;w-->S_P_MR
	movf	TEMP,w
	call	P_SR		;?????????? ??????? ?????????? S_P_SR
      	clrf    PCLATH		;
	movwf	S_P_SR		;w-->S_P_SR

;----------

				;????????????? ??????? ?????? ??? ????- ? ? ????????????????? ?????
	btfsc	RF1,0		;????????? ???? ???? -?
	goto	P2		;????????? ??????? ?????? ?? ?????????? ?????? ?? ??????? S_P_MR ? S_P_SR ????????? ?? ??????? ???????????????
				;????? ??????????? ??????? ?????? ?? ??????????
	movf	S_P_MR,W	;S_P_MR -->W
	addwf	S_A_MR,F	;S_A_MR +W-->S_A_MR
	btfss	STATUS,C	;???????? ???? ????????????
	goto	P1		;???
	movlw	D'6'		;??, ????????? -->W
	addwf	S_A_MR,F	;?????????? ????????????? ???????? S_A_MR +W-->S_A_MR
P3	incf	S_A_SR,F	;S_A_SR+1-->S_A_SR
	movf	S_A_SR,w	;??????? S_A_SR=K_S90, S_A_SR-->W
	sublw	K_S90		;K_S90 - W->W
	btfsc	STATUS,Z	;S_A_SR=K_S90
	goto	P4		;?? ?????
P5	movf	S_P_SR,W	;???, S_P_SR -->W
	addwf	S_A_SR,F	;S_A_SR +W-->S_A_SR
	btfsc	STATUS,C	;???????? ???? ????????????
	goto	P4		;??, ???? ????????????
	movf	S_A_SR,w	;???, S_A_SR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_A_SR>K_S90
	goto	P4		;??
	btfsc	STATUS,Z	;???, ???????? S_A_SR=K_S90
	goto	P4		;??
	goto	P6		;???, ?????
P4	movlw	K_S90		;K_S90 -->W
	movwf	S_A_SR		;W-->S_A_SR
	clrf	S_A_MR		;???????? S_A_MR
	bsf	RF1,0		;????????????? ??????? ?? ?????????? ????????
	goto	P6		;?????
P1	movf	S_A_MR,w	;???, S_A_MR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_A_MR>K_S90
	goto	P7		;??
	btfss	STATUS,Z	;???, ???????? S_A_MR=K_S90
	goto	P5		;???	
	clrf	S_A_MR		;???????? S_A_MR
	goto	P3		;
P7	movlw	K_S90		;K_S90 -->W
	subwf	S_A_MR,F	;S_A_MR-K_S90 -->S_A_MR
	goto	P3		;
P2				;????????? ??????? ?????? ?? ??????????
	movf	S_A_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_A_SR=0
	goto	M1		;??
	movf	S_P_MR,W	;???, S_P_MR -->W
	subwf	S_A_MR,F	;S_A_MR-W-->S_A_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M2		;???
	movlw	D'6'		;??, ????????? -->W
	subwf	S_A_MR,F	;?????????? ????????????? ???????? S_A_MR-W-->S_A_MR	
	decf	S_A_SR,F	;S_A_SR-1-->S_A_SR
	movf	S_A_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_A_SR=0
	goto	M3		;??
M2	movf	S_P_SR,W	;???, S_P_SR -->W
	subwf	S_A_SR,F	;S_A_SR-W-->S_A_SR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M4		;???
	clrf	S_A_SR		;???????? S_A_SR
	goto	M5
M3	movf	S_A_MR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_A_MR=0
	goto	M6		;??
	goto	M2		;???
M4	movf	S_A_SR,F	;???????? ???? -Z
	btfss	STATUS,Z	;???????? S_A_SR=0
	goto	P6		;???
	movf	S_A_MR,F	;??, ???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_A_MR=0
	goto	M6		;??
	goto	P6		;???
M1	movf	S_P_MR,W	;??, S_P_MR -->W
	subwf	S_A_MR,F	;S_A_MR-W-->S_A_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M2		;???
M5	clrf	S_A_MR		;???????? S_A_MR	
M6	bcf	RF1,0		;??????????? ???? ?? ?????????? ?????? ????????
	movlw	K_M60		;????????? ????????? ? ???????? ????????? ???
	movwf	S_B_MR		;??? ????????????? ?????
	movwf	S_C_MR		;
	movlw	K_S60	   
	movwf	S_B_SR	
	movwf	S_C_SR	
	clrf	RA_A		;???????? ??????? ????????? ????- A
	btfsc	RF,5		;??????????? ????? ???? -A ?????? ??? ?????????
	goto	RES_A		;??? ???????????? ????????? ? ?????? ?? ????????? ???? ? ????????
	bsf	RF,5
	goto	P6		;????? ?? ????????? ???? A
RES_A	bcf	RF,5		;
P6				;????? ?? ????????? ???? -A
;----------
				;????????????? ??????? ?????? ??? ????- B ? ????????????????? ?????
	btfsc	RF1,1		;????????? ???? ???? -B
	goto	P12		;????????? ??????? ?????? ?? ?????????? ?????? ?? ??????? S_P_MR ? S_P_SR ????????? ?? ??????? ???????????????
				;????? ??????????? ??????? ?????? ?? ??????????
	movf	S_P_MR,W	;S_P_MR -->W
	addwf	S_B_MR,F	;S_B_MR +W-->S_B_MR
	btfss	STATUS,C	;???????? ???? ????????????
	goto	P11		;???
	movlw	D'6'		;??, ????????? -->W
	addwf	S_B_MR,F	;?????????? ????????????? ???????? S_B_MR +W-->S_B_MR
P13	incf	S_B_SR,F	;S_B_SR+1-->S_B_SR
	movf	S_B_SR,w	;??????? S_B_SR=K_S90, S_B_SR-->W
	sublw	K_S90		;K_S90 - W->W
	btfsc	STATUS,Z	;S_B_SR=K_S90
	goto	P14		;?? ?????
P15	movf	S_P_SR,W	;???, S_P_SR -->W
	addwf	S_B_SR,F	;S_B_SR +W-->S_B_SR
	btfsc	STATUS,C	;???????? ???? ????????????
	goto	P14		;??, ???? ????????????
	movf	S_B_SR,w	;???, S_B_SR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_B_SR>K_S90
	goto	P14		;??
	btfsc	STATUS,Z	;???, ???????? S_B_SR=K_S90
	goto	P14		;??
	goto	P16		;???, ?????
P14	movlw	K_S90		;K_S90 -->W
	movwf	S_B_SR		;W-->S_B_SR
	clrf	S_B_MR		;???????? S_B_MR
	bsf	RF1,1		;????????????? ??????? ?? ?????????? ????????
	goto	P16		;?????
P11	movf	S_B_MR,w	;???, S_B_MR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_B_MR>K_S90
	goto	P17		;??
	btfss	STATUS,Z	;???, ???????? S_B_MR=K_S90
	goto	P15		;???	
	clrf	S_B_MR		;???????? S_B_MR
	goto	P13		;
P17	movlw	K_S90		;K_S90 -->W
	subwf	S_B_MR,F	;S_B_MR-K_S90 -->S_B_MR
	goto	P13		;
P12				;????????? ??????? ?????? ?? ??????????
	movf	S_B_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_B_SR=0
	goto	M11		;??
	movf	S_P_MR,W	;???, S_P_MR -->W
	subwf	S_B_MR,F	;S_B_MR-W-->S_B_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M12		;???
	movlw	D'6'		;??, ????????? -->W
	subwf	S_B_MR,F	;?????????? ????????????? ???????? S_B_MR-W-->S_B_MR	
	decf	S_B_SR,F	;S_B_SR-1-->S_B_SR
	movf	S_B_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_B_SR=0
	goto	M13		;??
M12	movf	S_P_SR,W	;???, S_P_SR -->W
	subwf	S_B_SR,F	;S_B_SR-W-->S_B_SR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M14		;???
	clrf	S_B_SR		;???????? S_B_SR
	goto	M15
M13	movf	S_B_MR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_B_MR=0
	goto	M16		;??
	goto	M12		;???
M14	movf	S_B_SR,F	;???????? ???? -Z
	btfss	STATUS,Z	;???????? S_B_SR=0
	goto	P16		;???
	movf	S_B_MR,F	;??, ???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_B_MR=0
	goto	M16		;??
	goto	P16		;???
M11	movf	S_P_MR,W	;??, S_P_MR -->W
	subwf	S_B_MR,F	;S_B_MR-W-->S_B_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M12		;???
M15	clrf	S_B_MR		;???????? S_B_MR	
M16	bcf	RF1,1		;??????????? ???? ?? ?????????? ?????? ????????
	movlw	K_M60		;????????? ????????? ? ???????? ????????? ???
	movwf	S_A_MR		;??? ????????????? ?????
	movwf	S_C_MR		;
	movlw	K_S60	   
	movwf	S_A_SR	
	movwf	S_C_SR	
	clrf	RA_B		;???????? ??????? ????????? ????- B
	btfsc	RF,6		;??????????? ????? ???? -B ?????? ??? ?????????
	goto	RES_B		;??? ???????????? ????????? ? ?????? ?? ????????? ???? ? ????????
	bsf	RF,6
	goto	P16		;????? ?? ????????? ???? B
RES_B	bcf	RF,6		;
P16				;????? ?? ????????? ???? B
;----------
				;????????????? ??????? ?????? ??? ????- C ? ????????????????? ?????
	btfsc	RF1,2		;????????? ???? ???? -C
	goto	P22		;????????? ??????? ?????? ?? ?????????? ?????? ?? ??????? S_P_MR ? S_P_SR ????????? ?? ??????? ???????????????
				;????? ??????????? ??????? ?????? ?? ??????????
	movf	S_P_MR,W	;S_P_MR -->W
	addwf	S_C_MR,F	;S_C_MR +W-->S_C_MR
	btfss	STATUS,C	;???????? ???? ????????????
	goto	P21		;???
	movlw	D'6'		;??, ????????? -->W
	addwf	S_C_MR,F	;?????????? ????????????? ???????? S_C_MR +W-->S_C_MR
P23	incf	S_C_SR,F	;S_C_SR+1-->S_C_SR
	movf	S_C_SR,w	;??????? S_C_SR=K_S90, S_C_SR-->W
	sublw	K_S90		;K_S90 - W->W
	btfsc	STATUS,Z	;S_C_SR=K_S90
	goto	P24		;?? ?????
P25	movf	S_P_SR,W	;???, S_P_SR -->W
	addwf	S_C_SR,F	;S_C_SR +W-->S_C_SR
	btfsc	STATUS,C	;???????? ???? ????????????
	goto	P24		;??, ???? ????????????
	movf	S_C_SR,w	;???, S_C_SR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_C_SR>K_S90
	goto	P24		;??
	btfsc	STATUS,Z	;???, ???????? S_C_SR=K_S90
	goto	P24		;??
	goto	P26		;???, ?????
P24	movlw	K_S90		;K_S90 -->W
	movwf	S_C_SR		;W-->S_C_SR
	clrf	S_C_MR		;???????? S_C_MR
	bsf	RF1,2		;????????????? ??????? ?? ?????????? ????????
	goto	P26		;?????
P21	movf	S_C_MR,w	;???, S_C_MR-->W
	sublw	K_S90		;K_S90 -W->W
	btfss	STATUS,C	;???????? S_C_MR>K_S90
	goto	P27		;??
	btfss	STATUS,Z	;???, ???????? S_C_MR=K_S90
	goto	P25		;???	
	clrf	S_C_MR		;???????? S_C_MR
	goto	P23		;
P27	movlw	K_S90		;K_S90 -->W
	subwf	S_C_MR,F	;S_C_MR-K_S90 -->S_C_MR
	goto	P23		;
P22				;????????? ??????? ?????? ?? ??????????
	movf	S_C_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_C_SR=0
	goto	M21		;??
	movf	S_P_MR,W	;???, S_P_MR -->W
	subwf	S_C_MR,F	;S_C_MR-W-->S_C_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M22		;???
	movlw	D'6'		;??, ????????? -->W
	subwf	S_C_MR,F	;?????????? ????????????? ???????? S_C_MR-W-->S_C_MR	
	decf	S_C_SR,F	;S_C_SR-1-->S_C_SR
	movf	S_C_SR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_C_SR=0
	goto	M23		;??
M22	movf	S_P_SR,W	;???, S_P_SR -->W
	subwf	S_C_SR,F	;S_C_SR-W-->S_C_SR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M24		;???
	clrf	S_C_SR		;???????? S_C_SR
	goto	M25
M23	movf	S_C_MR,F	;???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_C_MR=0
	goto	M26		;??
	goto	M22		;???
M24	movf	S_C_SR,F	;???????? ???? -Z
	btfss	STATUS,Z	;???????? S_C_SR=0
	goto	P26		;???
	movf	S_C_MR,F	;??, ???????? ???? -Z
	btfsc	STATUS,Z	;???????? S_C_MR=0
	goto	M26		;??
	goto	P26		;???
M21	movf	S_P_MR,W	;??, S_P_MR -->W
	subwf	S_C_MR,F	;S_C_MR-W-->S_C_MR
	btfsc	STATUS,C	;???????? ??? ????
	goto	M22		;???
M25	clrf	S_C_MR		;???????? S_C_MR	
M26	bcf	RF1,2		;??????????? ???? ?? ?????????? ?????? ????????
	movlw	K_M60		;Betöltése állandók a nyilvántartásokat számlálók fázisok
	movwf	S_A_MR		;Beállítani a ciklust
	movwf	S_B_MR		;
	movlw	K_S60	   
	movwf	S_A_SR	
	movwf	S_B_SR	
	clrf	RA_C		;Az amplitúdók a nulla meg a fázis-C regiszter
	btfsc	RF,7		;Fordítsa a fázis-C zászlók direkt vagy inverz
	goto	RES_C		;váltani direct-to-impulzus fázismegfordulás és fordítva
	bsf	RF,7
	goto	P26		;A kimenet feldolgozása a fázis C
RES_C	bcf	RF,7		;
P26				;A kimenet feldolgozása a fázis C



;----------

	btfss	RF,1		;Ellenőrzése a Stop gomb megnyomásával	
	goto 	STOP		;Igen, az átmenet
				;Start gomb megnyomásakor
	btfss	PORTA,5		;Vizsgálati jel volt a védelmi
	goto 	AVAR		;Igen, az átmenet
;----------
				;Indítsa el a motort, sima növekedésével gyakorisága a nulla ZAD_F referencia-frekvencia				

	movf	PORTB,W		
	iorlw	b'00111111'	;Kapcsolja ki a kulcsokat, ha ezeket felvették
	movwf	PORTB
				;Túlcsordulás a regisztráció lendületet adnak az amplitúdó
	btfsc	RF,5		;ellenőrizze a zászló a fázis-A
	call	I_A		;Annak érdekében, hogy lendületet ad a közvetlen fázis-A
	btfss	RF,5		;ellenőrizze a zászló a fázis-A
	call	I_A_		;Annak érdekében, hogy lendületet adjon egy fordított fázis-A
	btfsc	RF,6		;ellenőrizze a zászló a fázis-B
	call	I_B		;Annak érdekében, hogy lendületet ad a közvetlen fázis-B
	btfss	RF,6		;ellenőrizze a zászló a fázis-B
	call	I_B_		;Annak érdekében, hogy lendületet adjon egy fordított fázis-B
	btfsc	RF,7		;ellenőrizze a zászló a fázis-C
	call	I_C		;Annak érdekében, hogy lendületet ad a közvetlen fázis-C
	btfss	RF,7		;ellenőrizze a zászló a fázis-C
	call	I_C_		;Annak érdekében, hogy lendületet adjon egy fordított fázisú C-




;----------
STOP
				;Kimenet megjelenítésére és állítsa be a sorrendben, a kijelző és a funkció gombnyomás
	decfsz	D_SH,f		;???????? ??? ????????? ????????????? ? ????????? D_SH
	goto	EX_UI2		;???????? ?? ???????? ????? 
				
 	movlw	K_SH		;????????? ????????? ? ???????? ??????? ???????????? ?????????
	movwf	D_SH		;????????? K_SH--> ? D_SH
	btfsc	RF,4		;????????? ??? 0 ? 4 ??????? ???????? RF
	goto 	EX_UI1		;???-????????? UI1 ?? ???????
	bcf	PORTB,6		;??-????? UI2

				;????????? ???????? ??????? ??????
	clrf	PORTA
	bsf	PORTA,0		;1->RA0
	nop			;???????? ??? ?????? ?????????????? ? ???????? ???.-?????? ?????
	nop
	nop
	nop
	btfsc	PORTA,4		;????????? ?????? ?????? ????
	bsf	RF,1		;??- ????????????? ???????

	clrf	PORTA
	bsf	PORTA,1		;1->RA1
	nop			;???????? ??? ?????? ?????????????? ? ???????? ???.-?????? ?????
	nop
	nop
	nop
	btfsc	PORTA,4		;????????? ?????? ?????? ????
	goto	STOP_	
Y_ST

				;?????? ??????????? ??????? ????????? ?? 1 ?? ZAD_F
	movf	R_NO,f
        btfss 	STATUS,Z	;????????? ?????? ????? ???????? ? R_NO
	goto	N_R_NO		;???
	movf	TEMP,w		;?? , ????????? TEMP=ZAD_F
	subwf	ZAD_F,w
	btfsc	STATUS,Z
	goto	NO_PM		;??????? ????????? ? ???????? ??????? ????? TEMP=ZAD_F
        btfss 	STATUS,C        ;????????? ???? "???????"
        goto	EX1		;ZAD_F<TEMP
	incf	TEMP,f		;ZAD_F>TEMP, TEMP+1->TEMP
        goto	EX2
EX1	decf	TEMP,f		;ZAD_F<TEMP, TEMP-1->TEMP
EX2	movlw	K_NO		;
	movwf	R_NO		;????????? ????????? ? ??????? ???????? ?????????? ????????
	goto	NO_PM
N_R_NO	decf	R_NO,f		;??? R_NO-1->R_NO

NO_PM
		
	decfsz	D_SL,f		;????????? ???????? +,- ? ????????? ????????????? ? ????????? D_SL
	goto	NO_P		;???????? ?? ???????? ????? 
				;????????? ????????? ? ???????? ??????? ???????????? ?????? 
	movlw	K_SL		;????????? K_SL ? W
	movwf	D_SL		;W ????????? ? D_SL
	clrf	PORTA
	bsf	PORTA,2		;1->RA2
	nop			;???????? ??? ?????? ?????????????? ? ???????? ???.-?????? ?????
	nop
	nop
	nop
	btfsc	PORTA,4		;????????? ?????? ?????? +
	bsf	RF,2		;??- ????????????? ???????
	clrf	PORTA
	bsf	PORTA,3		;1->RA3
	nop			;???????? ??? ?????? ?????????????? ? ???????? ???.-?????? ?????
	nop
	nop
	nop
	btfsc	PORTA,4		;????????? ?????? ?????? -
	bsf	RF,3		;??- ????????????? ???????


NO_P
	movf	UI1,0		;????????? ??????? UI1 ->W
	movwf	PORTA		;??????? ?????? ? ???? A ?? ?????????
	bsf	PORTB,7		;???????? UI1
	bsf	RF,4		;????????????? ??????? ????????? 2 ???????
	goto 	EX_UI2		;????????? UI2 ?? ???????
EX_UI1	bcf	PORTB,7		;??-????? UI1
	movf	UI2,0		;????????? ??????? UI2->W
	movwf	PORTA		;??????? ?????? ? ???? A ?? ?????????
	bsf	PORTB,6		;???????? UI2
	bcf	RF,4		;????????????? ??????? ????????? 1 ???????
EX_UI2
		
	goto	END_PRER	;????? ?? ??????????

;==============================================================================================	
STOP_
	movlw	b'00111111'	;????????? ??? ?????
	iorwf	PORTB,f	
				;???????? ????? ??????????


	bcf	RF,1		;??- ????????????? ???????
ST	movlw	D'1'		;???????? ????????? ??????? ?????????
	movwf	TEMP
	bsf 	PORTB,6		;???????? ???????, ??????????? ??????????? ??????? ?? ???????? 
	bsf 	PORTB,7		;?.?. ????? ???? ????????? ???????? ? ?????????????? ??????
;-------------			???????????? ???????? ?? 2 ???
 		movlw D'255' 	;??
                movwf cnt2 
		movlw D'255' 	;??	
                movwf cnt1   
    		movlw D'60' 	;??
                movwf cnt3      
dloop2		clrwdt
       	    	decfsz cnt2,f 
                goto $+2 
                decfsz cnt1,f 
                goto dloop2 
                decfsz cnt3,f 
                goto dloop2 
	bcf 	PORTB,6		;????????? ???????
	bcf 	PORTB,7		
				;????????? ????? ??????????

		goto	Y_ST
;-------------


AVAR	bcf	RF,1		;?????????? ??????? ?????? ????
	movlw	b'00111111'	
	iorwf	PORTB,f		;????????? ??? ????? ??? ?????? ??????
	goto	STOP
;==============================================================================================	
I_A	movf	S_A_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L1		;?? ???????? ????
	movf	S_A_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_A,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI5
L1	bcf	PORTB,0		;?? ???????? ???? ????- A	
	return
VI5	bsf	PORTB,0		;????? ????????? ???? ????- A
	return
;==============================================================================================	
I_A_	movf	S_A_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L2		;?? ???????? ????
	movf	S_A_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_A,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI6
L2	bcf	PORTB,3		;?? ???????? ???? ????- A-???????	
	return
VI6	bsf	PORTB,3		;????? ????????? ???? ????- A-???????
	return
;==============================================================================================
I_B	movf	S_B_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L3		;?? ???????? ????
	movf	S_B_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_B,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI3
L3	bcf	PORTB,1		;?? ???????? ???? ????- B	
	return
VI3	bsf	PORTB,1		;????? ????????? ???? ????- B
	return
;==============================================================================================	
I_B_	movf	S_B_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L4		;?? ???????? ????
	movf	S_B_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_B,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI4
L4	bcf	PORTB,4		;?? ???????? ???? ????- B-???????	
	return
VI4	bsf	PORTB,4		;????? ????????? ???? ????- B-???????
	return
;==============================================================================================	
I_C	movf	S_C_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L5		;?? ???????? ????
	movf	S_C_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_C,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI1
L5	bcf	PORTB,2		;?? ???????? ???? ????- ?	
	return
VI1	bsf	PORTB,2		;????? ????????? ???? ????- ?
	return
;==============================================================================================	
I_C_	movf	S_C_SR,w	;????????? ????? ??????? ???????
	sublw	D'240'		;???? ????? >240 
        btfss 	STATUS,C
	goto	L6		;?? ???????? ????
	movf	S_C_SR,w	;????????? ????? ??????? ???????
	call	sinus		;?????????? ??????? ?????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????	
	addwf	RA_C,f		;??????? ????????? ???????
	btfss	STATUS,C	;????????? ???????????? ?????????
	goto	VI2
L6	bcf	PORTB,5		;?? ???????? ???? ????- ?-???????	
	return
VI2	bsf	PORTB,5		;????? ????????? ???? ????- ?-???????
	return
;==============================================================================================			
START 				;????????????? ????????? ??????????
	banc0			;??????. ?? ????0
	clrf	PORTA		;???????? PORTA
	movlw	B'00000111'	;????????? ??????????
        movwf 	CMCON		;PORTA-???????? ????? -??????
	movlw	B'00111111'	;????? ??????????,
        movwf   PORTB		;????????? ??? ?????	
	movlw	K_TMR0
	movwf	TMR0		;????????? ????????? ? TMR0	
        banc1		 	;??????. ?? ????1
	bcf	VRCON,VREN	;????????? ???????? ???????? ??????????
	movlw   B'10000000'  	;??????.???.????? B ????,???? ?????.?? ???? TMR0,?????. TMR0,????.???=1:2
        movwf   OPTION_REG 
        movlw   B'00110000'  	;????? R?0-R?3, ?? ?????,RA4-RA5-????
        movwf   TRISA 
        movlw   B'00000000'  	;????? RB0-RB7 ?? ????? 
        movwf   TRISB 
        movlw   B'10100000'  	;????? ?????? ? ????. ?? TMR0 -?????????
        movwf   INTCON	
	banc0
				;??????? ???? ?????????
	bsf	20,1		;20- ????????? ?????
	movlw	4F		;???????? ?????
	movwf	FSR
Clr	clrf	INDF
	decf	FSR,F
	btfsc	20,1		;20- ????????? ?????
	goto	Clr

	movlw	K_NO
	movwf	R_NO		;????????? ????????? ? ??????? ???????? ?????????? ????????

	movlw	D'1'		;???????? ????????? ??????? ?????????
	movwf	TEMP

 	movlw	B'00100000'	;????????????? ??????? ????????????? ????????? ????- A; B,C-?????????????
	movwf	RF		
 	movlw	B'00000010'	;????????? ????????? ????? ???????? ???? B- ; A,C+
	movwf	RF1	

 	movlw	K_M60		;????????? ????????? ? ???????? ????????? ???
	movwf	S_A_MR		;??????????????? ?????? ?????
	movwf	S_B_MR		;???? C-??? ????????
 	movlw	K_S60	   
	movwf	S_A_SR	
	movwf	S_B_SR	
				;????????? ????????? ? ???????? ??????? ???????????? ?????? 
 	movlw	K_SH		;????????? K_SH ? W
	movwf	D_SH		;W ????????? ? D_SH
	movlw	K_SL		;????????? K_SL ? W
	movwf	D_SL		;W ????????? ? D_SL

				;????????? ?? ??? ???????? ??????? ?????????
	movlw	D'0'		;????????? ????? ??? ? W
	call	SCHIT		;????????? ZAD_F ?? ???
	movwf	ZAD_F		;??????? ?????? ?? ??? ? ??????? ZAD_F

	call	B_D		;?????????????? ????????? ? ???????-??????????


;==============================================================================================	
CIKL
 	clrwdt			;????? WDT

	btfsc	RF,2		;????????? ??? 0 ?? 2-???? ???????? RF
	call    Y_KN_P		;???-?????? ?????? +1 ?????? 
	btfsc	RF,3		;????????? ??? 0 ? 3-???? ???????? RF
	call    Y_KN_M		;???-?????? ?????? -1 ?????? 


	goto	CIKL		;???? ?????????

;==============================================================================================		 				
Y_KN_P				;????????? ???????? ??????? ????????? ??? ?????? +1
	movlw	D'99'		;?????????
	subwf	ZAD_F,W		;???? ZAD_F=99 
        btfss 	STATUS,Z        ;?? ZAD_F=99  ????????? ???? Z=0 ????? ????????????? ????? ???"	
        incf 	ZAD_F,f         ;?????? ZAD_F=ZAD_F+1

	call	B_D		;?????????????? ????????? ? ???????-??????????
	bcf	RF,2		;?????????? ??????? ??????? ?????? +1
	goto	L9
Y_KN_M				;????????? ???????? ??????? ????????? ??? ?????? -1
	movlw	D'01'		;?????????
	subwf	ZAD_F,W		;???? ZAD_F=01 
        btfss 	STATUS,Z        ;?? ZAD_F=01  ????????? ???? Z=0 ????? ????????????? ????? ???"	
        decf 	ZAD_F,f         ;?????? ZAD_F=ZAD_F-1
	call	B_D		;?????????????? ????????? ? ???????-??????????
	bcf	RF,3		;?????????? ??????? ??????? ?????? -1
L9	movf	ZAD_F,0		;????????? ZAD_F ? W
	movwf	DTIM		;ZAD_F->DTIM
	movlw	D'0'		;????????? ????? ??? ? W
	call	ZAPIS		;?????? ? ZAD_F
	clrwdt			;????? WDT
	return		
;==============================================================================================	
B_D				;???????????????? bin ?? ZAD_F ? dec ? ???????? ? UI1 ? UI2
	movf	ZAD_F,w		;????????? ZAD_F -> W
	bcf	INTCON,GIE	;????????? ??? ??????????
	call	bin_dec		;???????????? bin->dec -????????? ????????
      	clrf    PCLATH		;????????? ???????? ???????? ??????
	bsf	INTCON,GIE	;????????? ??? ??????????
	movwf	UI		;W -> UI
	andlw	b'00001111'	;????? ??? UI1
	movwf	UI1		;W -> UI1
	swapf	UI,w		;?????? ??????? ??????? ? ??????? 4???? ->W
	andlw	b'00001111'	;????? ??? UI2
	movwf	UI2		;W -> UI2
	return	
;==============================================================================================		
				;???????????? ?????? ?????? ? ???
ZAPIS	
	bcf	INTCON,GIE	;????????? ??? ??????????
	banc1
	movwf	EEADR		;??????? ????? ??? ? ??????? ??????
	banc0
	movf	DTIM,0		;DTIM ????????? ? W
	banc1
	movwf	EEDATA		;??????? ?????? ? ??????? ?????? ???
	bsf	EECON1,WREN	;????????? ??????
	movlw	H'55'		;???????????? ???????? 
	movwf	EECON2		;??????????? ??? ??????????????
	movlw	H'AA'		;????????? ??????
	movwf	EECON2		;? ???? ??????
	bsf	EECON1,WR	;??????? ?????? ??????
	banc0
	bsf	INTCON,GIE	;????????? ??? ??????????
	return
;---------------------------				;???????????? ?????? ?????? ?? ???
SCHIT	bcf	INTCON,GIE	;????????? ??? ??????????
	banc1
	movwf	EEADR		;??????? ????? ??? ? ??????? ??????
	bsf	EECON1,RD	;??????? ??????
	movf	EEDATA,W	;?????? ?? ??? ????????? ? ???????? W
	banc0
	bsf	INTCON,GIE	;????????? ??? ??????????
	return
;============================================================================================	
			; ??????? ?????????????? BIN -> DEC ?? 2 ???????
			; ????????? ???? ????? ?????? 63 ?? ? ??????? ?? ???????
	org	H'300'
bin_dec bsf     PCLATH,0
	bsf     PCLATH,1
        addwf   PCL,F
	dt	00, 01, 02, 03, 04, 05, 06, 07, 08, 09
	dt	10, 11, 12, 13, 14, 15, 16, 17, 18, 19
	dt	20, 21, 22, 23, 24, 25, 26, 27, 28, 29
	dt	30, 31, 32, 33, 34, 35, 36, 37, 38, 39
	dt	40, 41, 42, 43, 44, 45, 46, 47, 48, 49
	dt	50, 51, 52, 53, 54, 55, 56, 57, 58, 59
	dt	60, 61, 62, 63, 64, 65, 66, 67, 68, 69
	dt	70, 71, 72, 73, 74, 75, 76, 77, 78, 79
	dt	80, 81, 82, 83, 84, 85, 86, 87, 88, 89
	dt	90, 91, 92, 93, 94, 95, 96, 97, 98, 99
;==============================================================================================	
	; ??????? ??????? *** ????? ?????????? ? ??????? ????????? ???? ????? ?? 240 ?? 250 ??
			; ????????????? ??? ???????????? 'C' ? ??????? ? ?? ??????? ? ???????
	org	H'400'
sinus   bsf    PCLATH,2	
 	addwf  PCL,F 
	dt	00,  02,  03,  05,  06,  08,  0A,  0B,  0D,  0E,  10,  12,  13,  15,  16,  18  
	dt	1A,  1B,  1D,  1E,  20,  22,  23,  25,  26,  28,  2A,  2B,  2D,  2E,  30,  32  
	dt	33,  35,  36,  38,  39,  3B,  3D,  3E,  40,  41,  43,  44,  46,  47,  49,  4B  
	dt	4C,  4E,  4F,  51,  52,  54,  55,  57,  58,  5A,  5B,  5D,  5E,  60,  61,  63 
	dt	64,  66,  67,  69,  6A,  6C,  6D,  6E,  70,  71,  73,  74,  76,  77,  79,  7A  
	dt	7B,  7D,  7E,  80,  81,  82,  84,  85,  86,  88,  89,  8B,  8C,  8D,  8F,  90  
	dt	91,  93,  94,  95,  96,  98,  99,  9A,  9C,  9D,  9E,  9F,  0A1, 0A2, 0A3, 0A4
	dt	0A6, 0A7, 0A8, 0A9, 0AA, 0AC, 0AD, 0AE, 0AF, 0B0, 0B2, 0B3, 0B4, 0B5, 0B6, 0B7  
	dt	0B8, 0BA, 0BB, 0BC, 0BD, 0BE, 0BF, 0C0, 0C1, 0C2, 0C3, 0C4, 0C5, 0C6, 0C7, 0C8  
	dt	0C9, 0CA, 0CB, 0CC, 0CD, 0CE, 0CF, 0D0, 0D1, 0D2, 0D3, 0D4, 0D5, 0D6, 0D6, 0D7  
	dt	0D8, 0D9, 0DA, 0DB, 0DC, 0DC, 0DD, 0DE, 0DF, 0E0, 0E0, 0E1, 0E2, 0E3, 0E3, 0E4  
	dt	0E5, 0E6, 0E6, 0E7, 0E8, 0E8, 0E9, 0EA, 0EA, 0EB, 0EC, 0EC, 0ED, 0ED, 0EE, 0EF  
	dt	0EF, 0F0, 0F0, 0F1, 0F1, 0F2, 0F2, 0F3, 0F3, 0F4, 0F4, 0F5, 0F5, 0F6, 0F6, 0F7  
	dt	0F7, 0F8, 0F8, 0F8, 0F9, 0F9, 0F9, 0FA, 0FA, 0FB, 0FB, 0FB, 0FB, 0FC, 0FC, 0FC  
	dt	0FD, 0FD, 0FD, 0FD, 0FE, 0FE, 0FE, 0FE, 0FE, 0FF, 0FF, 0FF, 0FF, 0FF, 0FF, 0FF  
	dt	0FF  
;==============================================================================================		
			;??????? ?????????? ??????? ????????? ??????? ??????
	org	H'500'
P_MR	bsf     PCLATH,0
	bsf     PCLATH,2
        addwf   PCL,F
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
	dt	00, 19, 32, 4B, 64, 7D, 96, 0AF, 0C8, 0E1
;==============================================================================================	
			;??????? ?????????? ??????? ????????? ??????? ??????
	org	H'600'
P_SR	bsf     PCLATH,1
	bsf     PCLATH,2
        addwf   PCL,F
	dt	00, 00, 00, 00, 00, 00, 00, 00, 00, 00
	dt	01, 01, 01, 01, 01, 01, 01, 01, 01, 01
	dt	02, 02, 02, 02, 02, 02, 02, 02, 02, 02
	dt	03, 03, 03, 03, 03, 03, 03, 03, 03, 03
	dt	04, 04, 04, 04, 04, 04, 04, 04, 04, 04
	dt	05, 05, 05, 05, 05, 05, 05, 05, 05, 05
	dt	06, 06, 06, 06, 06, 06, 06, 06, 06, 06
	dt	07, 07, 07, 07, 07, 07, 07, 07, 07, 07
	dt	08, 08, 08, 08, 08, 08, 08, 08, 08, 08
	dt	09, 09, 09, 09, 09, 09, 09, 09, 09, 09
;==============================================================================================	

	end



