hola amigos
hemos estado trabajando en un circuito para guardar una clave de 4 digitos
en el pic, pero las pruebas estan hechas en base a un array, por lo que los datos se borran al sacar la alimentacion, el proximo paso que queremos implementar es grabarlo de forma definitiva en el pic, estoy usando un 16f84.-
revisando encontre la forma de hacerlo pero en Asembler por lo que recurro a uds para que me den alguna idea de como hacerlo en PBplus,
Codigo:
Read_Flash bsf STATUS,RP1
bcf STATUS,RP0 ;Selecciona el Banco 2
movf ADDRL,W ;Contenido d la variable a EEADR,
movwf EEADR ;parte baja de la direccion.
movf ADDRH,W ;Contenido d la variable a EEADRH,
movwf EEADRH ;parte alta de la direccion.
bsf STATUS,RP0 ;Selecciona Banco 3
bsf EECON1,EEPGD ;habilita acceso a la flash.
bsf EECON1,RD ;Inicio operacion de lectura.
nop ;se esperan dos ciclos
nop tal como especifica el datasheet
bcf STATUS,RP0 ;Selecciona Banco 2
movf EEDATA,W ;DATAL = parte baja del dato leido
movwf DATAL
movf EEDATAH,W ;DATAH = parte alta del dato leido
movwf DATAH
return
ahora para escribir
Codigo:
Write_Flash bsf STATUS,RP1
bcf STATUS,RP0 ;Selecciona el Banco 2
movf ADDRL,W ;Contenido d la variable a EEADR,
movwf EEADR ;parte baja de la direccion.
movf ADDRH,W ;Contenido d la variable a EEADRH,
movwf EEADRH ;parte alta de la direccion.
movf DATAL,W ;Se mueve la parte baja del dato
mowf EEDATA ;a escribir en EEDATA.
movf DATAH,W ;Se mueve la parte alta del dato
mowf EEDATAH ;a escribir en EEDATAH.
bsf STATUS,RP0 ;Selecciona Banco 3
bsf EECON1,EEPGD ;habilita acceso a la flash.
bsf EECON1,WREN ;Habilita escritura en la FLASH
bcf INTCON,GIE ;Deshabilita todas las interrupciones.
movlw 0x55 ;Secuencia especial de 5 pasos
movwf EECON2 ;para escribir en la flash
movlw 0xAA ;
movwf EECON2 ;
bsf EECON1,WR ;Inicia la operacion de escritura.
nop ;se esperan dos ciclos
nop tal como especifica el datasheet
bsf INTCON,GIE ;Habilita todas interrupciones generales
bcf EECON1,WREN ;Deshabilita escritura en la FLASH
return ;retorna de la interupcción
los ejemplos que encontre estan hechos para el 16f877, espero sus opiniones y /o sugerencias de como convertirlo a PBplus
saludos