рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Література

Література - раздел Электроника, Протокол RS-232C     А.в. Гордеев, А.ю. Молчанов. Системное Програ...

 

 

А.В. Гордеев, А.Ю. Молчанов. Системное программное обеспечение. – СПб.: Питер, 2001.

 

Гук М. Аппаратные средства IBM PC. Энциклопедия, 2-е изд.– СПб.: Питер, 2001

 

Фаронов В.В. Турбо Паскаль 7.0. Учебное пособие. Издание 7-е, переработанное. –М.: «Нолидж», 2000

 

Юров В. Ю78 Assembler: специальный справочник – СПб: Питер, 2001

 

DOS варіант програми.

 

{$N+}

uses crt, dos;

const

ratebuf: array[1..10] of word = { масив дільників швидкостей }

(1047,192,96,48,24,12,6,3,2,1); {передавання}

var

com1, com2:word; { адреси портів СОМ1 та СОМ2}

t1, t2, freq: comp; { змінні для визначення часу }

inbuf: array[1..128] of byte; { буфер для отриманих байтів }

ff: TEXT;

 

{--------- процедура иніціалізаціїї портів ----------------}

 

procedure InitCom(com:word);

begin

port[com+3]:=$03; { встановлення кількості бітів даних та стоп бітів}

port[com+1]:=$01; { встановлення переривання по прйому символа}

port[com+4]:=$1F; {встановлення діагностичного режиму}

end;

 

{-------- процедура встановлення швидкості обміну ----------}

 

procedure SetRate(rate: word; com: word);

 

var

rr: byte;

begin

port[com+1]:=port[com+1] or $80;

port[com]:=Lo(rate); { запис молодшої частини дільника}

port[com+1]:=Hi(rate); { запис старшої частини дільника }

port[com+1]:=port[com+1] and $7F;

rr:=port[com];

rr:=port[com];

end;

 

{-------- процедура виведення індикатора процесу перевірки ----------------------}

 

procedure indicate(i: byte);

var

c: byte;

begin

gotoxy(20, WhereY); {переміщення курсору}

if odd(i) then write('/')

else write('');

end;

 

{--------- процедура зчитування поточного такту процесора ---}

 

function Timer:comp ; assembler;

asm

dw $310F {Clock to edx:eax}

mov bx, sp

db $66 ; push dx

db $66 ; push ax

db $36, $DF, $6F, $F8 {fild qword ptr ss:[bx-8]}

add sp, 8

end;

 

{------------ процедура передачі/прийому байта -------------------------------------}

 

procedure PortRT(com: word);

var

i,j, err,er: byte;

s: string;

tt1, tt2, tt:comp;

begin

err:=0; {кількість загальних помилок}

for i:=1 to 10 do

begin

indicate(i); {виведення індікатора процесу}

er:=0;

SetRate(ratebuf[i], com); {встановлення швидкості}

str(115200 div ratebuf[i], s);

writeln(ff,'rate: ', s);

tt1 := Timer; {запис кількості тактів процесора}

for j:=0 to 127 do

begin

repeat until (port[com+5] and $20) <> 0;

port[com]:=j; {передача байту}

repeat until (port[com+5] and $01) <> 0;

inbuf[j+1]:=port[com]; {прийом байту}

end;

tt2 := Timer; {запис кількості тактів процесора}

tt:= tt2-tt1; {визначення часу передачі}

write(ff,'Sent: ');

for j:=0 to 127 do

write(ff,chr(j));

writeln(ff);

write(ff,'Received: ');

for j:=1 to 128 do

begin

if(j-1) <> inbuf[j] then {порівняння прийнятої}

begin {та переданої}

inc(err); {послідовності байтів}

inc(er);

end;

write(ff,chr(inbuf[j])); {запис в файл}

end;

if er = 0 then writeln(ff,' OK')

else writeln(ff,' ',er,' errors');

writeln(ff,' time of transmition: ', tt/freq,' sec');

end;

if err=0 then writeln(' OK')

else writeln(' ',err,' errors');

end;

 

 

begin

clrscr;

 

t1 := Timer; {визначення}

Delay(1000); {тактової частоти}

t2 := Timer; { процесора}

freq := t2-t1;

 

com1:=memw[$40:$00]; {визначення адрес портів}

com2:=memw[$40:$02]; {СОМ1 та СОМ2}

 

if(com1=$03F8) then

writeln('COM1 presents');

if(com2=$02F8) then

writeln('COM2 presents');

 

assign(ff, 'result.txt'); {відкриття/створення }

rewrite(ff); {файлу для запису результатів}

writeln(ff,'COM1');

 

write('checking COM1...');

InitCom(com1); {перевірка}

PortRT(com1); {порту}

writeln(ff); {СОМ1}

writeln(ff);

gotoxy(wherex-1,wherey);

writeln(' ');

 

writeln(ff,'COM2');

write('checking COM2...'); {перевірка}

InitCom(com2); {порту}

PortRT(com2); {СОМ2}

gotoxy(wherex-1,wherey);

writeln(' ');

 

close(ff);

writeln('Process complit... (see result.txt)');

 

readln;

end.

 

– Конец работы –

Эта тема принадлежит разделу:

Протокол RS-232C

Сучасні засоби тестування ПК утіліта CheckIt... Загальні Відомості Після запуску... Під час тестування на екран виводиться індикатор стану перевірки та приблизний час що залишився до закінчення...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Література

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Протокол RS-232C.
  Послідовний інтерфейс для передачі даних в одному напрямку використовує одну сигнальну лінію, по якій інформаційні біти передаються друг за другом — послідовно. Англійські назви інт

Управління потоком даних.
  Для керування потоком даних (Flow Control) можуть використовуватися два варіанти протоколу — апаратний і програмний. Іноді керування потоком плутають із квітуванням. Квітування

Системна підтримка СОМ-портів.
  СОМ-порти підтримуються сервісом BIOS Int 14h, що забезпечує описані нижче функції. · OOh — ініціалізація (установка швидкості обміну і формату посилок, задан

Конфігурування СОМ-портів.
Комп'ютер може мати до чотирьох послідовних портів СОМ1-З0М4, для машин класу AT типова наявність двох портів. Керування послідовним портом розділяється на два етапи — попереднє конфигурування (Set

Загальні Відомості.
    Після запуску програми CheckIt 7.0 користовачеві пропонується вставити дискету в флопі-дисковод для того, щоб створити образ загрузочної дискети. Усі тести ця утіліт

Тестування СОМ-портів.
  Тестування СОМ портів в утиліті CheckIt можна провести за допомогою розділу “Serial ports” тестів. В цьому розділі представлено СОМ порти, які були знайдені в системі .

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги