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. Выводы.