 
        
        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А в шестнадцатеричной системе.
