| Состояние шины адреса | Адресуемый порт | Адрес порта HEX | |||||||
| A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | ||
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Порт A | 40 |
| 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | Порт B | 42 |
| 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | Порт C | 44 |
| 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | РУС | 46 |
Таблица 5. Распределение адресов портов ввода-вывода
Как видно из составленной таблицы, порты ввода-вывода и регистр управляющего слова, которые входят в состав ППИ занимают 4 адреса в диапазоне 40Н...46Н. Поскольку в МП системе могут присутствовать УВВ с другими адресами, то для безошибочной работы нужных портов необходимо формировать сигналы их выбора. Эту функцию выполняет дешифратор адреса ППИ (ДШ ППИ), который формирует сигнал CS с уровнем логического 0, активизирующий БИС ППИ, только при установке на шине адресов, отведенных для данного устройства. Составим таблицу 6 истинности для дешифратора адреса ППИ.
| Входные сигналы | CS Выходной сигнал | ||||||
| A7 | A6 | A5 | A4 | A3 | A2 | A1 | |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
| все остальные комбинации | 1 | ||||||
Таблица 6. Таблица работы дешифратора адреса ППИ
Запишем логическое выражение для выходного сигнала, с учетом того, что входные сигналы A2,A1 являются фиктивными.
и перейдя в базис ИЛИ-НЕ, получим
Дешифратор адреса ППИ будет иметь вид как на рисунке 11.
3.4. Составление полной функциональной схемы формирователя на основе МП.
Все разработанные выше аппаратные части и выбранные устройства формирователя объединим в единую функциональную схему МП системы. На ней покажем в виде элементов принципиальной схемы ЦП К1810ВМ86, ППИ К580ВВ55, синтезированный ДШ ППИ и ЦАП. Остальные узлы схемы покажем в виде функциональных элементов. Данная схема изображена в приложении 2.
3.5. Разработка детального алгоритма работы микропроцессорной системы.
При разработке детального алгоритма (рис.12.) используется обобщенный алгоритм, показанный на рис.9. и исходные данные. При этом считаем, что массив кодов в ОЗУ (таблица 4) уже сформирован, следовательно, блок 1 обобщенного алгоритма в детальный алгоритм включать не будем.
Поскольку МП использует сегментацию памяти, адреса ячеек определяем в виде: PA=Seg : EA,
где PA – двадцатибитовый полный (физический) адрес ячейки;
Seg – шестнадцатибитовый адрес сегмента (база, сегмент);
EA – шестнадцатибитовый адрес ячейки внутри сегмента (смещение).
Таким образом, для адресов (таблица 4), получим таблицу 7:
| Таблица 7. Адреса ячеек ОЗУ |
| PA | Seg | EA |
| 00280 | 0028 | 0000 |
| 00282 | 0028 | 0002 |
| 00284 | 0028 | 0004 |
| 00286 | 0028 | 0006 |
| 00288 | 0028 | 0008 |
| 0028A | 0028 | 000A |
| 0028C | 0028 | 000C |
| 0028E | 0028 | 000E |
| 00290 | 0028 | 0010 |
| 00292 | 0028 | 0012 |
| 00294 | 0028 | 0014 |
| 00296 | 0028 | 0016 |
| 00298 | 0028 | 0018 |
| 0029A | 0028 | 001A |
| 0029C | 0028 | 001C |
| 0029E | 0028 | 001E |
| 002A0 | 0028 | 0020 |
| 002A2 | 0028 | 0022 |
| 002A4 | 0028 | 0024 |
| 002A6 | 0028 | 0026 |
| 002A8 | 0028 | 0028 |
3.6. Разработка алгоритма подпрограммы задержки.
Для разработки алгоритма ПП задержки найдем число тактов задержки NЗ:
NЗ= NC-NФ,
где NФ – число тактов между двумя соседними выводами кода ЦАП в порт без учета подпрограммы.
NЗ=10000-118=9882
ПП задержки реализуется путем включения в алгоритм подпрограммы холостых (пустых) команд NOP. Каждая команда NOP выполняется за 3 такта частота CLK. Последовательно можно включать любое количество холостых команд, но для экономии памяти и компактности целесообразно выполнять эти команды в цикле. Регистр МП СН используется как счетчик циклов и в него загружается число R, равное числу повторений цикла задержки. Поскольку СН восьмиразрядный регистр, то загружаемое в него число не должно быть больше 255(10).
Найдем число повторений цикла задержки из соотношения:
где n – количество последовательно включенных команд NOP в блоке 24.
Для того чтобы R было не больше 255, выберем n=10, тогда R= 247(10)=F7h
3.7. Разработка программы работы микропроцессорной системы.
Текст программы представлен ниже:
| ; программа работы формирователя сигналов варианта 512 | |
| ; упр. слово для настройки УВВ 90H | |
| ; адрес текущего сегмента 0028H , адрес начального смещения 0000H | |
| MOV AL, 90H | ;загрузить в AL управляющее слово |
| OUT AL, 46H | ;вывести управляющее слово в порт 46H |
| MOV AX, 0028H | ;адрес текущего сегмента данных |
| MOV DS, AX | ;загрузить в сегментный регистр DS |
| Label1: MOV CL, 0BH | ;загрузить в CL число циклов формирования |
| MOV BX,0000H | ;загрузить начальное смещение в регистр BX |
| Label2: CALL SUBR | ;вызвать подпрограмму задержки SUBR |
| MOV AL,[BX] | ;выбрать код M(i) из памяти |
| OUT AL,44H | ;вывести код M(i) в порт 44H |
| ADD BX,0002H | ;увеличить смещение на 2 |
| MOV AL,[BX] | ;выбрать код Y(i) из памяти |
| OUT AL,42H | ;вывести код Y(i) в порт 42H |
| ADD BX,0002H | ;увеличить смещение на 2 |
| Label3: IN AL,40H | ;ввести X2,X1 из порта 40H |
| RCR AL,1 | ;сдвинуть циклически на один разряд вправо |
| JC Label3 | ;перейти к метке Label3, если FC=1 (X2=1) |
| RCRAL,1 | ;сдвинуть циклически на один разряд вправо |
| JNC Label4 | ;перейти к метке Label4, если FC=0 (X2=0) |
| JMP Label1 | ;перейти к метке Label1 |
| Label4: DEC CL | ;уменьшить содержимое счетчика CL на 1 |
| JZ Label1 | ;перейти на метку Label1, если ZF=1 ((CL)=0) |
| JMP Label2 | ;перейти на метку Label2 |
| ; подпрограмма временной задержки | |
| SUBR: MOV CH, F7H | ;загрузить в CН число циклов задержки R=F7H |
| Label5: NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| NOP | ;холостая команда |
| DEC CH | ;уменьшить содержимое счетчика CН на 1 |
| JNZ Label5 | ;перейти на метку Label5, если CН не пуст (ZF=0) |
| RET | ;возврат из подпрограммы |
1. Методические указания к курсовой работе по дисциплине «ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА». – Самара 2000.
2. Цифровая и вычислительная техника: Учебник для вузов/ Э.В. Евреинов, Ю.Т. Бутыльский, И.А. Мамзелев и др.; под ред. Э.В. Евреинова. – М.: Радио и связь, 1991.
3. Шило В.Л. Популярные цифровые микросхемы: справочник. – М.: Металлургия, 1987.