- •Оглавление
- •4. Таймеры
- •5. Память пик-контроллеров
- •2.1.Регистр status
- •2.2 Регистр option_reg
- •2.3.Регистры pclath и pcl
- •2.4.Косвенная адресация, регистры indf и fsr
- •3.Порты ввода/вывода
- •3.1.Регистры porta и trisa
- •3.2.Регистры portb и trisb
- •3.3.Регистры portс и trisс
- •3.4.Регистры portd и trisd
- •4.1.Модуль таймера tmr0
- •4.2.Модуль таймера tmr1
- •4.3. Модуль таймера tmr2
- •5.1.Организация памяти программ
- •5.2.Организация памяти данных
- •5.3.Eeprom память данных. Flash память программ.
- •5.4. Регистры eecon1, eecon2
- •5.5. Eeprom память данных..
- •6.Аналого-цифровой преобразователь
- •6.1. Регистры ацп
- •6.2.Порядок работы с ацп
- •6.2.1..Выбор источника тактовых импульсов для ацп
- •6.2.2.Настройка аналоговых входов
- •6.2.3.. Аналого-цифровое преобразование
- •6.2.4. Выравнивание результата преобразования
- •7.Прерывания микроконтроллеров
- •7.1.Регистры, используемые системой прерываний.
- •7.2.Внешнее прерывание с входа rb0/int
- •7.5. Сохранение контекста при обработке прерываний
- •8.Система команд
5.3.Eeprom память данных. Flash память программ.
Данные из EEPROM памяти данных и FLASH памяти программ могут быть прочитаны /перезаписаны в нормальном режиме работы МК во всем диапазоне напряжения питания. Операции выполняются с одним байтом для EEPROM память данных и одним словом для FLASH память программ. Запись производится по принципу "стирание-запись" для каждого байта или слова. Сформированная кодом программы операция стирания не может быть выполнена при включенной защите записи.
Доступ к памяти программ позволяет выполнить вычисление контрольной суммы. Данные, записанные в памяти программ, могут быть использованы в виде: 14-разрядных чисел, калибровочной информации, серийных номеров, упакованных 7-разрядных символов ASCII и т.д. В случае обнаружения недействительной команды в памяти программ, выполняется пустой цикл NOP.
Число циклов стирания/записи определяется электрическими характеристиками этих устройств. Число циклов стирания/записи для FLASH памяти программ значительно ниже по сравнению с EEPROM памятью данных, поэтому EEPROM память данных должна использоваться для сохранения часто изменяемых данных. Время записи данных управляется внутренним таймером, оно зависит от напряжения питания, температуры и имеет небольшой технологический "разброс".
При записи байта или слова автоматически стирается соответствующая ячейка, а затем выполняется запись. Запись в EEPROM память данных не воздействует на выполнение программы, а при записи во FLASH память программ выполнение программы останавливается на время записи. Нельзя обратиться к памяти программ во время цикла записи. В течение операции записи тактовый генератор продолжает работать, периферийные модули включены и генерируют прерывания, которые "ставятся в очередь" до завершения цикла записи. После завершения записи выполняется загруженная команда (из-за конвейерной обработки) и происходит переход по вектору прерываний, если прерывание разрешено, и условие прерывания возникло во время записи.
Доступ к функциям записи/чтения EEPROM памяти данных и FLASH памяти программ выполняется через шесть регистров специального назначения:
EEDATA; EEDATH; EEADR; EEADRH; EECON1; EECON2.
Операция чтения/записи EEPROM память данных не приостанавливают выполнение программы. В регистре EEADR сохраняется адрес ячейки EEPROM память данных. Данные сохраняются/читаются из регистра EEDATA. В микроконтроллерах 877 объем EEPROM память данных 256 байт.
Чтение FLASH памяти программ не влияет на выполнение программы, а во время операции записи выполнение программы приостановлено. В спаренных регистрах EEADRH:EEADR сохраняется 13-разрядный адрес ячейки памяти программ, к которой необходимо делать обращение. Спаренные регистры EEDATH:EEDATA содержат 14 разрядные данные для записи и отображают значение из памяти программ при чтении. В регистры EEADRH:EEADR должен быть загружен адрес физически реализованной памяти программ (от 0000h до 1FFFh), потому что циклическая адресация не поддерживается.