
4. Расчет нагрузочной способности шин
Информация, которую выдаёт микропроцессор на ШД и ША может предназначаться нескольким различным устройствам, подключённым к этим шинам. Однако выходы микропроцессора допускают потребление небольшого тока, подключённого к нагрузкам. Значение тока при высоком напряжении на выходе: |I1вых| не более 0.1 мкА, а при низком напряжении на выходе: |I0вых| не более 1.6 мкА. Это соответствует возможности подключения к микропроцессору не более одного входа ТТЛ микросхемы.
В курсовом проекте мы не будем рассчитывать количество микросхем, которые можно напрямую подключить к ШД и ША микропроцессора, а включим буферный усилитель (шинный формирователь), который заведомо обеспечивает нагрузочную способность ШД и ША микропроцессора.
Шинный формирователь реализован на микросхеме К580ВА86. Условное графическое обозначение микросхемы К580ВА86 представлено на рис.4.1.
Рис. 4.1 Условное графическое обозначение микросхемы К580ВА86
Назначение выводов: 1,2,3,4,5,6,7,8-вход/выход А; 9-вход разрешения выхода ОЕ; 11-вход направления передачи; 12,13,14,15,16,17,18,19-вход/выход В.
5. Разработка принципиальной схемы
Принципиальная схема микроконтроллера приведена на рисунках 5.1 и 5.2; 2.2 и 2.4 и состоит соответственно из следующих частей:
Подсистема центрального процессора, в которую входят следующие элементы: микропроцессор, тактовый генератор, шинные формирователи, системный контроллер и дешифратор адреса.
Подсистема памяти, включающая в себя ПЗУ и ОЗУ (рисунки 2.2 и 2.4)
Интерфейс, включающий в себя канал последовательного ввода-вывода, модуль параллельного ввода-вывода и контроллер прерываний.
В принципиальной схеме приняты следующие обозначения:
DD1 - К580ГФ24 Тактовый генератор
DD2 - К580ВМ80А Микропроцессор
DD3- К155ИР13 Регистр
DD4.1-DD4.2 - К580ВА86 Шинный формирователь
DD5 – К555ИД3 – Дешифратор адреса
DD6.1-DD6.2 - К556РТ4 ПЗУ
DD7.1-DD7.8 – К565РУ2 ОЗУ
DD8 – К580ВВ51 Канал последовательного ввода-вывода
DD9 – К580ВВ55 Модуль параллельного ввода-вывода
DD10 – К580ВН59 Программируемый контроллер прерываний
DD11 – RS232C Интерфейс, физическая линия типа стык С2
DD12 - К580ВИ53 Программируемый интервальный таймер
DD13.1-DD13.2- К155ЛН1 Инвертор
DD14.1-DD14.3 - К155ЛА8 И-НЕ
6. Программы настройки периферийных бис
Для настройки портов, необходимо задать режимы их работы, а также указать вершину стека. В программе необходимо использовать управляющие слова (УС), составленные по условию задания.
Программа начальной инициализации устройств ввода/вывода:
Инициализация вершины стека:
0000 LXI SP,5001
0001
0002
Инициализация ВВ55 (Параллельный интерфейс):
0003 MVI A, С2; Запись УС в аккумулятор
0004
0005 STA 4003: Запись УС в порт 55 из микропроцессора (А)
0006
0007
Инициализация ВВ51 (Последовательный интерфейс):
0008 MVI A,11: Запись УС в аккумулятор
0009
000A STA 3001: Запись УС в порт 51 из микропроцессора
000B
000C
Инициализация ВН59 (Контроллер прерываний):
000D MVI 16; Управляющее слово IRQ0
000E
000F STA 5001;
0010
0011
0012 MVI 00; Старший байт адреса
0013
0014 STA 5001;
0015
0016
Инициализация ВИ53 (Интервальный таймер)
Настройка первого счётчика
0017 MVI A, 36; Запись УС в аккумулятор (А)
0018
0019STA 2003; Запись УС в регистр управляющего слова (РУС) из МК
001A
001B
001C MVI A, CA; Загрузка в “А” младшего байта коэффициента пересчёта N
001D
001E STA 2000; Запись младшего байта в счётчик 0
001F
0020
0021 MVI A, 01; Загрузка в “А” старшего байта коэффициента пересчёта N
0022
0023 STA 2000; Запись старшего байта в счётчик 0
0024
0025
0026 RET; Выход из подпрограммы
Настройка второго счётчика( СТ1)
0027 MVI A, 70; Запись УС в аккумулятор (А)
0028
0029 STA 2003; Запись УС в регистр управляющего слова (РУС) из МК
002A
002B
002C MVI A, CA; Загрузка в “А” младшего байта коэффициента пересчёта N
002D
002E STA 2001; Запись младшего байта в счётчик 1
002F
0030
0031 MVI A, 01; Загрузка в “А” старшего байта коэффициента пересчёта N
0032
0033 STA 2001; Запись старшего байта в счётчик 1
0034
0035
0036 RET; Выход из подпрограммы
Настройка третьего счётчика (СТ2)
0037 MVI A, BА; Запись УС в аккумулятор (А)
0038
0039 STA 2003; Запись УС в регистр управляющего слова (РУС) из МК
003A
003B
003C MVI A, CA; Загрузка в “А” младшего байта коэффициента пересчёта N
003D
003E STA 2002; Запись младшего байта в счётчик 2
003F
0040
0041 MVI A, 01; Загрузка в “А” старшего байта коэффициента пересчёта N
0042
0043 STA 2002; Запись старшего байта в счётчик 2
0044
0045
0046 RET; Выход из подпрограммы
Примечания:
Формирование УС для параллельного порта производим в соответствии с заданием:
Режим работы канала А: режим 1;
Направление передачи данных через канал А: вывод ;
Режим работы канала В: режим 0;
Направление передачи данных через канал В: ввод;
Оптронная развязка в канале С – не используется;
Направление передачи данных через канал C: нет;
УС имеет восемь разрядов: D0 – D7.
- Разряд D7 определяет либо установку режимов работы каналов (D7=1), либо работу порта в режиме сброса/установки отдельных разрядов канала С (D7=0).
- Разряды D6, D5 определяют режим работы канала А:
-
№ реж.
D5
D6
Режим 0
0
0
Режим 1
0
1
Режим 2
1
0
- Разряд D4 определяет направление передачи данных через канал А:
D4=0 – вывод;
D4=1 – ввод.
- Разряд D3 определяет направление передачи в канале С в режиме 0:
D3=0 – вывод;
D3=1 – ввод.
- Разряд D2 определяет режим работы канала В:
D2=0 – режим 0;
D2=1 – режим 1.
- Разряд D1 определяет направление передачи данных через канал В:
D1=0 – вывод;
D1=1 – ввод.
- Разряд D0 определяет направление передачи данных через канал C в режиме 0:
D1=0 – вывод;
D1=1 – ввод.
Так как канал С для передачи данных не используется то D3=0, D0=0.
Тогда в соответствии с исходными данными управляющее слово имеет следующий вид:
-
D7
D6
D5
D4
D3
D2
D1
D0
1
1
0
0
0
0
1
0
Или С2 в шестнадцатеричной системе.
2. Формирование УС для последовательного порта производим в соответствии с заданием:
Режим работы синхронный;
Количество битов данных: 5;
Коэффициент деления частоты синхронизации: нет;
Количество стоповых битов: нет.
Режим контроля: по нечетности.
УС имеет восемь разрядов: D0 – D7.
- Разряды D7, D6 определяют число передаваемых стоп-битов.
-
Запрет
1
1,5
2
0
0
1
1
0
1
0
1
- Разряды D5, D4 определяют режим контроля:
-
1
0
Х
D5
1
1
0
D4
Четность
Нечетность
Нет
контроля
- Разряды D3, D2 определяют число битов данных:
0 |
1 |
0 |
1 |
D2 |
|
0 |
0 |
1 |
1 |
D3 |
|
5 |
6 |
7 |
8 |
|
- Разряды D1, D0 определяют три разновидности асинхронного режима по частоте сигналов синхронизации ( с частотой сигналов синхронизации 1/16 и 1/64 частоты синхронизации):
1 |
0 |
1 |
D0 |
|
0 |
1 |
1 |
D1 |
|
1/1 |
1/16 |
1/64 |
|
Тогда в соответствии с исходными данными управляющее слово имеет следующий вид:
-
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
0
0
0
1
Или 11 в шестнадцатеричной системе.
3. Формирование УС для программируемого контроллера прерываний производим в соответствии с заданием:
Режим работы: по опросу;
Расстояние между адресами соседних векторов прерывания: 8 адресов;
Для инициализации программируемого контроллера прерываний последовательно вводятся команды ICW1 и ICW2. Формат команды ICW1:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
A7 |
A6 |
A5 |
1 |
0 |
F |
S |
0 |
Разряд S этой команды определяет наличие одного или нескольких программируемых контроллеров прерываний в системе, а разряд F (формат) – адресный интервал в 4 или 8 байт между начальными адресами подпрограмм обслуживания прерываний. Разряды А7 – А5 команды ICW1 используются для формирования младшего байта адресов подпрограмм обслуживания прерываний.
Получаем:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
Или 16 в шестнадцатеричной системе.
4. Формирование управляющих слов для интервального таймера( для настройки каждого счетчика) производим в соответствии с заданием:
Режим работы канала 0: 3;
1: 0;
2: 5;
УС имеет восемь разрядов: D0 – D7.
- Разряды D7, D6 определяют номер счетчика.
-
D7
D6
0
0
Cч. 0
0
1
Сч. 1
1
0
Сч. 2
1
1
Запрет
- Разряды D5, D4 задают последовательность записи и считывания содержимого счетчика:
-
D5
D4
0
0
Фиксация счетчика
0
1
Только младший байт
1
0
Только старший байт
1
1
Оба байта
- Разряды D3, D2, D1 задают режим работы счетчика:
0 |
0 |
0 |
Режим 0 |
0 |
0 |
1 |
Режим 1 |
0 |
1 |
0 |
Режим 2 |
0 |
1 |
1 |
Режим 3 |
1 |
0 |
0 |
Режим 4 |
1 |
0 |
1 |
Режим 5 |
1 |
1 |
0 |
Режим 2 |
1 |
1 |
1 |
Режим 3 |
- Разряд D0 определяет вид используемого кода: D0=0 – двоичный, D0=1 – двоично-десятичный;
Мы программируем три счетчика. Так как синхронизация приемника (последовательный порт) производится от интервального таймера (канал 2) , а скорость передатчика 1200 бод, то коэффициент пересчета N (программируемый таймер генерирует периодический сигнал с частотой, в N раз меньшей частоты тактовых импульсов CLK).
Так как частота кварцевого резонатора 10 МГц, то сигнал CLK имеет частоту в 9 раз меньше, то есть 1,1 МГц. Тогда N=CLK/1200; N=926 или 39Е в шестнадцатеричной системе (загружаются оба байта в УС). Остальные каналы запрограммируем тоже для N=1666. С учетом вышесказанного формируем управляющие слова:
Канал 0:
-
D7
D6
D5
D4
D3
D2
D1
D0
0
0
1
1
0
1
1
0
Или 36 в шестнадцатеричной системе.
Канал 1:
-
D7
D6
D5
D4
D3
D2
D1
D0
0
1
1
1
0
0
0
0
Или 70 в шестнадцатеричной системе.
Канал 2:
-
D7
D6
D5
D4
D3
D2
D1
D0
1
0
1
1
1
0
1
0
Или BА в шестнадцатеричной системе.