; ZONA DE DATOS **********************************************************************
TITLE "LCD Sensor PS2"
SUBTITLE "Revisión 1.00"
LIST P=16F886
INCLUDE <P16F886.INC>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
CBLOCK 0x20
Contador
Apuntador
ENDC
PAGINA_00 EQU 0x00 ;
PAGINA_01 EQU 0x01 ;
PAGINA_02 EQU 0x02 ;
PAGINA_03 EQU 0x03 ;
PAGINA_04 EQU 0x04 ;
PAGINA_05 EQU 0x05 ;
PAGINA_06 EQU 0x06 ;
PAGINA_07 EQU 0x07 ;
PAGINA_09 EQU 0x09 ; " " Línea .
PAGINA_0A EQU 0x0A ; " " Línea .
PAGINA_0B EQU 0x0B ; " " Línea .
PAGINA_0C EQU 0x0C ; " " Línea .
PAGINA_0D EQU 0x0D ; " " Línea .
PAGINA_0E EQU 0x0E ; " " Línea .
PAGINA_0D EQU 0x0D ; " " Línea .
PAGINA_0F EQU 0x0F ; " "
#DEFINE RESET_RC0 PORTC,0
#DEFINE EJECT_RC1 PORTC,1
#DEFINE OPEN_RC2 PORTC,2
#DEFINE CLOSE_RC3 PORTC,3
#DEFINE GREEN_RC4 PORTC,4
#DEFINE RED_RC5 PORTC,5
#DEFINE Auxiliar_6 PORTC,6
#DEFINE Auxiliar_7 PORTC,7
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
call LCD_Inicializa
BANKSEL TRISC ; Banco 1.
bsf RESET_RC0 ; Se configura como entradas.
bsf EJECT_RC1
bsf OPEN_RC2
bsf CLOSE_RC3
bsf GREEN_RC4
bsf RED_RC5
bsf Auxiliar_6
bsf Auxiliar_7
BANKSEL PORTC ; Banco 0.
clrw
clrf Apuntador ; Inicializa el contador
Principal
movlw PAGINA_01
call M24LC256_Mensaje_a_LCD
call Retardo_2s
goto Principal
movf PORTC,W ; Lee los sensores.
andlw b'00111111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0 ; 0 0 0 0 0 0
goto Configuracion1 ; 0 0 0 0 0 1
goto Configuracion2 ; 0 0 0 0 1 0
goto Configuracion3 ; 0 0 0 0 1 1
goto Configuracion4 ; 0 0 0 1 0 0
goto Configuracion5 ; 0 0 0 1 0 1
goto Configuracion6 ; 0 0 0 1 1 0
goto Configuracion7 ; 0 0 0 1 1 1
goto Configuracion8 ; 0 0 1 0 0 0
goto Configuracion9 ; 0 0 1 0 0 1
goto Configuracion10 ; 0 0 1 0 1 0
goto Configuracion11 ; 0 0 1 0 1 1
goto Configuracion12 ; 0 0 1 1 0 0
goto Configuracion13 ; 0 0 1 1 0 1
goto Configuracion14 ; 0 0 1 1 1 0
goto Configuracion15 ; 0 0 1 1 1 1
goto Configuracion16 ; 0 1 0 0 0 0
goto Configuracion17 ; 0 1 0 0 0 1
goto Configuracion18 ; 0 1 0 0 1 0
goto Configuracion19 ; 0 1 0 0 1 1
goto Configuracion20 ; 0 1 0 1 0 0
goto Configuracion21 ; 0 1 0 1 0 1
goto Configuracion22 ; 0 1 0 1 1 0
goto Configuracion23 ; 0 1 0 1 1 1
goto Configuracion24 ; 0 1 1 0 0 0
goto Configuracion25 ; 0 1 1 0 0 1
goto Configuracion26 ; 0 1 1 0 1 0
goto Configuracion27 ; 0 1 1 0 1 1
goto Configuracion28 ; 0 1 1 1 0 0
goto Configuracion29 ; 0 1 1 1 0 1
goto Configuracion30 ; 0 1 1 1 1 0
goto Configuracion31 ; 0 1 1 1 1 1
goto Configuracion32 ; 1 0 0 0 0 0
goto Configuracion33 ; 1 0 0 0 0 1
goto Configuracion34 ; 1 0 0 0 1 0
goto Configuracion35 ; 1 0 0 0 1 1
goto Configuracion36 ; 1 0 0 1 0 0
goto Configuracion37 ; 1 0 0 1 0 1
goto Configuracion38 ; 1 0 0 1 1 0
goto Configuracion39 ; 1 0 0 1 1 1
goto Configuracion40 ; 1 0 1 0 0 0
goto Configuracion41 ; 1 0 1 0 0 1
goto Configuracion42 ; 1 0 1 0 1 0
goto Configuracion43 ; 1 0 1 0 1 1
goto Configuracion44 ; 1 0 1 1 0 0
goto Configuracion45 ; 1 0 1 1 0 1
goto Configuracion46 ; 1 0 1 1 1 0
goto Configuracion47 ; 1 0 1 1 1 1
goto Configuracion48 ; 1 1 0 0 0 0
goto Configuracion49 ; 1 1 0 0 0 1
goto Configuracion50 ; 1 1 0 0 1 0
goto Configuracion51 ; 1 1 0 0 1 1
goto Configuracion52 ; 1 1 0 1 0 0
goto Configuracion53 ; 1 1 0 1 0 1
goto Configuracion54 ; 1 1 0 1 1 0
goto Configuracion55 ; 1 1 0 1 1 1
goto Configuracion56 ; 1 1 1 0 0 0
goto Configuracion57 ; 1 1 1 0 0 1
goto Configuracion58 ; 1 1 1 0 1 0
goto Configuracion59 ; 1 1 1 0 1 1
goto Configuracion60 ; 1 1 1 1 0 0
goto Configuracion61 ; 1 1 1 1 0 1
goto Configuracion62 ; 1 1 1 1 1 0
goto Configuracion63 ; 1 1 1 1 1 1
Configuracion0
movlw PAGINA_00 ; Lee a partir de la dirección 00 de esta página
call M24LC256_Mensaje_a_LCD ; de la memoria.
goto ActivaSalida
Configuracion1
goto ActivaSalida
Configuracion2
goto ActivaSalida
Configuracion3
goto ActivaSalida
Configuracion4
goto ActivaSalida
Configuracion5
goto ActivaSalida
Configuracion6
goto ActivaSalida
Configuracion7
goto ActivaSalida
Configuracion8
goto ActivaSalida
Configuracion9
goto ActivaSalida
Configuracion10
goto ActivaSalida
Configuracion11
goto ActivaSalida
Configuracion12
goto ActivaSalida
Configuracion13
goto ActivaSalida
Configuracion14
goto ActivaSalida
Configuracion15
goto ActivaSalida
Configuracion16
goto ActivaSalida
Configuracion17
goto ActivaSalida
Configuracion18
goto ActivaSalida
Configuracion19
goto ActivaSalida
Configuracion20
goto ActivaSalida
Configuracion21
goto ActivaSalida
Configuracion22
goto ActivaSalida
Configuracion23
goto ActivaSalida
Configuracion24
goto ActivaSalida
Configuracion25
goto ActivaSalida
Configuracion26
goto ActivaSalida
Configuracion27
goto ActivaSalida
Configuracion28
goto ActivaSalida
Configuracion29
goto ActivaSalida
Configuracion30
goto ActivaSalida
Configuracion31
goto ActivaSalida
Configuracion32
goto ActivaSalida
Configuracion33
goto ActivaSalida
Configuracion34
goto ActivaSalida
Configuracion35
goto ActivaSalida
Configuracion36
goto ActivaSalida
Configuracion37
goto ActivaSalida
Configuracion38
goto ActivaSalida
Configuracion39
goto ActivaSalida
Configuracion40
goto ActivaSalida
Configuracion41
goto ActivaSalida
Configuracion42
goto ActivaSalida
Configuracion43
goto ActivaSalida
Configuracion44
goto ActivaSalida
Configuracion45
goto ActivaSalida
Configuracion46
goto ActivaSalida
Configuracion47
goto ActivaSalida
Configuracion48
goto ActivaSalida
Configuracion49
goto ActivaSalida
Configuracion50
goto ActivaSalida
Configuracion51
goto ActivaSalida
Configuracion52
goto ActivaSalida
Configuracion53
goto ActivaSalida
Configuracion54
goto ActivaSalida
Configuracion55
goto ActivaSalida
Configuracion56
goto ActivaSalida
Configuracion57
goto ActivaSalida
Configuracion58
goto ActivaSalida
Configuracion59
goto ActivaSalida
Configuracion60
goto ActivaSalida
Configuracion61
goto ActivaSalida
Configuracion62
goto ActivaSalida
Configuracion63
goto ActivaSalida
ActivaSalida
; movwf PORTB
goto Principal
;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
Mensaje1
DT "aaaaaaaaaaaaaaaaaaaa", 0x00
Mensaje2
DT "bbbbbbbbbbbbbbbbbbbb", 0x00
Mensaje3
DT "cccccccccccccccccccc", 0x00
Mensaje4
DT "dddddddddddddddddddd", 0x00
Mensaje5
DT "e", 0x00
Mensaje6
DT "M", 0x00
Mensaje7
DT "S", 0x00
Mensaje8
DT "M", 0x00
;
FinTabla
;MensajeAnuncio
; DT " fgfd ", 0x00
IF (FinTabla > 0xFF)
ERROR "¡CUIDADO!: La tabla ha superado el tamaño de la página de los"
MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
ENDIF
INCLUDE <BIN_BCD.INC>
INCLUDE <BUS_I2C.INC> ; Subrutinas de control del bus I2C.
INCLUDE <M24LC256.INC> ; Subrutinas de control de la memoria 24LC256.
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END