Реферат Курсовая Конспект
Проэктирование тестирующей программы. - Лекция, раздел Образование, Лекция 9 Тестовая диагностика СOM-Порта Рассмотрим Отдельные Действия Алгоритма В Виде Подпрограмм. 1. По...
|
Рассмотрим отдельные действия алгоритма в виде подпрограмм.
1. Подпрограмма определения наличия адаптера и выбора рабочего.
При включении ПК все системные ресурсы идентифицируются в системной области памяти. Для СОМ-портов это $40:$00 должна содержать слово (16-разрядов) 03F8h – наличие СОМ1; $40:$02 – слово 02F8h – наличие СОМ2.
Procedure COM1_2;
Begin
if (memw[$40:00]=$03F8) then writeln(‘COM1 OK!’)
else writeln(‘COM1 ERROR!’);
if (memw[$40:02]=$02F8) then writeln(‘COM2 OK!’)
else writeln(‘COM2 ERROR!’);
writeln(‘Выберите COM1 -> 1 или COM2 -> 2 ’);
readln(n1);
case:
1: Vd_m:=$03F8;
2: Vd_m:=$02F8;
end;
writeln(‘выбран СОМ-порт’, Vd_m);
End.
2. Подпрограмма установки скорости.
Алгоритм:
1. Открыть делитель скорости;
2. Установить коэффициент деления в делителе (16-розрядном);
3. Выполнить задержку минимум 1мсек;
4. Вывести контрольное сообщение о величине установленной скорости.
5. Закрыть делитель.
Procedure COM1_2;
Begin
port[Vd_m+3]:= port[Vd_m+3] or $80;
{$80=1000 0000h -> единица в старшем бите порта открывает делитель скорости}
portw[Vd_m]:=115200 div (значение скорости); {установка 16- разрядного делителя скорости}
delay(5); {задержка 5мсек}
writeln(‘выставили скорость=’, 115200 div portw[Vd_m]);
port[Vd_m+3]:= port[Vd_m+3] and $7F; {закрытие делителя}
End.
3. Подпрограмма установки длины передаваемого слова
: port[Vd_m+3]:= port[Vd_m+3] and $FC; {FC->1111 1100}
6 : port[Vd_m+3]:= (port[Vd_m+3] and $FC) or $01;
7 : port[Vd_m+3]:= (port[Vd_m+3] and $FC) or $02;
8 : port[Vd_m+3]:= port[Vd_m+3] or $03;
writeln(‘вывод портов’);
4. Подпрограмма установки типа контроля.
1. Для паритета четности установить единицы в 3-м и 4-м битах порта: Vd_m+3=11;
2. Для паритета нечетности в 3-м и 4-м битах порта установить 01 соответственно;
3. Для установки отсутствия контроля в 3-й и 4-й биты заносят нули;
Для проверки значения 3-го и 4-го битов выводят на экран.
5. Установка стоп-битов без аппаратных прерываний и с сигналами модема.
port[Vd_m+3] and $1C – предполагает установку стоп-битов.
port[Vd_m+4] :=$00 – запрет аппаратных прерываний.
port[Vd_m+1] :=$00 – адаптер не выдает аппаратных прерываний.
port[Vd_m+4] or $03 – RTS (сигнал модема), DTR=1.
Контрольные выводы.
6. Программное соединение выхода СОМ-порта со входом.
port[Vd_m+4] or $10 – необходимо установить в единицу 4-й бит регистра модема.
7. Подпрограмма передачи байта.
Procedure Tr_bt;
var
t: Boolean;
begin
t:=false;
{признаком возможности передавать служит установка 5-го бита Vd_m в единицу}
repeat
if(port[Vd_m+5] and $20)<>0 then
begin
t:=true;
port[Vd_m]:=bt; { bt – передаваемый байт}
end;
until t
end
8. Подпрограмма приема байта.
Для приема информации 1-й бит порта устанавливается в единицу. Прием выполняет port[Vd_m+5].
Procedure rest_bt;
var
t: boolean;
begin
t:=false;
repeat
if (port[Vd_m+5] and $01)<>0 then
begin
t:=true;
bt:=port[Vd_m]; {прием байт}
end;
until t;
end.
– Конец работы –
Эта тема принадлежит разделу:
На сайте allrefs.net читайте: Лекция 9.
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Проэктирование тестирующей программы.
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов