;Első programom
;Készítette: én
;2009.12.11


	list	P=18F14K50
#include	"P18F14K50.INC"
;	__CONFIG _HS_OSC&_CP_OFF&_WDT_OFF	;Kvarc oszcillátor, kódvédelem ki, wdt ki
;__config _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC
; MCLR láb sima I/O, kódvédelem ki, watchdog ki, belső RC oszcillátor


              config CPUDIV = NOCLKDIV
              config USBDIV = OFF
              config FOSC   = HS
              config PLLEN  = ON
              config FCMEN  = OFF
              config IESO   = OFF
              config PWRTEN = OFF
              config BOREN  = OFF
              config BORV   = 30
              config WDTEN  = OFF
              config WDTPS  = 32768
              config MCLRE  = ON      ;ez mos legyen inább ON!
              config HFOFST = OFF
              config STVREN = ON
              config LVP    = OFF
              config XINST  = OFF
              config BBSIZ  = OFF
              config CP0    = OFF
              config CP1    = OFF
              config CPB    = OFF
              config WRT0   = OFF
              config WRT1   = OFF
              config WRTB   = OFF
              config WRTC   = OFF
              config EBTR0  = OFF
              config EBTR1  = OFF
              config EBTRB  = OFF 


#define két_szélső    b'00001001'
#define két_középső   b'00000110'

cblock
regiszter1
regiszter2
delay1
delay2
delay3
endc
	
	org 0

;	banksel TRISC
	movlw	B'00000000'		;0-át írunk a W-be
	movwf	TRISC			;PORTC minden lába kimenet lesz
	
START

k_led_be
	movlw	két_középső
	movwf	PORTC			;kigyújtjuk a két középső LED-et
	call	delay1000ms

sz_led_be
	movlw	két_szélső
	movwf 	PORTC
	call	delay1000ms

goto START


delay1000ms:
     movlw  d'10'
     goto       d3 
delay100ms:
     movlw      1
 d3: movwf      delay3    ;4MHz esetén 1usec/utasítás 
 d2: movlw      d'100'
     movwf  delay2
 d1: movlw      d'248'    ; belső ciklus hossza (2*konstans +3us)
     movwf  delay1
 d0: decfsz  delay1,f
     goto   d0    	 ;ahányszor visszaugrik annyiszor 2us -> 512us
     decfsz  delay2,f
     goto       d1      ;cx-2 ször fut le a belső ciklus idő: konstans*(belső+2us)
     decfsz  delay3,f
     goto       d2      

     retlw  0


CIKLUS	goto	CIKLUS
	
END
