. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Škola programování PIC-12 díl
Škola programování PIC 12

Škola programování PIC 12

Interní EEPROM

Tyto procesory, narozdíl od Atmelů mají integrovanou malou EEPROM paměť. Tedy paměť, která si uchová svůj obsah i po vypnutí napájení. Její velikost je 128 bytů (u 16F84 jen 64 bytů).
Paměť je možné libovolně číst i do ní zapisovat, nejprve si však ukážeme, jak do ní zapsat data už při programování procesoru.

org 0x2100
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
de 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

org 00h
goto INIT

Takhle by tedy měl vypadat úvod programu, pokud chcete při programování procesoru již zapsat data do EEPROM. Řádky samozřejmě nemusí být všechny.

CTIEE movf EADR,W
    bsf STATUS,RP0
    movwf EEADR
    bsf EECON1,RD
    movf EEDATA,W
    bcf STATUS,RP0
    return

Tento podprogram CTIEE slouží ke čtení dat z EEPROM. V úvodu celého programu je ještě třeba vytvořit registr EADR.
Obsluha podprogramu je velice jednoduchá, do registru EADR vložíte adresu ze které chcete číst a poté příkazem CALL CTIEE zavoláte tento podprogram. Ten na určené adrese přečte hodnotu, uloží ji do pracovního registru a skončí.

PISEE  bsf STATUS,RP0
    btfsc EECON1,WR
    goto PISEE
    bcf STATUS, RP0
    movf EADR,0
    bsf STATUS,RP0
    movwf EEADR
    bcf STATUS,RP0
    movf CISLO,0
    bsf STATUS,RP0
    movwf EEDATA
    bsf EECON1,WREN
    bcf INTCON,GIE
    movlw H'55'
    movwf EECON2
    movlw H'AA'
    movwf EECON2
    bsf EECON1,WR
    bcf EECON1,WREN
    bsf INTCON,GIE
    bcf STATUS, RP0
    return

Podprogram pro zápis dat je již trochu složitější. Nejprve je třeba si vysvětlit, že se jedná o paměť typu EEPROM, tedy paměť u které zápis trvá i několik ms. Proto je v úvodu podprogramu čekací smyčka, které testuje zda již skončil případný předchozí zápis. Za ní následuje přesun hodnot z registru EADR (adresa) a CISLO (zapisovaná hodnota) do systémových registrů. Poté se zakáží všechna přerušení a dvěma po sobě jdoucími "klíči" (55h a HHh) se odemkne zápis do paměti. Pak se již povolí zápis a je hotovo. Nakonec se ještě zpět povolí všechna přerušení a je konec podprogramu. Zápis dat pak již proběhne automaticky.
Po skončení zápisu se doporučuje provést kontrolní čtení, ale není to třeba.

Zde je ke stažení ukázkový program se všemi těmito ukázkami:

ASM
HEX







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (2):

Zobrazit starší 30 dnů (2)...

host
2. Dne 21. 03. 2008 v 00:00 zaslal host
Bez titulku
U PICu 16F84A je pro zápis dat do paměti chybně uvedeno stránkování. EEDATA a EEADR jsou na stránce 0.


Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
ID-12 - čtečka RFID
Modul čtečky bezkontaktní identifikace - RFID tagů s integrovanou anténou a dosahem 12 cm.
Skladem od 670 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007