Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов О.С., Хiхловська I.В. Обчислювальна тех...doc
Скачиваний:
15
Добавлен:
01.09.2019
Размер:
4.12 Mб
Скачать

10.3.6 Програмне вимірювання періоду імпульсної послідовності det

Період імпульсної послідовності Тпер вимірюється підрахуванням кількості відомих малих інтервалів часу Δt, які накопичуються за один період імпульсної послідовності. Імпульсна послідовність показана на рис. 10.1. Частота імпульсів повинна знаходитись у межах 5 Гц — 167 кГц. Підпрограма DET кожні Δt = 3 мкс опитує порт, на молодший розряд якого надходить послідовність імпульсів. Фіксується фронт імпульсу, після чого у лічильнику СХ накопичується кількість дискретних інтервалів часу ТІ, протягом яких у порт надходить високий рівень напруги, а у лічильнику ВХ накопичується кількість інтервалів часу ТП, протягом яких зберігається низький рівень напруги. Числа ТІ та ТП запам’ятовуються відповідно за адресами 20Н та 22Н у сегменті даних, а кількість інтервалів часу за період Тпер = ТІ + ТП запам’ятовується у комірці пам’яті за адресою 24Н у сегменті даних.

В основній програмі після повернення з підпрограми DET можна підрахувати тривалість імпульсу ti, тривалість паузи tn та період Тпер у секундах

ti = Δt(ТІ) = 3 мкс (ТІ);

tn = Δt(ТП) = 3 мкс (ТП);

Тпер = Δt(ТІ + ТП) = 3 мкс (ТІ + ТП).

Фрагмент програми DET наведено нижче:

MOV DX, PORT ; Завантаження до DX адреси порту

DET: IN AL, DX ; Фіксація

AND AL, 01H ; фронту

JNZ DET ; імпульсу

М1: IN AL, DX

AND AL, 01H

JNZ M1

MOV CX, 00H ; Скидання лічильника часу (ТІ) імпульса

М2: INС СX ; Вимірювання ТІ

IN AL, DX

AND AL, 01H

JNZ M2

MOV [20H], CX ; Занесення ТІ у пам’ять

MOV ВX, 00H ; Скидання лічильника часу (ТП) паузи

М3: INС ВX ; Вимірювання ТП

IN AL, DX

AND AL, 01H

JNZ M3

MOV [22H], ВX ; Занесення ТП у пам’ять

ADD BX, CX ; Визначення періоду послідовності

; імпульсів (Тпер)

MOV [24H], ВX ; Занесення Тпер у пам’ять

RET ; Повернення з підпрограми

10.3.7 Програмна реалізація мультиплексора

Реалізувати програмно мультиплексор з вісім’ю інформаційними входами; залежно від коду на адресних входах один з входів підмикається до виходу; сигнал синхронізації має нульове активне значення. Нижче наведено фрагмент підпрограми, яка моделює такий мультиплексор.

MOV AH, 04H ; Завантаження керувального слова у регістр АН

MOV BH, 63H ; Завантаження байта даних

CALL PMS ; Звернення до підпрограми, яка реалізує

; мультиплексор

— — — — — — — — — — — — — —

PMS: MOV AL, AH ; Запам’ятовування керувального слова у AL

TEST AL, 10H ; Дозвіл на підключення біта даних до виходу є?

JNZ PP2 ; Ні, перехід на встановлення дозволу

ОR AL, AL ; Так, адреса є нульова?

JNZ М2 ; Ні, перехід на оброблення адреси

RCR BH, 1H ; Так, запам’ятовування молодшого біта даних

; у CF

RCL AL, 1H ; Перенесення молодшого біта даних у нульовий

; розряд AL

JMP EXIT ; Перехід на повернення з підпрограми

М2: RCR AL, 1H ; Оброблення вказаної

AND AL, 07H ; адреси

MOV ВL, AL ; Запам’ятовування адреси у лічильнику адрес

RCR BH, 1H ; Виключення з розряду нульового біта даних

РР1: RCR BH, 1H ; Заміщення CF бітами даних, починаючи

; з першого у циклі

DEC BL ; Зменшення адреси до нуля

JNZ PP1 ; у циклі

RCL AL, 1H ; Внесення адресованого біта даних

; у молодший розряд AL

М3: MOV AH, AL ; Повернення керувального слова з адресованим

; бітом даних у АН

JMP EXIT ; Безумовний перехід на повернення

; з підпрограми

РР2: AND AH, EFH ; Встановлення дозволу на підключення біта

; даних до виходу при збереженні

; керувального слова

EXIT: RET

Вісім інформаційних входів мультиплексора моделюються регістром АН. У нульовому розряді регістра АL будемо отримувати результат — прямий вихід мультиплексора. У розряди 1, 2, 3 регістра АL заноситься код адреси біта даних, а розряд 4 моделює вхід дозволу. Код адреси зменшується у циклі при одночасній фіксації у ознаці CF значення біта даних в обраному розряді.

Контрольні запитання:

  1. Які рекомендації міжнародних організацій регламентують створення моделей вузлів телекомунікацій?

  2. Яка підпрограма використовується для формування будь-яких часових послідовностей?

  3. З якою метою програмно ініціалізується асинхронний адаптер RS-232-C?

  4. Як програмно перевірити наявність даних у лінії при введені їх через СОМ-порт комп’ютера?

  5. Як здійснити передавання даних через СОМ-порт комп’ютера?

  6. Як за допомогою табличного метода програмно реалізувати генератор імпульсних послідовностей?

  7. Як, використовуючи комп’ютер або МПС, здійснити вимірювання періоду імпульсної послідовності?