Организация и использование памяти данных.

 

1. ЦЕЛЬ

Выучить страничную организацию памяти данных. Научиться использовать режим непрямой адресации ячейки памяти данных. Выучить организацию и способы доступа к енергонезалежной памяти данных (EEPROM).

 

2. ЗАДАНИЕ ПО ЛАБОРАТОРНОЙ РАБОТЕ

2.1. Используя метод прямой адресации записать в память данных микроконтроллера PIC16F84 свою фамилию, имя и отчество.

2.2. Используя метод непрямой адресации переписать анкетные данные из памяти данных в енергонезалежну память (EEPROM).

2.3. Выполнить запись в ячейку енергонезалежной памяти данных согласно с вариантом.

2.4. Определить время записи одного байта в EEPROM.

2.5. Определить возможность чтения данных с EEPROM сразу после начала цикла записи.

Замечание.Конфигурацию устройств микроконтроллера сделать без использования команд TRIS и OPTION, а используя специальные регистры банка 1.

 

3. ВАРИАНТЫ ЗАДАНИЙ

Вариант 1. В последнюю ячейку EEPROM записать контрольную сумму всех других ячеек памяти, что вычисляется путем добавления за модулем 2.

Вариант 2. В последнюю ячейку EEPROM записать контрольную сумму всех других ячеек памяти, что вычисляется путем добавления за модулем 256.

Вариант 3. В последнюю ячейку EEPROM записать максимальное значение из всех других ячеек памяти.

Вариант 4. В последнюю ячейку EEPROM записать минимальное значение из всех других ячеек памяти.

Вариант 5. В последнюю ячейку EEPROM записать среднее значение из всех других ячеек памяти.

 

Пример программы.Очистка 10 байтов памяти данных, начиная с адреса 0x0C, используя метод непрямой адресации:

movlw 0x0C ; установление начального адреса

movwf FSR ; инициализация указателя

movlw .10 ; инициализация счетчика CTR значением 10

movwf CTR

m1 clrf INDF ; очистка ячейки памяти данных

incf FSR ; увеличение значения указателя

decfsz CTR, 1 ; уменьшение значения счетчика

goto m1 ; переход, если не последняя ячейка

… ; продолжение программы

Замечание.Счетчик CTR не должен располагаться в ячейках памяти, что очищаются. Имена регистров FSR (адрес 0x00) и INDF (адрес 0x04) доступны при подключении заглавного файла P16F84.INC или должны быть описанные в описательной секции программы.

 

Пример программы. Чтение данных из ячейки памяти EEPROM с адресом 0x10 в регистр W:

bcf STATUS, RP0 ; выбор банка 0

movlw 0x10 ; определение адреса ячейки памяти

; EEPROM

movwf EEADR

bsf STATUS, RP0 ; выбор банка 1

bsf EECON1, RD ; строб чтения

bcf STATUS, RP0 ; выбор банка 0

movf EEDATA, W ; запись в регистр W результата

; чтение

 

Пример программы. Запись значения регистру W в ячейку памяти EEPROM с адресом 0x10:

bcf STATUS, RP0 ; выбор банка 0

movwf EEDATA ; данные для записи

movlw 0x10 ; определение адреса ячейки памяти

; EEPROM

movwf EEADR

bsf STATUS, RP0 ; выбор банка 1

bsf EECON1, WREN ; разрешение записи

bcf EECON1, EEIF ;- сброс флажка окончания

; записи в EEPROM

bcf INTCON, GIE ;+ запрещение прерываний

movlw 0x55 ;+ обязательная последовательность команд

movwf EECON2 ;+

movlw 0xAA ;+

movwf EECON2 ;+

bsf EECON1, WR ;+ строб записи

m1 btfss EECON1, EEIF ;- ожидание окончания записи в

; EEPROM

goto m1 ;-

bcf STATUS, RP0 ; выбор банка 0

Замечание.Последовательность команд, что отмеченные символом "+" является обязательной. Команды, что отмеченные символом "-" являются необязательными в случае однократной записи. Имена регистров STATUS (адрес 0x03), EEDATA (адрес 0x08), EEADR (адрес 0x09), INTCON (адрес 0x0B), EECON1 (адрес 0x88), EECON2 (адрес 0x89), и бит RP0(5), RD(0), WR(1), WREN(2), EEIF(4), GIE(7) доступные при подключении заглавного файла P16F84.INC или должны быть описанные в описательной секции программы.

 

4. Содержание отчета

4.1. Тема.

4.2. Цель.

4.3. Индивидуальное задание.

4.4. Алгоритмы программ и подпрограмм.

4.5. Листинг программы (файл .lst) с подробным комментированием выполнения программы.

4.6. Короткое описание программы.

4.7. Результаты выполнения программы.

4.8. Выводы.