Duomenų įrašymas į PIC16F84 mikrovaldiklio EEPROM atmintį (0)
Programuojant mikrovaldiklį neretai susiduriama su problema, kai duomenis išsaugoti ir kad jie išliktų dingus maitinimui. Pateikiama programėlė, kaip įrašyti duomenis į EEPROM atminti, kur duomenys išsaugomi dingus maitinimui.
Prisijunk prie technologijos.lt komandos!
Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.
Sudomino? Užpildyk šią anketą!
Programuojant mikrovaldiklį neretai susiduriama su problema, kai duomenis išsaugoti ir kad jie išliktų dingus maitinimui. PIC16F84 turi EEPROM atmintį t.y. duomenys atmintyje išlieka tol kol nebus ištrinami pačių vartotojų. Na žinoma gamintojai pateikia kai ir ribota jo saugojimo laiką 40 metų. Na tokį laiko tarpą tikrai nereikės saugoti, juk tokiais mikrovaldikliais tikrai nesiūsime prietaisų į kosmosą ir šiaip tai ne atminties saugojimo įrenginys ;).
Duomenys į EEPROM atmintį rašomi netiesioginiu būdu t.y. per EEDATA, EEADR tarpinius registrus ir EECON1, EECON2 nustatymo registrus.
EEDATA registrą rašomi duomenys tuos kuriuos reikia įrašyti į EEPROM adresą.
EEADR registras naudojamas nurodyti į kuria atminties ląstelę bus įrašomi duomenys.
EECON1 registras naudojamas nustatymams, tokiems kaip: kokie veiksmai bus atliekami (duomenų rašymas, skaitymas, rašymo leidimo nustatymas, sekimas ar neįvyko klaida į atmintį įrašymo metu ir rašymo baigimo nustatymas)
EECON2 registras naudojamas kaip rašymo patvirtinimas. Rašymo metu į jį siunčiamas kodas. Tai savotiška apsauga nuo atsitiktinio įrašyto į EEPROM atmintį.
Programa:
eewrite ;
movfw ee_addr ;nuskaitomas EEPROM lasteles adresas adresas
movwf EEADR ;nustatomas adresas i kuri nus irasita i EEPROM lastele
movfw ee_data ;nuskaitomi norimi irasyti duomenis
movwf EEDATA ;nustatomi duomenys, kurie bus irasyti
call E2write ;iskvieciama irasymo paprograme
call wait10000 ;atliekamas
return ;sugrizimas is paprogrames
Rašymo į EEPROM atmintį paprogramė
E2write
bcf INTCON,GIE ;rasymo nustatymas
bsf STATUS,RP0 ;perejimas i kita banka
bsf EECON1,WREN ;nustatomus rasymo leidimo registras
movlw 0x55 ;irasymo kodas
movwf EECON2 ;nustatomas 55 kodas EECON2 registrui
movlw 0xaa ;irasymo kodas
movwf EECON2 ;nustatomas AA kodas EECON2 registrui
bsf EECON1,WR ;nusutatomas rasymo bitas
bcf STATUS,RP0 ;perejimas i nulini banka
return ;sugrizimas is paprogrames
Skaitymo paprogramė. Jau čia nereikia siųsti nuskaitymo kodo į EECON2
eeread ;
movfw ee_addr ;nuskaitomo lasteles adresas
movwf EEADR ;nustatomas lasteles adresas
bsf STATUS,RP0 ;perejimas i kita banka
bsf EECON1,RD ;nustatomas skaitymo bitas
bcf STATUS,RP0 ;perejimas i nulini banka
movfw EEDATA ;duomenu irasymas i W registra
movwf ee_data1 ;nuskaitytu duomenu irasymas i ee_data1 registra
return ;sugrizimas is paprogrames
SĖKMĖS!!!