Смекни!
smekni.com

Разработка формирователя сигналов на однокристальном микропроцессоре (стр. 5 из 5)

Состояние шины адреса

Адресуемый порт

Адрес порта 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.