;************************************************************	
		include "P12F508.INC"
	__config	_MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
;************************************************************
		org	00h
		goto	Gou
;............................................................
;		Deklarace proměnných
;............................................................
TMP1	equ	08h
TMP2	equ	09h

TZ	equ	0Ah
TV	equ	0Bh

TMP5	equ	0Dh

TMP3	equ	0Eh
TMP4	equ	0Fh

#define	outA	GPIO,0
#define	outB	GPIO,1
#define	outC	GPIO,2
#define	outD	GPIO,4
#define	outE	GPIO,5
;............................................................
Gou		movlw	b'11001000'		;GP0 a GP1 jako výstup
		tris	GPIO
		movlw	b'11011111'
		option
		movlw	b'11001000'
		movwf	GPIO

Opak	movlw	01h
		movwf	TZ
		movlw	0FFh
		movwf	TV
;...................................................
		movlw	0FFh
		movwf	TMP3
Loop1	movlw	01h
		movwf	TMP4
Loop2	decfsz	TMP4,F
		goto	Loop2
		call	VystupA
		call	Plus
		decfsz	TMP3,F
		goto	Loop1
		movlw	0FFh
		movwf	TMP3
Loop3	movlw	01h
		movwf	TMP4
Loop4	decfsz	TMP4,F
		goto	Loop4
		call	Minus
		call 	VystupA
		decfsz	TMP3,F
		goto	Loop3
;.................................................
		movlw	0FFh
		movwf	TMP3
Loop5	movlw	01h
		movwf	TMP4
Loop6	decfsz	TMP4,F
		goto	Loop6
		call	VystupB
		call	Plus
		decfsz	TMP3,F
		goto	Loop5
		movlw	0FFh
		movwf	TMP3
Loop7	movlw	01h
		movwf	TMP4
Loop8	decfsz	TMP4,F
		goto	Loop8
		call	Minus
		call 	VystupB
		decfsz	TMP3,F
		goto	Loop7
;................................................
		movlw	0FFh
		movwf	TMP3
Loop9	movlw	01h
		movwf	TMP4
Loop10	decfsz	TMP4,F
		goto	Loop10
		call	VystupC
		call	Plus
		decfsz	TMP3,F
		goto	Loop9
		movlw	0FFh
		movwf	TMP3
Loop11	movlw	01h
		movwf	TMP4
Loop12	decfsz	TMP4,F
		goto	Loop12
		call	Minus
		call 	VystupC
		decfsz	TMP3,F
		goto	Loop11
;................................................
		movlw	0FFh
		movwf	TMP3
Loop13	movlw	01h
		movwf	TMP4
Loop14	decfsz	TMP4,F
		goto	Loop14
		call	VystupD
		call	Plus
		decfsz	TMP3,F
		goto	Loop13
		movlw	0FFh
		movwf	TMP3
Loop15	movlw	01h
		movwf	TMP4
Loop16	decfsz	TMP4,F
		goto	Loop16
		call	Minus
		call 	VystupD
		decfsz	TMP3,F
		goto	Loop15
;................................................
		movlw	0FFh
		movwf	TMP3
Loop17	movlw	01h
		movwf	TMP4
Loop18	decfsz	TMP4,F
		goto	Loop18
		call	VystupE
		call	Plus
		decfsz	TMP3,F
		goto	Loop17
		movlw	0FFh
		movwf	TMP3
Loop19	movlw	01h
		movwf	TMP4
Loop20	decfsz	TMP4,F
		goto	Loop20
		call	Minus
		call 	VystupE
		decfsz	TMP3,F
		goto	Loop19
;................................................
		movlw	40h
		movwf	TMP5
Loop23	movlw	0FFh
		movwf	TMP3
Loop21	movlw	0FFh
		movwf	TMP4
Loop22	decfsz	TMP4,F
		goto	Loop22
		decfsz	TMP3,F
		goto	Loop21	
		decfsz	TMP5,F
		goto	Loop23
		goto	Opak
;............................................................
;		Podprogramy
;............................................................
VystupA	bsf	outA
		call	delayTZ
		bcf	outA
		call	delayTV
		retlw 00h
;.................................................
VystupB	bsf	outB
		call	delayTZ
		bcf	outB
		call	delayTV
		retlw 00h
;.................................................
VystupC	bsf	outC
		call	delayTZ
		bcf	outC
		call	delayTV
		retlw 00h
;.................................................
VystupD	bsf	outD
		call	delayTZ
		bcf	outD
		call	delayTV
		retlw 00h
;.................................................
VystupE	bsf	outE
		call	delayTZ
		bcf	outE
		call	delayTV
		retlw 00h
;..................................................
delayTZ	movf	TZ,W
		movwf	TMP1
Opak1	movlw	0Ah
		movwf	TMP2
Opak2	decfsz	TMP2,F
		goto	Opak2
		decfsz	TMP1,F
		goto	Opak1
		retlw	00h
;............................................................
delayTV	movf	TV,W
		movwf	TMP1
Opak5	movlw	0Ah
		movwf	TMP2
Opak4	decfsz	TMP2,F
		goto	Opak4
		decfsz	TMP1,F
		goto	Opak5
		retlw	00h
;............................................................
Plus	bcf	STATUS,Z
		incf	TZ,F
		decf	TV,F
		btfss	STATUS,Z
		retlw	00h
		decf	TZ,F
		incf	TV,F	
		retlw	00h
;............................................................
Minus	bcf	STATUS,Z
		decf	TZ,F
		incf	TV,F
		btfss	STATUS,Z
		retlw	00h
		movlw	01h
		movwf	TZ
		movlw	0FFh
		movwf	TV
		retlw	00h
;************************************************************
		end