Viendo los programas que teneis colgados me parecen un poco como para iniciarse, aqui os pongo varios programas un poco mas avanzados, no se que os parecera, pero yo pongo mi granito
Programa que hace una escritura en una pantalla LCD
;********************************************************************** ; Liquid Chrystal Display ;**********************************************************************
;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN DEL PIC ;--------------------------------------------------------------------------------------------------------- LIST P=16F84 ;tipo de procesador INCLUDE "P16F84.INC" ;definición del registro de inicio ;--------------------------------------------------------------------------------------------------------- ; DEFINICIÓN DE VARIABLES ;--------------------------------------------------------------------------------------------------------- Lcd_var EQU 0X0C ;definición de variables de rutina ;de manejo del lcd CONT1 EQU 0X10 ;--------------------------------------------------------------------------------------------------------- ; PUESTA A CERO DEL PIC ;--------------------------------------------------------------------------------------------------------- ORG 0X00 ;vector de reset GOTO INICIO ;salta a inicio ORG 0X05 ;salva el vector de ;interrupcion INCLUDE "LCD_Cxx.INC" ;incluye rutinas de manejo lcd ;--------------------------------------------------------------------------------------------------------- ; RETARDO DE 500 MS ;--------------------------------------------------------------------------------------------------------- TEMP1 MOVLW .78 MOVWF CONT1 TEMP1B BCF INTCON,T0IF MOVLW .100 MOVWF TMR0 TEMP1C CLRWDT BTFSS INTCON,T0IF GOTO TEMP1C DECFSZ CONT1,F GOTO TEMP1B RETURN ;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN PUERTOS E INICIO DEL LCD ;--------------------------------------------------------------------------------------------------------- INICIO CLRF PORTB ;borra los latch de salida BSF STATUS,RP0 ;selecciono banco 1 CLRF TRISB ;configuro trisb como salida MOVLW B'00011000' MOVWF TRISA MOVLW B'10000111' ;multiplicador a 256 MOVWF OPTION_REG ;configuro OPTION_REG BCF STATUS,RP0 ;selecciona banco 0 CALL LCD_INI ;secuencia de inicio del lcd MOVLW B'00000001' ;borra LCD CALL LCD_REG MOVLW B'00001111' ;envía instrucción: lcd on, CALL LCD_REG ;cursor on y blink on ;--------------------------------------------------------------------------------------------------------- ; APARECE EL NOMBRE EN LA PRIMERA FILA ;--------------------------------------------------------------------------------------------------------- MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW 'S' CALL LCD_DATO MOVLW 'C' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO CALL TEMP1 ;--------------------------------------------------------------------------------------------------------- ; APARECEN LOS APELLIDOS EN LA SEGUNDA FILA ;--------------------------------------------------------------------------------------------------------- MOVLW B'00000001' ;borra el LCD CALL LCD_REG MOVLW B'11000000' ;coloca el cursor en C0h CALL LCD_REG ;ya que '11000000' = C0h MOVLW 'A' CALL LCD_DATO MOVLW 'G' CALL LCD_DATO MOVLW 'U' CALL LCD_DATO MOVLW 'D' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'B' CALL LCD_DATO MOVLW 'U' CALL LCD_DATO MOVLW 'S' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'M' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'N' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'E' CALL LCD_DATO CALL TEMP1 ;--------------------------------------------------------------------------------------------------------- ; HAGO QUE SE REPITA LA SECUENCIA ;--------------------------------------------------------------------------------------------------------- ; GOTO INICIO ;--------------------------------------------------------------------------------------------------------- NOP NOP END
Despalazamiento del texto en una pantalla de LCD
;********************************************************************** ; Liquid Chrystal Display ;**********************************************************************
;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN DEL PIC ;--------------------------------------------------------------------------------------------------------- LIST P=16F84 ;tipo de procesador INCLUDE "P16F84.INC" ;definición del registro de inicio ;--------------------------------------------------------------------------------------------------------- ; DEFINICIÓN DE VARIABLES ;--------------------------------------------------------------------------------------------------------- Lcd_var EQU 0X0C ;definición de variables de rutina ;de manejo del lcd CONT1 EQU 0X10 CONT2A EQU 0X11 CONT2B EQU 0X12 AUX1 EQU 0X13 ;--------------------------------------------------------------------------------------------------------- ; PUESTA A CERO DEL PIC ;--------------------------------------------------------------------------------------------------------- ORG 0X00 ;vector de reset GOTO INICIO ;salta a inicio ORG 0X05 ;salva el vector de ;interrupcion INCLUDE "LCD_Cxx.INC" ;incluye rutinas de manejo lcd ;--------------------------------------------------------------------------------------------------------- ; RETARDO DE 40 MS ;--------------------------------------------------------------------------------------------------------- TEMP1 MOVLW .6 MOVWF CONT1 TEMP1B BCF INTCON,T0IF MOVLW .100 MOVWF TMR0 TEMP1C CLRWDT BTFSS INTCON,T0IF GOTO TEMP1C DECFSZ CONT1,F GOTO TEMP1B RETURN ;--------------------------------------------------------------------------------------------------------- ; RETARDO DE 5 SG ;--------------------------------------------------------------------------------------------------------- TEMP2 MOVLW .75 MOVWF CONT2A MOVLW .75 MOVWF CONT2B TEMP2B BCF INTCON,T0IF MOVLW .100 MOVWF TMR0 TEMP2C CLRWDT BTFSS INTCON,T0IF GOTO TEMP2C DECFSZ CONT2A,F GOTO TEMP2B TEMP2D CLRWDT MOVLW .1 MOVWF CONT2A BTFSS INTCON,T0IF GOTO TEMP2D DECFSZ CONT2B,F GOTO TEMP2B RETURN ;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN PUERTOS E INICIO DEL LCD ;--------------------------------------------------------------------------------------------------------- INICIO CLRF PORTB ;borra los latch de salida BSF STATUS,RP0 ;selecciono banco 1 CLRF TRISB ;configuro trisb como salida MOVLW B'00011000' MOVWF TRISA MOVLW B'10000111' ;multiplicador a 256 MOVWF OPTION_REG ;configuro OPTION_REG BCF STATUS,RP0 ;selecciona banco 0 CALL LCD_INI ;secuencia de inicio del lcd MOVLW B'00000001' ;borra LCD CALL LCD_REG MOVLW B'00001111' ;envía instrucción: lcd on, CALL LCD_REG ;cursor on y blink on ;--------------------------------------------------------------------------------------------------------- ; TEXTO FIJO EN LA PRIMERA LINEA ;--------------------------------------------------------------------------------------------------------- FIJO MOVLW B'00000000' CALL LCD_REG MOVLW B'10000000' ;texto en la primera linea CALL LCD_REG MOVLW B'00000001' ;borra el display CALL LCD_REG
MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO
MOVLW 'E' CALL LCD_DATO MOVLW 'L' CALL LCD_DATO MOVLW 'E' CALL LCD_DATO MOVLW 'C' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW 'N' CALL LCD_DATO MOVLW 'I' CALL LCD_DATO MOVLW 'C' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO
CALL TEMP2 MOVLW B'00000001' CALL LCD_REG MOVLW .32 MOVWF AUX1 ;--------------------------------------------------------------------------------------------------------- ; DESPLAZA TEXTO EN LA SEGUNDA FILA ;--------------------------------------------------------------------------------------------------------- MOVER MOVLW B'00011000' CALL LCD_REG ;se desplaza el display MOVLW B'11000000' CALL LCD_REG MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO
MOVLW 'L' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW 'G' CALL LCD_DATO MOVLW 'I' CALL LCD_DATO MOVLW 'C' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'D' CALL LCD_DATO MOVLW 'I' CALL LCD_DATO MOVLW 'G' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'L' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'Y' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'M' CALL LCD_DATO MOVLW 'I' CALL LCD_DATO MOVLW 'C' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW 'P' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW 'G' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'M' CALL LCD_DATO MOVLW 'A' CALL LCD_DATO MOVLW 'B' CALL LCD_DATO MOVLW 'L' CALL LCD_DATO MOVLW 'E' CALL LCD_DATO CALL TEMP1 DECFSZ AUX1 CALL MOVER CALL FIJO ;--------------------------------------------------------------------------------------------------------- NOP NOP END
Un programa que simula la peticion del turno de una carnicera en un supermecado y guarda el numero en la memoria del PIC de forma que si quitas la alimentacion y la vuelves a poner sigues teniendo el mismo numero. Tiene posibilidad de adelantar y retroceder el numero con interruptores y de ponerle a cero.
;********************************************************************** ; Liquid Chrystal Display ;**********************************************************************
;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN DEL PIC ;--------------------------------------------------------------------------------------------------------- LIST P=16F84 ;tipo de procesador INCLUDE "P16F84.INC" ;definición del registro de inicio ;--------------------------------------------------------------------------------------------------------- ; DEFINICIÓN DE VARIABLES ;--------------------------------------------------------------------------------------------------------- Lcd_var EQU 0X0C ;definición de variables de rutina ;de manejo del lcd CONT1 EQU 0X10 TURNO1 EQU 0X11 TURNO2 EQU 0X12 ;--------------------------------------------------------------------------------------------------------- ; PUESTA A CERO DEL PIC ;--------------------------------------------------------------------------------------------------------- ORG 0X00 ;vector de reset GOTO INICIO ;salta a inicio ORG 0X05 ;salva el vector de ;interrupcion INCLUDE "LCD_Cxx.INC" ;incluye rutinas de manejo lcd ;--------------------------------------------------------------------------------------------------------- ; RETARDO ;--------------------------------------------------------------------------------------------------------- TEMP1 MOVLW .10 MOVWF CONT1 TEMP1B BCF INTCON,T0IF MOVLW .10 MOVWF TMR0 TEMP1C CLRWDT BTFSS INTCON,T0IF GOTO TEMP1C DECFSZ CONT1,F GOTO TEMP1B RETURN ;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN PUERTOS E INICIO DEL LCD ;--------------------------------------------------------------------------------------------------------- INICIO CLRF PORTB ;borra los latch de salida BSF STATUS,RP0 ;selecciono banco 1 CLRF TRISB ;configuro trisb como salida MOVLW B'00011000' MOVWF TRISA MOVLW B'10000111' ;multiplicador MOVWF OPTION_REG ;configuro OPTION_REG BCF STATUS,RP0 ;selecciona banco 0 CALL LCD_INI ;secuencia de inicio del lcd MOVLW B'00000001' ;borra LCD CALL LCD_REG MOVLW B'00001111' ;envía instrucción: lcd on, CALL LCD_REG ;cursor on y blink on ;--------------------------------------------------------------------------------------------------------- ; LEE LOS DATOS AL INICIO ;--------------------------------------------------------------------------------------------------------- LECTURA1 BCF STATUS,RP0 MOVLW 0X21 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA1B BTFSC EECON1,RD GOTO ESPERA1B BCF STATUS,RP0 MOVF EEDATA,W MOVWF TURNO1
LECTURA2 BCF STATUS,RP0 MOVLW 0X22 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA2B BTFSC EECON1,RD GOTO ESPERA2B BCF STATUS,RP0 MOVF EEDATA,W MOVWF TURNO2 ;--------------------------------------------------------------------------------------------------------- ; MUESTRA DATOS EN LCD ;--------------------------------------------------------------------------------------------------------- BUCLE1 BTFSS PORTA,3 GOTO BUCLE2 MOVLW 0X30 MOVWF TURNO1 MOVLW 0X30 MOVWF TURNO2
BUCLE2 MOVLW B'00000001' CALL LCD_REG
MOVLW 'S' CALL LCD_DATO MOVLW 'U' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW 'T' CALL LCD_DATO MOVLW 'U' CALL LCD_DATO MOVLW 'R' CALL LCD_DATO MOVLW 'N' CALL LCD_DATO MOVLW 'O' CALL LCD_DATO MOVLW ':' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO MOVLW ' ' CALL LCD_DATO
MOVF TURNO2,W CALL LCD_DATO MOVF TURNO1,W CALL LCD_DATO PASAR BTFSS PORTA,4 GOTO PASAR CALL TEMP1 INCF TURNO1,F CALL AUX ;--------------------------------------------------------------------------------------------------------- ; GUARDA LOS DATOS EN MEMORIA ;--------------------------------------------------------------------------------------------------------- ESCRITURA1 BCF STATUS,RP0 MOVLW 0X21 MOVWF EEADR MOVF TURNO1,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA1A BTFSS EECON1,EEIF GOTO ESPERA1A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA2 BCF STATUS,RP0 MOVLW 0X22 MOVWF EEADR MOVF TURNO2,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA2A BTFSS EECON1,EEIF GOTO ESPERA2A BCF EECON1,EEIF BCF STATUS,RP0
GOTO BUCLE1 ;--------------------------------------------------------------------------------------------------------- ; FUNCION PARA PREPARAR DATOS DE SALIDA ;--------------------------------------------------------------------------------------------------------- AUX MOVF TURNO1,W SUBLW 0X39 BTFSC STATUS,C RETURN
INCF TURNO2,F MOVLW 0X30 MOVWF TURNO1 MOVF TURNO2,W SUBLW 0X39 BTFSC STATUS,C RETURN MOVLW 0X30 MOVWF TURNO2 RETURN
NOP NOP END
Aqui un programa que me costo lo mio desarrollar. Se trata de un cronometro (seguramente no muy exacto debido a tiempos de propagacion y tal) qu muestra en el LCD minutos, segundos y centesimas, con un interruptor le pones en marcha o le paras y con otro interruptor le haces avanzar o retroceder.
;********************************************************************** ; Liquid Chrystal Display ;**********************************************************************
;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN DEL PIC ;--------------------------------------------------------------------------------------------------------- LIST P=16F84 ;tipo de procesador INCLUDE "P16F84.INC" ;definición del registro de inicio ;--------------------------------------------------------------------------------------------------------- ; DEFINICIÓN DE VARIABLES ;--------------------------------------------------------------------------------------------------------- Lcd_var EQU 0X0C ;definición de variables de rutina ;de manejo del lcd CONT1 EQU 0X10 CENT1 EQU 0X11 CENT2 EQU 0X12 SEG1 EQU 0X15 SEG2 EQU 0X16 MIN1 EQU 0X13 MIN2 EQU 0X14 ;--------------------------------------------------------------------------------------------------------- ; PUESTA A CERO DEL PIC ;--------------------------------------------------------------------------------------------------------- ORG 0X00 ;vector de reset GOTO INICIO ;salta a inicio ORG 0X05 ;salva el vector de ;interrupcion INCLUDE "LCD_Cxx.INC" ;incluye rutinas de manejo lcd ;--------------------------------------------------------------------------------------------------------- ; RETARDO ;--------------------------------------------------------------------------------------------------------- TEMP1 MOVLW .1 MOVWF CONT1 TEMP1B BCF INTCON,T0IF MOVLW .1 MOVWF TMR0 TEMP1C CLRWDT BTFSS INTCON,T0IF GOTO TEMP1C DECFSZ CONT1,F GOTO TEMP1B RETURN ;--------------------------------------------------------------------------------------------------------- ; CONFIGURACIÓN PUERTOS E INICIO DEL LCD ;--------------------------------------------------------------------------------------------------------- INICIO CLRF PORTB ;borra los latch de salida BSF STATUS,RP0 ;selecciono banco 1 CLRF TRISB ;configuro trisb como salida MOVLW B'00011000' MOVWF TRISA MOVLW B'10000000' ;multiplicador MOVWF OPTION_REG ;configuro OPTION_REG BCF STATUS,RP0 ;selecciona banco 0 CALL LCD_INI ;secuencia de inicio del lcd MOVLW B'00000001' ;borra LCD CALL LCD_REG MOVLW B'00001111' ;envía instrucción: lcd on, CALL LCD_REG ;cursor on y blink on ;--------------------------------------------------------------------------------------------------------- ; LEE LOS DATOS AL INICIO ;--------------------------------------------------------------------------------------------------------- LECTURA1 BCF STATUS,RP0 MOVLW 0X21 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA1B BTFSC EECON1,RD GOTO ESPERA1B BCF STATUS,RP0 MOVF EEDATA,W MOVWF CENT1
LECTURA2 BCF STATUS,RP0 MOVLW 0X22 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA2B BTFSC EECON1,RD GOTO ESPERA2B BCF STATUS,RP0 MOVF EEDATA,W MOVWF CENT2
LECTURA3 BCF STATUS,RP0 MOVLW 0X23 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA3B BTFSC EECON1,RD GOTO ESPERA3B BCF STATUS,RP0 MOVF EEDATA,W MOVWF SEG1
LECTURA4 BCF STATUS,RP0 MOVLW 0X24 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA4B BTFSC EECON1,RD GOTO ESPERA4B BCF STATUS,RP0 MOVF EEDATA,W MOVWF SEG2
LECTURA5 BCF STATUS,RP0 MOVLW 0X25 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA5B BTFSC EECON1,RD GOTO ESPERA5B BCF STATUS,RP0 MOVF EEDATA,W MOVWF MIN1
LECTURA6 BCF STATUS,RP0 MOVLW 0X26 MOVWF EEADR BSF STATUS,RP0 BSF EECON1,RD
ESPERA6B BTFSC EECON1,RD GOTO ESPERA6B BCF STATUS,RP0 MOVF EEDATA,W MOVWF MIN2 ;--------------------------------------------------------------------------------------------------------- ; MUESTRA DATOS EN LCD ;--------------------------------------------------------------------------------------------------------- MOSTRAR MOVLW B'00000001' CALL LCD_REG
MOVF MIN2,W CALL LCD_DATO MOVF MIN1,W CALL LCD_DATO MOVLW ':' CALL LCD_DATO MOVF SEG2,W CALL LCD_DATO MOVF SEG1,W CALL LCD_DATO MOVLW ':' CALL LCD_DATO MOVF CENT2,W CALL LCD_DATO MOVF CENT1,W CALL LCD_DATO ADELANTE BTFSC PORTA,4 GOTO SIGUIENTE CALL CERO GOTO ADELANTE
CERO BTFSS PORTA,3 RETURN MOVLW 0X30 MOVWF CENT1 MOVLW 0X30 MOVWF CENT2 MOVLW 0X30 MOVWF SEG1 MOVLW 0X30 MOVWF SEG2 MOVLW 0X30 MOVWF MIN1 MOVLW 0X30 MOVWF MIN2 MOVLW B'00000001' CALL LCD_REG
MOVF MIN2,W CALL LCD_DATO MOVF MIN1,W CALL LCD_DATO MOVLW ':' CALL LCD_DATO MOVF SEG2,W CALL LCD_DATO MOVF SEG1,W CALL LCD_DATO MOVLW ':' CALL LCD_DATO MOVF CENT2,W CALL LCD_DATO MOVF CENT1,W CALL LCD_DATO
RETURN
SIGUIENTE CALL TEMP1 INCF CENT1,F CALL AUX CALL ESCRITURA1 GOTO MOSTRAR ;--------------------------------------------------------------------------------------------------------- ; FUNCION PARA PREPARAR DATOS DE SALIDA ;--------------------------------------------------------------------------------------------------------- AUX MOVF CENT1,W SUBLW 0X39 BTFSC STATUS,C RETURN
INCF CENT2,F MOVLW 0X30 MOVWF CENT1 MOVF CENT2,W SUBLW 0X39 BTFSC STATUS,C RETURN
INCF SEG1,F MOVLW 0X30 MOVWF CENT2 MOVF SEG1,W SUBLW 0X39 BTFSC STATUS,C RETURN INCF SEG2,F MOVLW 0X30 MOVWF SEG1
MOVF SEG2,W SUBLW 0X35 BTFSC STATUS,C RETURN
INCF MIN1,F MOVLW 0X30 MOVWF SEG2 MOVF MIN1,W SUBLW 0X39 BTFSC STATUS,C RETURN
INCF MIN2,F MOVLW 0X30 MOVWF MIN1
MOVF MIN2,W SUBLW 0X39 BTFSC STATUS,C RETURN
MOVLW 0X30 MOVWF MIN2 RETURN ;--------------------------------------------------------------------------------------------------------- ; GUARDA LOS DATOS EN MEMORIA ;--------------------------------------------------------------------------------------------------------- ESCRITURA1 BCF STATUS,RP0 MOVLW 0X21 MOVWF EEADR MOVF CENT1,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA1A BTFSS EECON1,EEIF GOTO ESPERA1A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA2 BCF STATUS,RP0 MOVLW 0X22 MOVWF EEADR MOVF CENT2,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA2A BTFSS EECON1,EEIF GOTO ESPERA2A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA3 BCF STATUS,RP0 MOVLW 0X23 MOVWF EEADR MOVF SEG1,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA3A BTFSS EECON1,EEIF GOTO ESPERA3A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA4 BCF STATUS,RP0 MOVLW 0X24 MOVWF EEADR MOVF SEG2,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA4A BTFSS EECON1,EEIF GOTO ESPERA4A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA5 BCF STATUS,RP0 MOVLW 0X25 MOVWF EEADR MOVF MIN1,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA5A BTFSS EECON1,EEIF GOTO ESPERA5A BCF EECON1,EEIF BCF STATUS,RP0
ESCRITURA6 BCF STATUS,RP0 MOVLW 0X26 MOVWF EEADR MOVF MIN2,W MOVWF EEDATA BSF STATUS,RP0 BSF EECON1,WREN MOVLW 0X55 MOVWF EECON2 MOVLW 0XAA MOVWF EECON2 BSF EECON1,WR ESPERA6A BTFSS EECON1,EEIF GOTO ESPERA6A BCF EECON1,EEIF BCF STATUS,RP0
RETURN
;--------------------------------------------------------------------------- NOP NOP END
|