;#1			MINDEN FAJLHOZ-NYULASKOR 1-EL NOVELNI!!! 
;VER: 1.0		DATE: 2008.10.24. - UTOLSÓ MÓDOSITAS 
;FAJLNEV:		BLINK01.ASM NOTE:
;IRTA:		        DR. KONYA LASZLO EMAIL: KONYA.LASZLO@KVK.BMF.HU 	
;CEG:			BMF KANDO
;------------------[ MI EZ? ]---------------------------------------------------
;1. LEDVILLOGTATÁS. SZOTVER IDŐZÍTÉS. BILLENTYŰ ÁLLAPOT LEDRE. MINDEN NAGYBETŰS.
;MINDEN SZIBÓLUM A TÍPUSÁRA UTALÓ BETŰVEL KEZDŐDIK, ÉS EGY ALÁHÚZÁS
;UTÁN VANNAK AZ ELNEVEZÉSEK.
;JELÖLÉSEK:
;L-CIMKE S-SZUBRUTIN M-MAKRO R-REGISZTER(VÁLTOZÓ) C-KONSTANS(LITERAL)
;T-TÁBLÁZAT B-BIT BI-BEMENETI BIT BO-KIMENETI BIT BA-ANALÓG BEMENET

;------------------[ TORTENET IDE KERUL MINDEN INFORMACIO ]---------------------

;------------------[ SPECIFIKACIOK, KIEGESZITESEK ]-----------------------------
;
;=======[ D E F I N I C I O K ] ================================================
;-------[ PROCESSZOR + KONFIGURACIO + INCLUDE ]---------------------------------
	#INCLUDE "..\PFEJ.INC"	 ;PROCESSZOR TÍPUS DEFINICIO VAN BENNE

;=======[ ALLANDOK A PROGRAMBAN ]================================================
; AZ EQU DIREKTÍVA EGY KARAKTERSOROZATHOZ EGY SZÁMOT RENDEL
; A #DEFINE DIREKTÍVA EGY KARAKTERSOROZATHOZ EGY MÁSIK KARAKTERSOROZATOT RENDEL
; A KETTŐ KÖZÖTTI EVÁLASZTÁS  EGY BETUKOZ VAGY TABULATOR 
;
#DEFINE GOMB PORTB,0		;IT VAN EGY NYOMOGOMB, DE BELSO FELHUZO
							;ELLENALLAST IS BE KELL KAPCSOLNI
#DEFINE LED LATD,0
#DEFINE DSPORT LATD		;LATD-N VAN A LEDSOR	
#DEFINE IRPORT DDRD		;D PORT IRÁNYA 0-KIMENET 1-BEMENET 
				;RESET UTÁN MINDEN BEMENET
;AZ AD ATALAKITO PERIFERIA HAROM REGISZTERE JELOLI KI AZ AD MUKODESMODJAT
C_ADCON0	EQU	0X15	;ADON=1 - AD BEKAPCSOLASA, AN5 CSATORNA (RE0)
C_ADCON1	EQU	0X00	;VDD ES VSS - VAGYIS A TAPFESZ A REFERENCIAFESZ.
C_ADCON2	EQU	0X3F	;BALRA IGAZITAS, ADRESH-BAN VAN EZ EREDMENY FELSO

;=======[ VALTOZOK A PROGRAMBAN ]===============================================
; A "CBLOCK KEZDOCIM" DIREKTIVA UTAN SOROLJUK FEL A HASZNALT VALTOZOINKAT,
; AMELYEK AZ ADATMEMORIABAN AZ ADOTT KEZDOCIMTOL KEZDODOEN HELYEZKEDNEK EL  
	CBLOCK	0X000
R_DELAY1               		; KÉT REGISZTER 
R_DELAY2               		; A SW KÉSLELTETÉSHEZ
	ENDC

;======[ M A K R Ó K ]==========================================================
;
;*******[ PROGRAMKÓD KEZDETE ]**************************************************
;RESET PONT. A PROGRAM INNEN INDUL
	ORG	0X0000
;MIVEL BELSO ORAJELET HASZNALUNK, ITT KELL MEGADNI A TIPUSAT, FREKVENCIAJAT 
L_INI_CLK	
    MOVLW	B'01100010'	;CLOCK BEÁLLÍTÁS 8 MHZ BELSŐ
	MOVWF	OSCCON
L_INI_DSP
	CLRF	DSPORT		;LATD KIMENET LESZ
	CLRF	IRPORT	    	;ES MINDEN KIMENET KEZDETI ALLAPOTA NULLA
L_INI_GOMB
	BCF	INTCON2,RBPU	;BELSO FELHUZO ELLENALLASOK BEKAPCS. A PORTB-N
;AZ AD INICIALIZALASA, CSAK AKKOR SZUKSEGES, HA HASZNALJUK AZ AD-T
L_INI_AD0
	MOVLW     C_ADCON1         
	MOVWF     ADCON1
	MOVLW     C_ADCON2         
	MOVWF     ADCON2
	MOVLW     C_ADCON0         
	MOVWF     ADCON0
;*******************************************************************************
;_______[ MELYIK PROGRAMRÉSZT HAJTSUK BÉGRE ]___________________________________
; EGY PROGRAMBAN MOST TOBB DOLGOT MUTATUNK BE. A NEM HASZALTAKAT ASSEMBLALAS 
; ELOTT "KIKOMMENTEZZUK" - VAGYIS MEJEGYZESSE ALAKITJUK, IGY NEM HAJTODIK VEGRE  

;     BRA L_LEDVIL		;LEDVILLOGTATAS UTASITASOKKAL, KESLELTETESSEL
;     BRA L_LEDVIL2		;LEDVILLOGTATAS BTG UTASITASSAL, SZUBRUTINNAL
     BRA L_GMBTOLED

;_______[ LEDVILLOGTATÁS ]______________________________________________________
   
L_LEDVIL
     BSF       LATD,0		; RD0-RA KÖTÖTT LED BEKAPCSOLÁSA
L_ONDELAYLOOP
     DECFSZ   R_DELAY1,F	; KÉSLELTETÉS  
     BRA      L_ONDELAYLOOP	; 3*256 768 UTASÍTÁS
     DECFSZ   R_DELAY2,F	;
     BRA      L_ONDELAYLOOP	; (768+3) * 256 = 197376 UTASÍTÁS
     BCF      LATD,0	; LED KIKAPCSOLÁSA
L_OFFDELAYLOOP
     DECFSZ   R_DELAY1,F	; KÉSLELTETÉS MINT FENT
     BRA      L_OFFDELAYLOOP
     DECFSZ   R_DELAY2,F
     BRA      L_OFFDELAYLOOP
     BRA      L_LEDVIL		; UJRA

;_______[LEDVILLOGTATÁS: 2. VÁLTOZAT ]_________________________________________
L_LEDVIL2	
	CALL	S_DLY		; KESLELETO RUTIN
	BTG    LATD,0		; MINDIG ELLENTETS ALLAPOTBA
	BRA    L_LEDVIL2	; UJRA

;________[ GOMB ÁLLAPOT LEDRE ]__________________________________________________

L_GMBTOLED
	BCF	LED		; LED KI
	BTFSS	GOMB		; HA NEM NYOMTUK MEG, A KÖVETKEZŐ UT.-T ÁTLÉPI
	BSF	LED		; MEGNYOMTUK, VILÁGÍT
	BRA	L_GMBTOLED

;========[S Z U B R U T I N O K ]================================================
S_DLY
	DECFSZ   R_DELAY1,F     ; KÉSLELTETÉS  
	BRA      S_DLY          ; 3*256 768 UTASÍTÁS
	DECFSZ   R_DELAY2,F     ;
	BRA      S_DLY          ; (768+3) * 256 = 197376 UTASÍTÁS
	RETURN

	END	

