Страница 1 из 1

Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 17 апр 2019, 18:27
Ewgen
Требуется записать коды в EEPROM PIC16F876A. Программы пишу в среде MPLAB IDE. Программатор PICkit2. Подскажите как сделать или где можно прочитать.

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 17 апр 2019, 22:27
MM16
Можно, например, сделать так:
Файл EEPROM.inc
; РАСПРЕДЕЛЕНИЕ И ИНИЦИАЛИЗАЦИЯ ПАМЯТИ EEPROM
; Память EEPROM (org 0x2100 с этого адреса будто бы начинается EEPROM - условность понятная программатору)
org 0x2100
de 0x0A ;AdresEEPROM=0x00 WriteEEPROM 0x0A
de 0x00 ;Adres=0x01 Write 0x0A
de 0x3F ;Adres=0x02 Write 0x3F
de 0x00 ;Adres=0x03 Write 0x00
.................................

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 17 апр 2019, 22:42
ASD
MPLAB IDE автоматически помещает коды, предназначенные для записи а EEPROM в общий с кодами программы HEX-файл. Программатор записывает все эти коды за один приём, если, конечно, режим записи в EEPROM в нём не отключён.

В программе задают коды для EEPROM с помощью директивы DE аналогично тому , как задают коды для записи во FLASH-память директивами DB и DW.
Перед директивой DE нужно указать директивой ORG начальный адрес EEPROM, с которого должны быть записаны коды. У микроконтроллеров PIС12, PIC16 адрес его нулевой ячейки - 0x2100.
Если директив DE несколько, то каждая следующая запишет свои коды непосредственно после последней ячейки, заполненной предыдущей директивой. Если это не устраивает, приходится перед новой директивой DE ставить директиву ORG с нужным адресом .

Директивы DE желательно располагать в конце программы. Иначе, чтобы вернуться в программную память, после них нужна ещё одна директива ORG.

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 18 апр 2019, 07:37
Ewgen
ASD и MM16 огромное спасибо, всё понятно и всё получилось, программатор записывает нужные коды в EEPROM.
ORG 0X00002007 ; СЛОВО КОНФИГУРАЦИИ
DW 0X39F5 ;
ORG 0X00002106 ; EEPROM
DE 0X00 ;
DE 0X00 ;
END

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 18 апр 2019, 14:59
ASD
Есть ещё директива __CONFIG (с двумя предшествующими подчёркиваниями). Она позволяет задавать конфигурацию, не указывая адрес. И есть предопределённые константы _HS_OSC, _WDT_OFF и прочие, объёдиняя которые по И, можно составить нужное слово конфигурации.

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 02 окт 2019, 08:36
Ewgen
Уважаемый ASD, вы говорили ещё о директивах DB и DW, я не могу найти описание как обращаться к эти м данным из программы. Для таблиц пользуюсь регистром PCL и командой RETLW.

Re: Запись в EEPROM для PIC16F876A.

СообщениеДобавлено: 02 окт 2019, 12:00
ASD
Их и применяют для создания во FLASH-памяти таблиц и текстовых констант.

Запись в EEPROM для PIC16F876A

СообщениеДобавлено: 24 фев 2020, 03:59
pairtykicky
PIC 16F84 ma integrovanú malú pamäť EEPROM ktorej obsah sa zachová i po odpojení napájania zaujímalo by ma ako sa da do tejto pamäťe pristupovať ukladať,čítať,mazať data. Takisto by ma zaujímalo akým spôsobom je možné obslužiť integrovaný časovač TMR0 napríklad chcem aby každu sekundu program vykonal istú operáciu napr. skok na nejaké navestie. Za odpoveďe vopred Ďakujem

От модератора. Машинный перевод со словацкого:

"PIC 16F84 я интегрировал небольшую память EEPROM, содержимое которой сохраняется даже после отключения питания мне интересно, как da в этом pamäťe доступ к хранению, чтению, удалению данных. Мне также интересно, как можно управлять встроенным таймером TMR0, например, я хочу, чтобы программа выполняла определенную операцию каждую секунду. прыгай на какой-нибудь корм. Заранее спасибо за ответ"