el codigo funciona lo tengo simulado en proteus el problema es al llevarlo ala practica en fisico a los 4Mhz del pic ,en el codigo puse dos leds en el portB uno que me indica que el pic esta en sleep y otro que me indica cuando se realizo la escritura, debido ala velocidad de con se que guarda el dato el led que esta en RB0 que me indica la escritura no se llega a apreciar cuando prende y es ahí donde necesito meter un retardo use libreria y probe en todos lados un retardo de 500ms y de 1 seg pero no funciona ayudenme porfavor
recien comienzo en el lenguaje ensamblador y hay muchas cosas que no entiendo
si es algo muy facil o tonto no se burlen soy novato
Código:
list p=16f887
#include<p16f887.inc>
__CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_ON & _CPD_OFF & _BOREN_OFF & _IESO_OFF & _FCMEN_OFF & _LVP_OFF
direc EQU 0x01
dato EQU 0x0C
ORG 0X00
goto inicio
ORG 0X04
goto rut_eeprom
ORG 0X05
inicio
bsf STATUS,RP1
bsf STATUS,RP0
bcf INTCON,GIE
bsf INTCON,EEIE
bsf EECON1,WREN
movlw direc
bcf STATUS, RP0
movwf EEADR
movlw h'88'
movwf EEDATA
bcf STATUS,RP1
bcf STATUS,RP0
bsf STATUS,RP0
clrf TRISB
movlw h'55'
bsf STATUS,RP1
movwf EECON2
MOVLW h'AA'
movwf EECON2
bsf EECON1,WR
bsf INTCON,GIE
bcf STATUS,RP1
bcf STATUS,RP0
clrf PORTB
bsf PORTB,0
bsf PORTB,1
sleep
fin goto fin
rut_eeprom ;interrupcion
bsf STATUS,RP1
bcf STATUS, RP0
movf EEDATA,W
bsf STATUS,RP0
bcf EECON1,EEIF
bsf EECON1,RD
bcf STATUS, RP0
subwf EEDATA,W
btfss STATUS,Z
goto erro
bcf STATUS,RP1
bcf STATUS,RP0
bsf PORTB,1
erro
Retfie
#include <RETARDOS.INC>
END