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

Обсуждаются темы не относящиеся к журналу "РАДИО"

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

Сообщение Ewgen » 17 апр 2019, 18:27

Требуется записать коды в EEPROM PIC16F876A. Программы пишу в среде MPLAB IDE. Программатор PICkit2. Подскажите как сделать или где можно прочитать.
Ewgen
 
Сообщения: 192
Зарегистрирован: 13 ноя 2009, 20:40
Откуда: Ульяновск

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

Сообщение MM16 » 17 апр 2019, 22:27

Можно, например, сделать так:
Файл 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
.................................
MM16
 
Сообщения: 16
Зарегистрирован: 23 мар 2008, 08:54

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

Сообщение ASD » 17 апр 2019, 22:42

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

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

Директивы DE желательно располагать в конце программы. Иначе, чтобы вернуться в программную память, после них нужна ещё одна директива ORG.
ASD
 
Сообщения: 637
Зарегистрирован: 11 мар 2008, 15:52

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

Сообщение Ewgen » 18 апр 2019, 07:37

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

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

Сообщение ASD » 18 апр 2019, 14:59

Есть ещё директива __CONFIG (с двумя предшествующими подчёркиваниями). Она позволяет задавать конфигурацию, не указывая адрес. И есть предопределённые константы _HS_OSC, _WDT_OFF и прочие, объёдиняя которые по И, можно составить нужное слово конфигурации.
ASD
 
Сообщения: 637
Зарегистрирован: 11 мар 2008, 15:52


Вернуться в Всё остальное

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2

cron