русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функция 03h


Дата добавления: 2014-11-27; просмотров: 804; Нарушение авторских прав


Производит опрос состояния последовательного порта

*Вход:

АН = 03h

DX = номер стыка (0 - СОМ1, 1- СОМ2 и т. д.)

*Выход:

АН = состояние линии (см. функцию 00h) AL = состояние модема

*Примечание:

Возвращает состояние линии (см. функцию 00h) и состояние модема.

Существуют специальные программы, обеспечива­ющие передачи информации между двумя компьюте­рами по последовательному каналу. Одна из них включена в версию Norton Commander версии 3.0. Для работы с этой командой запустите версию 3.0 Norton Commander, F9 - войдите в меню, на правой или левой панели выберите в меню команду Link. Предварительно необходимо соединить кабелем два PC. Команда Link предлагает выбрать порты (СОМ1 , или COM2 ) и тип данной машины( Master - ведущая машина или Slave - ведомая машина ). Для одной машины выберите Master, а для другой Slave. Можно установить так же ускоренную или обычную скорость передачи. После установок параметров запустить команду Link. Запуск произвести одновременно на обоих PC. Для установления связи требуется 5-10 секунд, если за это время связь не установилась надо попробовать изменить значение портов, например, СОМ1 заменить на COM2 и перезапустить команду.

Пример выполнение работы

Работа выполняется на двух компьютерах, соеди­ненных кабелем, подключенным к стыку 25-штырь-ковыми разъемами. Чаще всего 25-штырьковый разъем подключается к порту COM2, поэтому при составле­нии программы в первую очередь следует использо­вать порты COM2. Работа состоит из двух частей: Для каждого варианта задания составляются две програм­мы работы: для передающей (OUT.ASM ) и для принимающей ( INP.ASM ) машин. Ниже приведен пример программирования СОМ1 для передачи и приема символа. В примере общие процедуры работы со стандартными устройствами ввода/вывода выделе­ны в отдельный файл LIB.ASM. С помощью директи­вы ассемблера INCLUDE <имя файла> LIB.ASM вста­вляется в обе программы, в место, определенное директивой INCLUDE. Эта директива имеет вид INCLUDE <имя файла>, где <имя файла> - имя файла (если необходимо указывается директория), содержащего любые данные, которые директива вставляет в программу при трансляции вместо себя.



;Программа передачи символа через СОМ1

; OUT.ASM

data segment

messi db 13,10, 'Передача символа : "

char db "A" ; передаваемый символ

db "$"

mess2 db 13,10,'Символ передан. Код завершения : $'

coderet db ?

data ends

code segment

assume cs:code,ds:data

start: mov ax,data; Инициализация регистра

mov ds,ax ; сегмента данных DS

call initrs232 ; инициализация интерфейса RS-232

mov dx,offset soob1 ; Вывод сообщения

call print_text ; на экран

; Передача символа

mov ah,l ; Номер функции 1

mov al,char ; Передаваемый символ Char

mov dx,0 ; Номер используемого интер­фейса COM1

int 14h ; Передача символа по сети

mov coderet, ah ; Сохраняем код завер­шения прерывания

mov dx,offset mess2 ; Вывод сообщения о завершении

call print_text ; передачи символа по сети

mov al,coderet ; Вывод кода возврата

call print_al ; (Выводимый код вAL)

mov ax,4C00h ; Завершение программы

int 21h ; и выход в DOS

include lib.asm ;Подключение библиотеки процедур

code ends

end start

Файл INP.ASM:

; INP.asm

data segment

mess db 13,10,'Принят символ "

char db ?,'$'

mess1 db 13,10,'Код завершения $'

data ends

code segment

assumecs:code,ds:data,ss:stack

Start:

mov ax, data ; Инициализация регистра

mov ds,ax ; сегмента данных DS

call initrs232 ; Инициализация интерфейса RS-232

;Прием символа mm:

mov ah, 2 ; Функция чтения символа

mov dx, 0 ; Читаем из линии СОМ1

int 14h ; Прием символа

or ah,ah ; Проверяем ошибку

jne mm ; Бесконечный цикл до получения символа

; Получили символ, печатаем его

mov char.al

mov dx, offset mess

call print_text

; Печатаем регистр статуса линии (код возврата)

mov dx,offset mess1

call print_text

xchg al,ah

call print_al

; Завершаем работу, выходим в DOS

mov ax,4C00h

int 21h

include lib.asm

code ends

end Start

; библиотека стандартных процедур

; имя файла на диске - LIB.ASM

initrs232 proc near ; инициализация порта СОМ1

push ds ; сохране-

push cs ;ние

pop ds ;регистров

mov al,l 1111111b ;скорость передачи 9600бод, контроль на четность,

; 2 стоповых бита, длина слова 8 бит

mov ah,Oh ; номер функции

xor dx.dx ; COM1

int 14h ; вызов прерывания

mov dx,offset cs:init ; вывод

call print_text ; сообщения

call print_al ; вывод

xchg al,ah ; сообщений

mov dx,offset cs:statusl ; о

call print_text ; статусе

call print_al ; линии

pop ds

ret

initrs232endp

print_al proc near ; процедура вывода шес­тнадцатиричного числа из AL

push ax ; сох-

xor ah, ah ; раня-

push ds ; ем

push ax ; co-

push bx ; дер-

push cx ; жи-

push dx ; мое

push di ; регистров

push cs ; устанавливаем

pop ds ; ds на cs

mov ex,16;

print_n: ;

mov bx,16 ; основание системы

xor dx,dx ; счисления

div bx ; деление32х16

mov di,dx ; остаток в di

mov b1, byte ptr cs:print_table[di] ; 16-тиричную цифру из таблицы

mov di,cx ; цифру

mov byte ptr cs:print_buf[di],bl ; в буфер вывода

cmp ax,0h ; частное = 0

jle print_nl ; да

loop print_n ; на следующую цифру

print_ nl: ;

mov di,cx ;

mov al, byte ptr cs:print_buf[di]

mov bx,07 ; цвет

mov ah.0Eh

int10h

inc cx

cmp cx,17

jne print_nl

pop di ; восста-

pop dx ; навлива-

pop cx ; ем

pop bx ; co-
pop ax ; дер-

pop ds ; жи-

pop ax ; мое

ret ; регистров

print_al endp

print_text proc near ; вывод на экран сообщений

push ax

mov ah,09H

int 21H

pop ax

ret

print_text endp

print_table db "0123456789ABCDEF"

print_buf db 17 dup (0)

init db 13,10,"Инициализация порта СОМ1"

db 13,10,"Регистр статуса модема $"

statusl db 13,10, "Регистр статуса линии $"

Варианты заданий.

1. Передать, принять и напечатать строку симво­лов произвольной длины ( до100 символов ).

2. Передать, принять и напечатать копию экрана с учетом цвета символов.

3. Организовать пересылку сообщений между ма­шинами ( форма диалога ).

4. Передать из одной машины в другую файл произвольной длины.

5. Передать из одной машины в другую директо­рию и имя файла, хранящегося в принимающей машине, которая выдает сообщение о результатах поиска файла.

6. Передать из одной машины в другую файл произвольной длины, которая по мере приема выво­дит его на экран.

7. Передать из одной машины в другую копию экрана с атрибутами цвета, создать в принимающей машине файл, хранящий копию переданного экрана.

8. Передать системное время, установить в прини­мающей машине новое ситемное время равное пере­данному.

Контрольные вопросы

1. В каких единицах измеряется скорость работы стыка?

2. Какие параметры устанавливаются при инициа­лизации последовательного порта?

3. Какие функции работы с RS-232 предоставляет BIOS?

4. Как осуществить связь по стыку с помощью Norton Commander?

5. Как установить скорость передачи последова­тельного порта 9600 бод?




<== предыдущая лекция | следующая лекция ==>
Функция 00Н | Таймер и генерация звука.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.114 сек.