Visualizza messaggio singolo
Vecchio 01 marzo 11, 15:59   #2 (permalink)  Top
faustog_2
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
CORREGGO E AGGIUNGO qualcosina

allora se per caso qualcuno ha la curiosità, a seguire trova una codifica in C , scaricata da un forum

vi è una vorispondenza qusi uno ad uno

************* CODIFICA IN C *********


#include <pic16f6x.h>

void eeprom_w(char addr,char value)
{
EEADR=addr; // indirizzo cella memoria eeprom
EEDATA=value; // valore da memorizzare
GIE=0; // disabilita interrupt
WREN=1; // abilita la scrittura
EECON2=0x55; // Sequenza richiesta
EECON2=0xAA;
WR=1;
while(WR);
WREN=0;
GIE=1; // riabilita global interrupt
}

/* ************************************************** ******/
* Funzione per la ettura dati dalla memoria EEprom del PIC ** ************************************************** ********/
unsigned char eeprom_r(char addr)

{

EEADR=addr; // indirizzo cella memoria eeprom
RD=1;
return EEDATA;

}


************* CODIFICA IN ASSEMBLER *********


bsf STATUS,RP0 ;Swap to bank 1

movwf EEDATA
movlw b'00000000'
movwf EEADR
BCF INTCON,GIE ;Disable INTs.
bsf EECON1,WREN ;Enable Write
movlw H'55' ;Write 55h to EECON2
movwf EECON2
movlw H'AA' ;Write AAh to EECON2
movwf EECON2
bsf EECON1,WR ;Begin write

LoopWReeprom
btfsc EECON1,WR ;Writing done ?
goto LoopWReeprom ;No, wait

bcf EECON1,WREN ;Enable Write
BSF INTCON,GIE ;Enable INTs
faustog_2 non è collegato   Rispondi citando