- внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода-вывода.
Рисунок 1.2 - Организация памяти микроконтроллера ATmega64
Как видно из рисунках 1.2 и 1.3, 32 регистра общего назначения (РОН) включены в сквозное адресное пространство ОЗУ данных и занимают младшие адреса. Хотя физически регистры выделены из памяти данных, такая организация обеспечивает гибкость в работе. Регистры общего назначения прямо связаны с АЛУ. Каждый из регистров способен работать как аккумулятор. Большинство команд выполняются за один такт, при этом из регистров файла могут быть выбраны два операнда, выполнена операция и результат возвращен в регистровый файл. Старшие шесть регистров могут использоваться как три 16-разрядных регистра, и выполнять роль, например, указателей при косвенной адресации.
Рис.3. Регистры общего назначения микроконтроллера ATmega64
Следующие 64 адреса за регистрами общего назначения занимают регистры ввода-вывода (регистры управления/состояния и данных). При использовании команд IN и OUT используются адреса ввода-вывода с $00 по $3F. Но к регистрам ввода-вывода можно обращаться и как к ячейкам внутреннего ОЗУ. При этом к непосредственному адресу ввода-вывода прибавляется $20. Адрес регистра как ячейки ОЗУ приводится далее в круглых скобках. Регистры ввода-вывода с $00 ($20) по $1F ($3F) имеют программно доступные биты. Обращение к ним осуществляется командами SBI и CBI, а проверка состояния - командами SBIS и SBIC. В таблице 1.1 приведен список регистров ввода-вывода.
Таблица 1.1 - Некоторые регистры ввода-вывода микроконтроллера ATmega64
|
Название |
Функция |
|
|
PORTG |
Регистр данных порта G |
|
|
DDRG |
Регистр направления данных порта G |
|
|
PING |
Выводы порта G |
|
|
PORTF |
Регистр данных порта F |
|
|
DDRF |
Регистр направления данных порта F |
|
|
SREG |
Регистр состояния |
|
|
SPH |
Указатель стека, старший байт |
|
|
SPL |
Указатель стека, младший байт |
|
|
TIMSK |
Регистр маски прерываний от таймеров/счетчиков |
|
|
TIFR |
Регистр флагов прерываний от таймеров/счетчиков |
|
|
MCUCR |
Регистр управления микроконтроллером |
|
|
MCUCSR |
Регистр управления и состояния микроконтроллера |
|
|
TCCR0 |
Регистр управления таймером/счетчиком Т0 |
|
|
TCNT0 |
Счетный регистр таймера/счетчика Т0 |
|
|
OCR0 |
Регистр совпадения таймера/счетчика Т0 |
|
|
ASSR |
Регистр состояния асинхронного режима |
|
|
TCCR1A |
Регистр управления А таймера/счетчика Т1 |
|
|
PORTA |
Регистр данных порта А |
|
|
DDRA |
Регистр направления данных порта А |
|
|
PINA |
Выводы порта А |
|
|
PORTB |
Регистр данных порта В |
|
|
DDRB |
Регистр направления данных порта В |
|
|
PINB |
Выводы порта В |
|
|
PORTC |
Регистр данных порта С |
|
|
DDRC |
Регистр направления данных порта С |
|
|
PINC |
Выводы порта С |
|
|
PORTD |
Регистр данных порта D |
|
|
DDRD |
Регистр направления данных порта D |
|
|
PIND |
Выводы порта D |
|
|
SPDR |
Регистр данных SPI |
|
|
SPSR |
Регистр состояния SPI |
|
|
SPCR |
Регистр управления SPI |
|
|
ACSR |
Регистр управления и состояния аналогового компаратора |
|
|
ADMUX |
Регистр управления мультиплексором АЦП |
|
|
ADCSRA |
Регистр управления и состояния АЦП |
|
|
ADCH |
Регистр данных АЦП, старший байт |
|
|
ADCL |
Регистр данных АЦП, младший байт |
|
|
PORTE |
Регистр данных порта Е |
|
|
DDRE |
Регистр направления данных порта Е |
|
|
PINE |
Выводы порта Е |
|
|
PINF |
Выводы порта F |
Рисунок 1.4 - Блок-схема микроконтроллера ATmega64
2. Микросхемы памяти
Микросхема ОЗУ приведена на рисунке 2.1.
Рисунок 2.1 - УГО микросхемы КР565РУ1А
Назначение выводов:
1 -- напряжение питания (-Uп3);
2, 3, 4, 8, 9, 10, 13, 14, 15, 19, 20, 21 -- входы адресные А0...А11;
5 -- вход сигнала выбора микросхемы;
6 -- вход информационный;
7 -- выход информационный;
11 -- напряжение питания (Uп2);
12-- вход сигнала выбор режима;
16 -- свободный;
17 -- вход сигнала разрешения;
18 -- напряжение питания (Uп1);
22 -- общий.
ИС имеет три источника питания, первым подключают и последним отключают источник питания Uп3 = -5В, так как он подается на подложку (кристалл), в противном случае может произойти тепловой пробой под воздействием двух других источников питания Uп1 и Uп2. Режим регенерации осуществляют по циклу считывания или считывания-модификации-записи при выполнении условия CS = 1, обеспечивающего блокировку информационных входов и выходов микросхемы и возможность работать ей “на себя”. Выход микросхемы в это время находится в Z-состоянии. После включения питания нормальный режим функционирования устанавливается через восемь циклов.
Микросхема ПЗУ приведена на рисунке 2.2.
Рисунок 2.2 - УГО микросхемы КР1601РР1
Назначение выводов:
A0…A9 - входы адреса;
D0…D3 - входы / выходы данных;
CS - выбор кристалла;
RD - вход сигнала считывания;
PR - вход сигнала программирования;
ER - вход сигнала стирания;
UPR -вход напряжения программирования;
Режимы работы микросхемы представлены в таблице 2.1.
Таблица 2.1 - Режим работы микросхемы КР1601РР1
|
S |
R |
R |
D |
0ёA9 |
UPR |
1/0 |
Режим |
|
|
0 |
X |
X |
X |
X |
X |
Roff |
Хранение |
|
|
1 |
0 |
1 |
0 |
X |
-33ё-31 B |
X |
Общее стирание |
|
|
1 |
0 |
0 |
0 |
A |
--//-- |
X |
Избирательное стирание |
|
|
1 |
1 |
0 |
0 |
A |
--//-- |
D1 |
Запись данных |
|
|
1 |
1 |
1 |
1 |
A |
-33ё5 B |
D0 |
Считывание |
Таблица 2.2 - Карта распределения адресного пространства
|
000h |
ПЗУ |
|
|
A000h |
||
|
9FFFh |
ОЗУ |
|
|
9ВFFh |
Согласно приведенной карте адресного пространства 1 Кб ОЗУ расположен c адреса 9BFFh, а 4 Кб ПЗУ с адреса A000h.
Микросхема ОЗУ, объёмом 1Кбайт, будет занимать ячейки памяти с 9BFFдо 9FFF, что соответствует адресу 1001 1ххх хххх хххх.
Таблица 2.3 - Режим работы микросхемы ОЗУ объемом 1Кбайт
|
A15 |
A14 |
A13 |
А12 |
А11 |
А10 |
А9 |
А8 |
А7 |
А6 |
А5 |
А4 |
А3 |
А2 |
А1 |
А0 |
|||
|
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
|
|
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
|
|
0 |
1 |
0 |
0 |
1 |
1 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
0 |
|
|
1 |
в остальных случаях |
1 |
ПЗУ объёмом 4Кбайт занимает ячейки памяти с A000 до B000, что соответствует адресу 101x xххх хххх хххх.
Таблица 2.4 - Режим работы микросхемы ПЗУ объемом 4Кбайт
|
A15 |
A14 |
A13 |
А12 |
А11 |
А10 |
А9 |
А8 |
А7 |
А6 |
А5 |
А4 |
А3 |
А2 |
А1 |
А0 |
|||
|
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
0 |
1 |
0 |
1 |
X |
X |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
0 |
Адресное пространство ОЗУ и ПЗУ удобно сделать на дешифраторе 3 в 8 К555ИД7, где на входы подаются сигналы PC5, PC6, PC7. Так как по ним можно точно определить какая именно микросхема будет задействована: вывод 11 - микросхема ОЗУ; вывод 10 - микросхема ПЗУ.
Рисунок 2.3 - Адресный селектор памяти
3. Индикатор JA-SCB16202S-YN6T-LY
Характеристики:
- режим отображения: STN / TN, прямой / обратный;
- формат экрана: 16 символов * 2 строки;
- метод передачи: 1/16 Duty, 1/4 Bias;
- направление обзора: 180°/360°;
- заднее освещение: LED / EL блок.
Таблица 3.1 - Механические характеристики индикатора JA-SCB16202S-YN6T-LY.
|
Параметр |
Спецификация |
Ед. изм. |
|
|
Размер модуля (Ш х В х Г) |
80.0 x 36.0 x 15.0(10) Max. |
мм |
|
|
Видимая область (Ш х H/) |
64.5 x 13.8 |
мм |
|
|
Размер шрифта (Ш х В) |
5.0 x 7.0 |
точка |
|
|
Размер символа (Ш х В) |
2.95 x 3.8 |
мм |
|
|
Размер шага (Ш х В) |
3.65 x 5.05 |
мм |
|
|
Размер точки (Ш х В) |
0.55 x 0.5 |
мм |
|
|
Вес |
Около 100 г |
г |
Таблица 3.2 - Назначение контактов индикатора
|
Номер контакта |
Символ |
Уровень |
Функция |
|
|
1 |
VSS (GND) |
0 V |
Земля |
|
|
2 |
VDD (VCC) |
+ 5V |
Напряжение питания логики |
|
|
3 |
V0 |
- |
Напряжения питания ЖК |
|
|
4 |
RS |
H / L |
H: Ввод данных L: Ввод инструкций |
|
|
5 |
R / W |
H / L |
H: Чтения данных L: Запись данных |
|
|
6 |
E |
H, H L |
Сигнал разрешения |
|
|
7 |
DB0 |
H / L |
Шина данных |
|
|
8 |
DB1 |
H / L |
||
|
9 |
DB2 |
H / L |
||
|
10 |
DB3 |
H / L |
||
|
11 |
DB4 |
H / L |
||
|
12 |
DB5 |
H / L |
||
|
13 |
DB6 |
H / L |
||
|
14 |
DB7 |
H / L |
||
|
15 |
NC |
- |
||
|
16 |
NC |
- |
Рисунок 3.1 - Блок-схема индикатора
Таблица 3.3 - Наборы инструкций
|
Инструкция |
Код |
Описание |
Время запуска (макс.) |
||||||||||
|
RS |
R/W |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
||||
|
Очистка дисплея |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1.52 мс |
||
|
Сброс |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
* |
Возвращает дисплей при переключении |
1.52 мс |
|
|
Режим записи |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
SH |
37 мкс |
||
|
Управление дисплеем Вкл / Выкл |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
37 мкс |
||
|
Отображение курсора или дисплея |
0 |
0 |
0 |
0 |
0 |
1 |
S/C |
R/L |
* |
* |
37 мкс |
||
|
Начало работы |
0 |
0 |
0 |
0 |
1 |
DL |
N |
F |
* |
* |
37 мкс |
||
|
Установить CG Ram адрес |
0 |
0 |
0 |
1 |
ACG |
37 мкс |
|||||||
|
Установить DD RAM адрес |
0 |
0 |
1 |
ADD |
37 мкс |
||||||||
|
Чтение флага “занят” и адреса |
0 |
1 |
BF |
0 мкс |
|||||||||
|
Запись данных в CG или DD RAM |
1 |
0 |
AC |
43 мкс |
|||||||||
|
Чтение данных из CG или DD RAM |
1 |
1 |
чтение |
43 мкс |
Таблица 3.4 - Наборы инструкций
|
Замечания |
|||||
|
I/D |
1 |
увеличение |
0 |
уменьшение |
|
|
SH |
1 |
включить полный сдвиг |
0 |
выключить полный сдвиг |
|
|
S/C |
1 |
Сдвиг дисплея |
0 |
Установка курсора |
|
|
R/L |
1 |
сдвиг вправо |
0 |
сдвиг влево |
|
|
DL |
1 |
Биты |
0 |
Биты |
|
|
N |
1 |
Линии |
0 |
Линии |
|
|
F |
1 |
5 х 11 Точек |
0 |
5 х 8 точек |
|
|
BF |
1 |
Действующий внутренне |
0 |
Может принимать инструкции |