- •Лабораторная работа №1
- •Лабораторная работа №2
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №3
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №4
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №5
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №6
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №7
- •В программном окне «Source Code» программы Proteus набрать следующую программу:
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Лабораторная работа №9
Лабораторная работа №5
Использование внутренней EEPROM в микроконтроллерах AVR
Цель работы: Получение практических навыков использования внутренней EEPROM микроконтроллеров
Лабораторное задание
Разработать программу для микроконтроллера TinyAVR, запись и чтение данных в EEPROM микроконтроллера.
Краткие теоретические сведения
EEPROM – специальная внутренняя память, выполненная по flash-технологии и предназначенная для долговременного хранения данных.
К EEPROM центральная программа управления микроконтроллера при помощи регистров ввода-вывода. Для микроконтроллеров с объемом EEPROM менее 256 байт таких регистров всего три:
- EEAR – регистр адреса EEPROM;
- EEDR – регистр данных EEPROM;
- EECR – регистр управления EEPROM.
Микроконтроллер ATtiny содержит 128 Байт EEPROM. Эта память организована как отдельное пространство данных, каждый один байт может быть прочитан и записан. EEPROM может быть записана и стерта в сумме как минимум 100 000 раз.
Время доступа к записи EEPROM приведено в техническом описании на соответствующий микроконтроллер. Эта самоопределяющая временная функция и позволяет пользователю программно определять когда можно записать следующий байт данных. Если программа пользователя содержит инструкции записи, тогда должны быть предприняты некоторые меры предосторожности. В источниках питания содержащих фильтры возможно медленное изменение напряжения питания вверх или вниз относительно земли. По этой причине устройство может работать некоторое время с пониженным питанием, чем положено для используемой системной частоты. Для исключения подобных явлений во время работы с EEPROM необходимо отключать все прерывания. Для отключения всех прерываний используется инструкция CLI. Ни одно прерывание не будет выполнено после инструкции CLI, даже если условие прерывания возникает во время выполнения этой самой инструкции.
Лабораторное задание
Использую программную среду Proteus запрограммировать работу микроконтроллера, обеспечивающую запись данных с порта D микроконтроллера (в соответствии с вариантом) в EEPROM, последующее чтение из EEPROM записанных и выполнение логической операции (в соответствии с вариантом).
Порядок выполнения работы
Для выполнения работы необходимо в среде автоматизированного проектирования Proteus собрать схему устройства в соответствии с рисунком 1.
Рисунок 1 – Электрическая схема устройства
В программном окне «Source Code» программы Proteus набрать следующую программу:
.device ATtiny2313
.def temp=r16
.def adres=r18
.def sys=r20
.cseg
.org 0
rjmp Init
Init:
ldi temp,low(RAMEND)
out SPL,temp
clr temp
out DDRD,temp
ldi temp,255
out PORTD,temp
ser temp ;команда устанавливает все биты temp в «1»
out DDRB,temp ;переводит все биты потра B на вывод
clr temp ; обнуляет переменную temp
out PortB,temp ;команда отключает подтягивающие резисторы
in temp,PIND
WRITE_0: ;запись данных в EEPROM
in r15,SREG
cli
sbic EECR,EEPE
rjmp WRITE_0
ldi adres,0x30
out EEAR,adres
out EEDR,temp
sbi EECR,EEMPE
sbi EECR,EEPE
out SREG,r15
WRITE_1:
ldi temp,0b00110011
in r15,SREG
cli
sbic EECR,EEPE
rjmp WRITE_1
ldi adres,0x40
out EEAR,adres
out EEDR,temp
sbi EECR,EEMPE
sbi EECR,EEPE
out SREG,r15
READ_0:
in r15,SREG
cli
sbic EECR,EEWE
rjmp READ_0
ldi adres,0x30
out EEAR,adres
sbi EECR,EERE
in temp,EEDR
out SREG,r15
READ_1:
in r15,SREG
cli
sbic EECR,EEWE
rjmp READ_1
ldi adres,0x40
out EEAR,adres
sbi EECR,EERE
in sys,EEDR
in r15,SREG
or temp,sys
out PORTB,temp
reti
Произвести симуляцию программы и убедится в правильности работы программы.
В соответствии с вариантом произвести установку переключателей тумблера SW1 в соответствии с вариантом.
Изменить программный код в соответствии с вариантом, установив необходимые адреса, данные и логическую операцию.
Содержание отчета:
Название и цель работы.
Принципиальная схема устройства.
Результаты моделирования.
Таблица вариантов
№ Вар. |
Значение переключателя SW1 |
Адрес EEPROM |
Логическая операция |
Значение константы |
1 |
0b11000001 |
10 |
И |
0b11110000 |
2 |
0b10000010 |
20 |
ИЛИ |
0b11110001 |
3 |
0b10000100 |
30 |
И |
0b11110010 |
4 |
0b10001000 |
40 |
ИЛИ |
0b11110100 |
5 |
0b10010000 |
50 |
И |
0b11111000 |
6 |
0b10100000 |
60 |
ИЛИ |
0b11110011 |
7 |
0b11000000 |
70 |
И |
0b11110110 |
8 |
0b10000011 |
80 |
ИЛИ |
0b11111100 |
9 |
0b10000110 |
10 |
И |
0b11110000 |
10 |
0b10001100 |
20 |
ИЛИ |
0b11110111 |
11 |
0b10011000 |
30 |
И |
0b11111110 |
12 |
0b10110000 |
40 |
ИЛИ |
0b10001111 |
13 |
0b11100000 |
50 |
И |
0b01001111 |
14 |
0b10000111 |
60 |
ИЛИ |
0b00101111 |
15 |
0b10001110 |
70 |
И |
0b00011111 |
16 |
0b10011100 |
80 |
ИЛИ |
0b11001111 |
17 |
0b10111000 |
10 |
И |
0b01101111 |
18 |
0b11110000 |
20 |
ИЛИ |
0b00111111 |
19 |
0b10001111 |
30 |
И |
0b11101111 |
20 |
0b10011110 |
40 |
ИЛИ |
0b01111111 |
21 |
0b10111100 |
50 |
И |
0b01010101 |
22 |
0b11111000 |
60 |
ИЛИ |
0b10101010 |
23 |
0b10101011 |
70 |
И |
0b11001100 |
24 |
0b11010101 |
80 |
ИЛИ |
0b00110011 |
25 |
0b11101101 |
10 |
И |
0b11100011 |
26 |
0b10011001 |
20 |
ИЛИ |
0b00011100 |
27 |
0b11110101 |
30 |
И |
0b00001111 |