;Festék léptető óra

PROCESSOR 16F627a
iNCLUDE P16F627a.INC
__CONFIG _CP_OFF & _PWRTE_ON & _BODEN_OFF & _LP_OSC & _LVP_OFF & _CPD_OFF & _WDT_OFF
mp	equ 35
#define impe  PORTB,4	
#define impo  PORTB,3	
#define led   portb,2
#define gomb  PORTA,3
#define jel	  20	
s_reg equ 22
w_reg equ 23
eng equ 21

goto kezd
org 0x004
	bcf intcon,t0if ;megszakítás törlése
	banksel portb
	bcf impe		;kimenetek 
	bcf impo		;kikapcsolása 2 sec mulva
	btfsc led
	goto ld2
	bsf led
	goto ld3
ld2	bcf led
ld3	btfss eng,0		;ha nem volt léptetés gomb ell
	goto ora

	btfss gomb		; lenyomott gomb esetén léptetés	 
	goto lep


ora	bsf eng,0 		;két mp letelt
	decfsz mp		;osztás 30 nal
	goto itvge		 	
	
lep
	bsf eng,0 		;2 mp letelt
	movlw d'30'		
	movwf mp
	movlw 01	;előbb fordít 
	xorwf jel
	btfss jel,0		;irány bit 
	bsf impe		;piros led irány
	btfsc jel,0
	bsf impo		;zöld led irány
	bcf eng,0			;az előző állapot léptetés volt		; 

itvge
	retfie
	
	
kezd
	movlw 00
	movwf jel
	movwf eng ;változók törlése

	banksel portb
	movlw 000
	movwf portb
	clrf  porta
	movlw 0x07
	movwf cmcon

	banksel trisb
	movlw 00	;portb kimenet
	movwf trisb
	movlw b'00001000'
	movwf TRISA
	movlw b'11000101'
	movwf option_reg

	banksel intcon 
	bsf intcon,t0ie
	bsf intcon,gie
	banksel mp
	movlw d'30'		
	movwf mp
v	goto v		


	 		
	end