Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_Вычисл техн и микропроц_2 автора_130709.doc
Скачиваний:
9
Добавлен:
07.05.2019
Размер:
5.26 Mб
Скачать

10.3.2 Фрагмент програми передавання даних через асинхронний адаптер rs-232-c

M1: MOV DX,3FDH ; Завантаження адреси регістра стану лінії

IN AL,DX ; Введення слова стану лінії

AND AL,20H ; Регістр зберігання даних є

JZ M1 ; порожній, D5 = 1?

MOV AL,41H ; Так, завантаження даного в AL

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

OUT DX,AL ; Виведення даних

NOP

10.3.3 Фрагмент програми приймання даних через асинхронний адаптер rs-232-c

MOV DX,3FDH ; Завантаження адреси порту стану лінії

M2: IN AL,DX ; Введення слова стану лінії

AND AL,01H ; Перевірка наявності даних в лінії (D0 = 1?)

JZ M2 ; у циклі

MOV DX,3F8H ; Завантаження адреси порту приймання даних 3F8H

; у DX

M5: IN AL,DX ; Введення даних

NOP

10.3.4 Приклад програми ініціалізації rs-232-c та введення-виведення даних, написаної у програмному середовищі turbo assembler (tasm)

; Програма ініціалізації послідовного адаптера та введення-виведення

; даних TITLE RS232.ASM

MODEL SMALL

STACK 256

DATA SEGMENT

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA ; Суміщення

MOV DS,AX ; сегментів

MOV ES,AX ; даних

MOV DX,3FBH ; Завдання

MOV AL,80H ;

OUT DX,AL ; подільника

MOV DX,3F8H ;

MOV AL,60H ;

OUT DX,AL ; частоти

MOV DX,3F9H ;

MOV AL,00H ; генератора

OUT DX,AL ;

; Завдання нового режиму адаптера

CONTR: MOV AL,1EН ; Завантаження

MOV DX,3FBH ; керувального

OUT DX,AL ; слова (1ЕН)

INTER: MOV AL,00H ; Заборона

MOV DX,3F9H ; переривань

OUT DX,AL ; від RS-232-C

; Передавання даних

STATUS: MOV DX,3FDH ; Перевірка

IN AL,DX ; стану

AND AL,20H ; буфера передавання

JZ STATUS ; у циклі

SEND: MOV AL,41H ; Передавання

MOV DX,3F8H ; даного

OUT DX,AL ; 41H

; Приймання даних

MOV DX,3FDH ; Перевірка

READY: IN AL,DX ; наявності

AND AL,01H ; даних у лінії

JZ READY ; у циклі

MOV DX,3F8H ; Приймання

IN AL,DX ; даного

JMP STATUS ; Циклування програми

NOP

EXIT: MOV AH,4CH ; Вихід

INT 21H ; з програми

CODE ENDS

END

Циклування програми командою JMP STATUS здійснюється з метою забезпечення перегляду часових діаграм за допомогою осцилографа на перемкнутих контактах 2 та 3 з’єднувача DB9P COM1. Часові діаграми для наведеного прикладу будуть співпадати з наведеними на рис. 6.2.

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

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

  2. З якою метою адреси портів послідовного асинхронного адаптера завантажуються у регістр DX?

  3. З якою метою у фрагменті програми у п. 10.3.2 виконується команда AND AL,20H?

  4. За якої умови у фрагменті програми у п. 10.3.3 після команди JZ M2 буде виконуватись команда MOV DX,3F8H?

  5. Як розподіляється пам’ять по сегментах після виконання директиви MODEL SMALL?

Контрольні питання підвищеної складності:

  1. Як у програмі, написаній у середовищі TASM, завантажуються регістри CS, DS, SS, ES?

  2. З якою метою у цій програмі використовується фрагмент:

MOV AH,4CH

INT 21H

  1. Яку адресу має у таблиці переривань комірка, в якій зберігається адреса підпрограми оброблення INT 21H?