Обзор регистров и озу
Область ОЗУ организована как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или косвенно, через регистр указатель FSR (04h). Это также относится и к EEPROM памяти данных-констант.
|
Page 0 |
Page 1 |
|
00 |
Indirect add. |
80 | |
01 |
RTCC |
OPTION |
81 |
02 |
PCL |
82 | |
03 |
STATUS |
83 | |
04 |
FSR |
84 | |
05 |
PORT A |
TRISA |
85 |
06 |
PORT B |
TRISB |
86 |
07 |
|
|
87 |
08 |
EEDATA |
EECON1 |
88 |
09 |
EEADR |
EECON2 |
89 |
0A |
PCLATH |
8A | |
0B |
INTCON |
8B | |
0C 2F |
36 регистров общего назначения |
тоже |
8C AF |
30 7F |
не существует
|
B0 FF |
В регистре статуса (03h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Однако для PIC16F84 память данных существует только до адреса 02Fh. Первые 12 адресов используются для размещения регистров специального назначения. Регистры с адресами 0Ch-2Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на обеих страницах, а некоторые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 8Ch-AFh фактически адресует страницу 0. К регистрам можно адресоваться прямо или косвенно. В обоих случаях можно адресовать до 512 регистров.
Работа PIC16F84
Для работы микроконтроллера необходимо:
определиться с управляющими сигналами, сигналами ввода/вывода и т.д.
определиться с вводимыми и выводимыми данными;
разработать программный код для микроконтроллера.
Зададим назначение ножек PIC16F84, которое будет использоваться в данной конкретной работе.
назначения ножек
Обозначение |
Назначение |
Значение |
RA0 - RA3 |
линия ввода. |
0, 1 |
RA4/RTCC |
не используется |
0 |
RB0/INT |
внешний вход прерывания |
прерывание по нарастающему фронту |
RB1 – RB7 |
линия вывода. |
0, 1 |
MCLR/Vрр |
сигнал сброса для контроллера. |
0- сброс |
OSC1/CLKIN OSC2/CLKOUT |
для подключения кварца |
- |
Vdd |
напряжение питания |
- |
Vss |
общий |
- |
Режим 8 битовых символов на дисплее, ввод слева – простейший формат отображения в котором каждой позиции дисплея определена строка (полустрока) в ОЗУ отображения.
Для определения входных и выходных данных рассмотрим для начала расположение индикаторов дисплея.
Рисунок – расположение индикаторов дисплея
Как видно из рисунка индикаторы A-G позволяют отображать информацию на самом дисплее. Также для подключения имеется индикатор H, который представляет собой точку. Для простоты построения программного кода микроконтроллера индикатор H использоваться не будет.
Таким образом для отображения информации на одном дисплее достаточно одного микроконтроллера. Контакты микроконтроллера RB1-RB7 будут соответствовать индикаторам A-H. Высокий выходной сигнал (т.е. 1) с микроконтроллера будет зажигать соответствующие индикаторы.
Например, нам необходимо отобразить на дисплее цифру 7, для этого необходимо, чтобы на индикаторе загорелись A, B и C, что соответствует контактам RB1, RB2 и RB3 соответственно. Значит микроконтроллер должен выдать на порт B(1-7) такую последовательность: 1110000.
С выходными сигналами разобрались, теперь перейдём к входным.
Входные сигналы будут соответствовать цифрам, которые необходимо отобразить. Порт A (не считая RA4) предназначен для ввода информации. Для отображения цифр на экране индикатора нам потребуется определиться с входной последовательностью. Составим таблицу соответствия входов и выходов микроконтроллера.
Таблица
-
Цифра
Входы
Выходы
RA0
RA1
RA2
RA3
RB1 (A)
RB2
(B)
RB3
(C)
RB4
(D)
RB5
(E)
RB6
(F)
RB7
(G)
1
0
0
0
1
0
1
1
0
0
0
0
2
0
0
1
0
1
1
0
1
1
0
1
3
0
0
1
1
1
1
1
1
0
0
1
4
0
1
0
0
0
1
1
0
0
1
1
5
0
1
0
1
1
0
1
1
0
1
1
6
0
1
1
0
1
0
1
1
1
1
1
7
0
1
1
1
1
1
1
0
0
0
0
8
1
0
0
0
1
1
1
1
1
1
1
9
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
Определившись с входными/выходными последовательностями и сигналами можно приступать к программированию микроконтроллера.
Для этого нам понадобятся следующие вещи:
- микpосхема PIC16F84;
- ассемблеp MPALC;
- пpогpамматоp PROPIC;
Текст программы находится в Приложении .
Теперь у нас имеется запрограммированный микроконтроллер который уже можно использовать в схеме.
Выбор адресного пространства
При выборе зоны адресов проектируемого модуля необходимо учитывать распределение адресов ввода/вывода стандартных и используемых УВВ микропроцессорной системы и выбирать адреса из свободных зон. В таблице 2.2 приведена карта адресов УВВ архитектуры IBMPC.
Таблица 2.2 - Карта адресов УВВ архитектуры IBM PC | |
Зона адресов |
Устройство ввода/вывода |
000-01F |
Контроллер ПДП (DMA- master) |
020-021 |
Контроллер прерываний (Мaster) |
022-023 |
Регистры управления аппаратурой. Порты ввода/вывода |
040-05F |
Регистры управления таймером |
060-06F |
Контроллер интерфейса клавиатуры (8042) |
070-07F |
Порты RTC и порты ввода/вывода CMOS |
080-09F |
Регистры ПДП |
Таблица 2.2 - Продолжение
0A0-0BF |
Контроллер прерываний (Slave) |
0C0-0DF |
Контроллер ПДП (DMA – slave) |
0F0-0FF |
Математический сопроцессор |
1F0-1FB |
Контроллер жесткого диска |
278-27F |
Параллельный порт #2 |
2B0-2DF |
Контроллер графического адаптера |
2F8-2FF |
Последовательный порт #2 |
360-36F |
Сетевые порты |
378-37F |
Параллельный порт #1 |
3B0-3BF |
Адаптер параллельного порта и монохромного режима |
3C0-3CF |
EGA-адаптер |
3D0-3FD |
CGA-адаптер |
3F0-3F7 |
Контроллер дисковода на гибких дисках |
3F8-3FF |
Последовательный порт #1 |
Требования, предъявляемые к селекторам адреса:
высокое быстродействие (селектор адреса должен иметь задержку не более чем интервал между выставлением адреса и началом сигнала строба обмена);
возможность изменения селектируемых адресов (особенно важно для устройств ввода/вывода из-за малого количества свободных адресов);
малые аппаратурные затраты.
Самое простое решение при построении селектора адреса - использование только микросхем логических элементов. Основным достоинством такого подхода является высокое быстродействие (задержка не превышает 30 нс).
Выбираем адреса 310hи 311h.
Плата занимает два адреса.
Выделяем зоны:
1 – не изменяющаяся, определяет адрес платы, это старшие разряды;
2 – переменная, определяет адрес устройства внутри этого модуля, это младшие разряды.
На рисунке 2.4 показана схема селектора адреса.
Таблица 2.3
-
AEN
SA9
SA8
SA7
SA6
SA5
SA4
SA3
SA2
SA1
SA0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
Рисунок 2.4 - Схема построения селектора адреса
Разработка структуры сопряжения с внешними сигналами.
Управляющие сигналы подаются непосредственно на БИС PIC16F84, а данные и комманды передаются через буферный регистр, что необходимо для синхронизации работы устройства и подключаемой ЭВМ.
Управление устройством осуществляется с помощью управляющих сигналов (Таблица 2.4), которые передаются устройству по линиям, подключенным к разъёму шины ISAи составляют канал управления устройством.
Таблица 2.4.
Сигнал |
Назначение сигнала |
Вход |
Выход |
SA<9...0> |
Адресные сигналы |
+ |
-- |
AEN |
Передача данных/передача команд |
+ |
-- |
SD<7...0> |
Шина данных |
+ |
-- |
-IOW |
Разрешение записи |
+ |
-- |
IRQ |
Прерывание |
+ |
-- |
RESET DRV |
Аппаратный сброс устройства |
+ |
-- |
Дисплейная часть устройства организована следующим образом. Информация из шины ISAпередаётся в регистр по линиямSD1-SD7, после разрешения записи (-IOW) из регистра информация попадает непосредственно вPIC16F84. После обработки микроконтроллером, выдаются сигналы непосредственно на индикатор.
Выбор элементной базы
Для создания разрабатываемого устройства были использованы два микроконтроллера PIC16F84 для двух индикаторов АЛС314А.
Другие полупроводниковые приборы были выбраны из соображения их максимальной электрической совместимости с выходными характеристиками микроконтроллера.
Выводы к главе 2
В данной главе произведены разработка обобщенной схемы модуля, выбор СБИС описание её структуры, выбор адресного пространства, разработка структуры сопряжения с внешними сигналами, выбор элементной базы. Рассмотрены связь микроконтроллера с системной шиной, программирование и работа PIC16F84, интерфейс дисплея.