
;
;PROPIETARIO:			RUBEN DARIO FIGUEREDO
;						
;FECHA:					02 OCTUBRE DE 2010 13:58 HS
;PROFESOR:				
;VERSION DEFINITIVA:		MICRO 16F877A 
;GRABAR CON:			WDT=				OFF
;						POWER UP TIMER=		OFF
;						BROWN OUT DETECT=	OFF
;						CODE PROTECT=		ON
;**************************************************************************
                     list p=16f877a	
                     #include <p16f877a.inc> 
;*************************************************************************************************************
;FUSIBLES DE PROGRAMACIÓN, EVITA TENER QUE ESCRIBIRLOS CADA VEZ QUE SE EJECUTA EL PROGRAMA WINPICPROG O IC-PROG
;*************************************************************************************************************
 #define		FOSC	D'4000000'  

;*************************************************************************************************************
	
__CONFIG  _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC  & _LVP_OFF & _CPD_ON
;********************************************************************

;*******************************************************************************
;----Definiciones de RAM-------
	CBLOCK	0X20

GRAL1,GRAL2,GRAL3,FLAG,TGRAL,DECE,CENTE,UNID,UNID1,DECE1,TGRAL1,TEMP,NUMERO,NUMERO1,COCIENTE,COCIENTE1,NUM,NUM1,DIRECCION
DATOAGUARDAR,CALLE,DATOLEIDO,AUXILIAR,AUXILIAR1,PDel0,PDel1,PDel2,PDel01,PDel11,PDel21,PDel02,PDel12,PDel22 , letra ,TOTO ,
CACA , POSIC
	ENDC
;*************************************************************************
CARRY   		equ     1
C				EQU		0
Z       		equ     2
pcl				equ		3
PULSADOR		EQU		4
;*************************************************************************
;BANCOS PARA CAMBIO DE PAGINA - para 16f877
;***********************************************************************
BANK0    MACRO
      BCF   STATUS,RP0
      BCF   STATUS,RP1
      ENDM

BANK1      MACRO
      BSF   STATUS,RP0
      BCF   STATUS,RP1
      ENDM

BANK2      MACRO
      BSF   STATUS,RP1
      BCF   STATUS,RP0
      ENDM

BANK3      MACRO
      BSF   STATUS,RP1
      BSF   STATUS,RP0
      ENDM
;*****************************************************************************
;DEFINICION DE PUERTOS
;******************************************************************************
;*****************************************************************************

	#DEFINE	E		PORTE,2
	#DEFINE	RS		PORTE,0
;*****************************************************************************
;*****************************************************************************	 	
 		ORG		000H
		CALL	SETUP
;*****************************************************************************
;MENU RUTINA PPAL DEL PROGRAMA
;*****************************************************************************
MENU 	

		CALL		LCD_Inicializa	
		GOTO		MENU

	
	

;******************************************************************************
;DELAY 1 MS
;******************************************************************************
DEMORA 	

	 	MOVLW		.255 	;CARGO 255 A W
		MOVWF		GRAL1	;DESCARGO 4 EN GRAL1	
BN		MOVLW		.255		;CARGO 255 A W
		MOVWF		GRAL2	;DESCARGO EN GRAL2
NM		NOP					;NOP, UN CICLO DE MÁQUINA, UN BYTE
		DECFSZ		GRAL2	;DECREMENTO GRAL2, SALTO SI ES CERO
		GOTO		NM		;VOY A NM
		DECFSZ		GRAL1	;DECREMENTO GRAL1 SALTO SI ES CERO
		GOTO		BN		;VOY A BN
		RETURN				;RETORNO


;-------------------------------------------------------------
;DEMORA DE 25 SEGUNDOS
;-------------------------------------------------------------
; Generado con PDEL ver SP  r 1.0  el 30/09/2014 Hs 8:58:18
; Descripcion: Delay 25000000 ciclos
;-------------------------------------------------------------
DEMORA2  movlw     .106     ; 1 set numero de repeticion  (C)
        movwf     PDel0     ; 1 |
PLoop0  movlw     .135      ; 1 set numero de repeticion  (B)
        movwf     PDel1     ; 1 |
PLoop1  movlw     .249      ; 1 set numero de repeticion  (A)
        movwf     PDel2     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto	  PDelL2    ; 2 ciclos delay
PDelL2  clrwdt              ; 1 ciclo delay
        decfsz    PDel2, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel1,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (C)
        goto      PLoop0    ; 2 no, loop
        clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
;-------------------------------------------------------------
;******************************************************************************
DELAY	MOVLW		.255		;1535 uS
		MOVWF		TOTO
AA		NOP
		NOP
		NOP
		DECFSZ		TOTO
		GOTO		AA	
		RETURN
;******************************************************************************

;****************************************************************************
;			AREA DE MENSAJES
;****************************************************************************
		
	
;******************************************************************************


SETUP

		BANK1						;SUBO A BANCO1
	
		MOVLW		B'00000111'   	;1 input, 0 output
		MOVWF		TRISA			;DESCARGO EN TRISA
		MOVLW		B'00000000'   	;1 input, 0 output
		MOVWF		TRISB			;DESCARGO EN TRISB
		MOVLW		B'00000000' 	;1 input, 0 output
		MOVWF		TRISC			;DESCARGO EN TRISD
		MOVLW		B'00000000'   	;1 input, 0 output
		MOVWF		TRISD			;DESCARGO EN TRISE
		MOVLW		B'00000000' 	;1 input, 0 output
		MOVWF		TRISE
		
		MOVLW		.7
		MOVWF		ADCON1

		BANK0						;BAJO A BANCO 0
	
		CLRF		PORTA			;LIMPIO PORTA
		CLRF		PORTB			;LIMPIO PORTB
		CLRF		PORTC			;LIMPIO PORTC
		CLRF		PORTD			;LIMPIO PORTD
		CLRF		PORTE			;LIMPIO PORTE
		MOVLW		B'00000000'
		MOVWF		PORTB
		MOVLW		B'00000000'
		MOVWF		PORTC
		MOVLW		B'00000000'
		MOVWF		PORTD
		MOVLW		B'00000000'
		MOVWF		PORTE	
				
		RETURN						;RETORNO


include <RETARDOS.INC>
include <LCD_4BIT_1.INC>



	
END
