Состояние шины адреса | Адресуемый порт | Адрес порта 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.