Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 93

Программа формирования прямоугольного напряжения со скважностью импульса, не равной 2:

VOLT:            MVI    A,81H             ;Программирование ППА                                        7

OUT    0FBH              ;На вывод через порт В                                            10

MVI    А,0                  ;3агрузка в А уровня а = 0                                        7

Ml:               OUT    0F9H               ;Вывод в порт уровня а                                            10

ADI     00                    ;Пустая команда                                                       7

JNZ     МЗ                  ;Проверка а ¹ 0                                                          10

MVI    С,К                  ;3агрузка в С числа К                                               7

М2:              DCR    С                     ;Декремент С                                                            5

JNZ     M2                  ;Организация внутреннего цикла                           10

СМА                           ;3агрузка в А нового уровня а                                 4

JMP     Ml                   ;Организация  внешнего цикла                               10

МЗ:              MVI    C,L                  ;3агрузка в С числа L                                               7

JMP     М2                  ;Переход к М2                                                           10

(справа приведено число тактов, за которое выполняется каждая команда).

Длительности импульса и паузы при fт = 2 МГц соответственно:

tИ = (1/fт)(10 + 7 + 10 + 7 + 10 + (5 + 10)L + 4 + 10) = 19 + 7,5L (мкс),

tп = (1/fт)(10 + 7 + 10 + 7 + 10 + (5 + 10)K + 4 + 10) = 29 + 7,5L (мкс)

откуда

где tи и tп —в микросекундах; f - в килогерцах.

Для получения f = 1 кГц при q = T/tИ = 1,67 необходимо иметь К = 50 = 32(16), L = 76 = 4C(16).

P8.11. Клавиатуру из восьми клавиш подключим к порту С (адрес FA) ППА (адрес регистра управляющего слова ППА FB), динамик — к младшему разряду порта В (адрес F9). Будем считать, что нажатие клавиши соответствует 1, отжатие 0. Особенностью задачи является то, что входная информация подается в виде унитарного кода. Поэтому в алгоритме и программе необходимо предусмотреть преобразование унитарного кода в двоичный 4-2-1 (см. задачу 8.5). Программа синтезатора звука представлена ниже. Число тактов во внешнем цикле при формировании 1-го сигнала

N = 65 + 29l+15K1 , откуда при тактовой частоте МП 2 МГц получаем

где fl  - в килогерцах и [х] обозначает ближайшее к х целое число.

Рассчитанные по последней формуле значения К, приведены в табл. Р8.1.

Таблица Р.8.1.

l

0

1

2

3

4

5

6

7

Kl

252

221

194

184

158

138

119

110

Kl(16)

FC

DD

C2

B5

9E

8A

77

6E

Программа синтезатора  звуков:

SOUND:         MVI    А,81Н             ;Программирование ППА                                        7

OUT    0FBH              ;(режим 0, порт С —ввод, порт В — вывод)          10

LXI      В,00                ;Обнуление регистров В, С                                      10

MOV   D,B                  ;Обнуление регистра D                                            5

INP:              LXI      H, ODO1H      ;3агрузка в HL начального адреса массива            10

IN        0FAH              ;Ввод числа l в унитарном коде                              10

MOV   С,В                  ;Обнуление регистра С                                            5

ADD    00                    ;Формирование признака Z в А                              7

JZ        INP                  ;Повторный ввод, если                                             10

Ml:               RAR                            ;Сдвиг lунит вправо на один разряд с переносом    4