Рефераты. Кодирующее устройство для кода Файера

Str(Sa[i],Elm);

OutText(Elm);

Stop:=False;

End;{вправо}

'1':Begin

SetColor(7);

MoveTo(x+i*k,y);

Str(Sa[i],Elm);

OutText(Elm);

SetColor(Color);

MoveTo(x+i*k,y);

sa[i]:=1;

F[i]:=Sa[i];

Str(Sa[i],Elm);

OutText(Elm);

Stop:=False;

End;

'2':Begin

SetColor(7);

MoveTo(x+i*k,y);

Str(Sa[i],Elm);

OutText(Elm);

SetColor(Color);

MoveTo(x+i*k,y);

sa[i]:=0;

F[i]:=Sa[i];

Str(Sa[i],Elm);

OutText(Elm);

Stop:=False;

End;

#13:Begin Stop:=True; End;

End;

End;

Until(Stop);

SetTextStyle(0,0,1);

End;

{---------------------------------------}

{Вывод образующей матрицы}

Procedure OutPutObr_Matrix(x,y : Integer;Obr_Matr : Two_Matrix );

Var k,i,j : Integer;

Elm : String;

Begin

k:=12;

For i:=1 to _N Do

Begin

For j:=1 to _N Do

Begin

MoveTo(x+j*k,i*10+y);

Str(Obr_Matr[i,j],Elm);

OutText(Elm);

End;

End;

SetColor(4);

For i:=1 to _N Do

Begin

For j:=_N+1 to _N+_M-1 Do

Begin

MoveTo(x+j*k,i*10+y);

Str(Obr_Matr[i,j],Elm);

OutText(Elm);

End;

End;

End;

{----------------------------------}

{Вывод полученной кодовой комбинации}

Procedure OutPut(x,y : Integer;F,A : Mass1);

Var k,s : Integer;

Elm : String;

Begin

MoveTo(x+10,y-20);

Str(_N+_M-1,Elm);

OutText(Elm);

MoveTo(x+(_N+_M)*12-3,y-20);

Str(0,Elm);

OutText(Elm);

k:=12;

For i:=1 to _N Do Cicle_Kod[i]:=F[i];

s:=1;

For i:=_N+1 To _N+_M-1 Do

Begin

Cicle_Kod[i]:=A[s];

s:=s+1;

End;

For i:=1 to _N Do

Begin

MoveTo(x+i*k,y);

Str(Cicle_Kod[i],Elm);

OutText(Elm);

End;

SetColor(4);

For i:=_N+1 to _N+_M-1 Do

Begin

MoveTo(10+x+i*k,y);

Str(Cicle_Kod[i],Elm);

OutText(Elm);

End;

End;

{---------------------------------}

{выход из программы}

Function _Exit(Fon,Color : Integer;Col_Simv : Byte) : integer;

Var x,y,k : Integer;

Stop : Boolean;

Ch : Char;

Begin

Window_(250,200,450,300,1,'Выход');

x:=225;

y:=260;

k:=80;

SetTextStyle(0,0,1);

SetColor(Col_Simv);

For i:=1 to 2 do

Begin

MoveTo(x+i*k,y);

OutText(Y_No[i]);

End;

i:=1;

SetFillStyle(1,Fon);

Bar(x+i*k-30,y-15,x+i*k+30,y+15);

MoveTo(x+i*k,y);

Setcolor(Color);

OutText(Y_No[i]);

Stop:=False;

Repeat

ch:=ReadKey;

Case ch Of

#75:Begin

SetFillStyle(1,7);

Bar(x+i*k-30,y-15,x+i*k+30,y+15);

Setcolor(Col_Simv);

MoveTo(x+i*k,y);

OutText(Y_No[i]);

i:=i-1;

if(i2)then i:=2;

SetFillStyle(1,Fon);

Bar(x+i*k-30,y-15,x+i*k+30,y+15);

SetColor(Color);

MoveTo(x+i*k,y);

OutText(Y_No[i]);

Stop:=False;

End;{вправо}

#13:Begin Stop:=True; _Exit:=i End;

End;{Case}

Until Stop;

SetTextStyle(0,0,0);

End;

{---------------------------------}

{ОСНОВНАЯ ПРОГРАММА }

{---------------------------------}

Begin

InitGrf;

Repeat

flag:=false;

Fon(3,2,GetMaxX-3,30);

setcolor(0);

moveto(20,465);

SetTextJustify(0,1);

outtext('Esc - Выход');

Menu(3,'Работа','О программе','Помощь','','','');

Case t Of

1:Begin

Repeat

SetFillStyle(1,7); {Строка состтояния}

Bar(3,450,getmaxx-3,getmaxy-3);

SetColor(15);

Line(3,450,getmaxx-3,450);

Line(3,450,3,getmaxy-3);

SetColor(0);

Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

{moveto(20,465);

SetTextJustify(0,1);

SetColor(0);

outtext('Нажмите любую клавишу ...');}

VerMenu(3,'Ввод комбинации','Образующая

матрица','Выход','','','');

Case Np Of

1 : Begin

Visual(Mas);

Dopoln(F);

Delenye(F,P);

Window_(30,300,610,410,1,'Закодированное сообщение.

Красные

символы - контрольные.');

OutPut(40,370,F,R);

ReadKey;

SetFillStyle(1,3);

Bar(30,150,610,410);

End;

2 : Begin

Window_(30,50,610,445,1,'Образующая матрица');

Ed_Matrix(Obraz_Matrix);

Obr_Matrix(Obraz_Matrix);

OutPutObr_Matrix(40,90,Obraz_Matrix);

ReadKey;

SetFillStyle(1,3);

Bar(30,50,610,450);

End;

3 : Begin

Case _Exit(1,15,0) of

1 : begin

Np:=3;

flag:=true;

end;

2 : Flag:=False;

end

End;

End;

Until (Np=3) or (Np=4);

Ramka_Off(x1,y1,x2,y2);

End;

2:Begin

SetFillStyle(1,7); {Строка состтояния}

Bar(3,450,getmaxx-3,getmaxy-3);

SetColor(15);

Line(3,450,getmaxx-3,450);

Line(3,450,3,getmaxy-3);

SetColor(0);

Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

Window_(100,80,510,400,1,'О программе');

moveto(130,130);

SetTextJustify(0,1);

outtext('Данная программа является курсовой работой');

moveto(300,145);

SetTextJustify(1,1);

outtext('по курсу :');

moveto(300,160);

SetTextJustify(1,1);

outtext('" Передача информации " ');

moveto(120,200);

SetTextJustify(0,1);

outtext('Задание : Построить кодирующее устройство');

moveto(185,220);

outtext('для кода Файра.Кодируемых сообщений 63,');

moveto(185,240);

outtext('число обнаруживаемых ошибок Br=4, число');

moveto(185,260);

outtext('исправляемых ошибок Bs=3.');

moveto(120,290);

outtext('Студент : Иванов А. Е.');

moveto(120,310);

outtext('Группа : BM-1-97');

moveto(120,330);

outtext('Преподаватель : Каевченко .');

moveto(300,380);

SetTextJustify(1,1);

outtext('СМОЛЕНСК 1999 г.');

moveto(20,465);

SetTextJustify(0,1);

SetColor(0);

outtext('Нажмите любую клавишу ...');

Readkey;

Ramka_Off(x1,y1,x2,y2);

End;

3:Begin

SetFillStyle(1,7); {Строка состтояния}

Bar(3,450,getmaxx-3,getmaxy-3);

SetColor(15);

Line(3,450,getmaxx-3,450);

Line(3,450,3,getmaxy-3);

SetColor(0);

Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

Window_(100,50,500,350,1,'Помощ');

moveto(120,110);

SetTextJustify(0,1);

outtext(' ПЕРЕДВИЖЕНИЕ ПО ГОРИЗОНТАЛЬНОМУ МЕНЮ.');

moveto(120,130);

outtext('- |');

moveto(120,135);

outtext('| | ПЕРЕДВИЖЕНИЕ ПО ВЕРТИКАЛЬНОМУ МЕНЮ.');

moveto(120,140);

outtext('| ');

moveto(114,150);

moveto(114,155);

outtext(' АКТИВАЦИЯ ПУНКТА МЕНЮ.');

moveto(140,200);

outtext('В программе использованы соотношения :');

moveto(120,220);

outtext('L >= Bs c >= Bs+Br-1');

moveto(160,235);

outtext('L');

moveto(120,240);

outtext('e = 2 -1 m = c + L');

moveto(120,260);

outtext('n = НОК(e,c)');

moveto(120,280);

outtext('После расчетов получили образующий многочлен');

moveto(120,300);

outtext('Файра : P(x)=1011001011');

moveto(20,465);

SetTextJustify(0,1);

SetColor(0);

outtext('Нажмите любую клавишу ...');

ReadKey;

Ramka_Off(x1,y1,x2,y2);

End;

End; {Case}

Until flag;

closegraph;

End.

Оглавление.

|Аннотация | |

|Введение | |

|1. Теоретическое введение | |

| 1.1. Постановка задачи. | |

| 1.2. Понятие двоичных циклических кодов. | |

| 1.2.1. Общие понятия и определения. | |

| 1.2.2. Методы построения циклических кодов. | |

|1.3.Технические средства кодирования для двоичных | |

|циклических кодов. | |

|1.4. Коды Файра. | |

| 2. Разработка схемы кодирующего устройства. | |

|2.1. Построение кода Файра. | |

|2.2. Структурная схема кодирующего устройства. | |

| 3. Анализ технического задания. | |

| 4. Работа устройства | |

| 5.Выбор узлов принципиальной схемы. | |

|5.1. Расчет генератора тактовых импульсов | |

| 5.2. Счетчик К555 ИЕ10 | |

| 5.3. Тригер К555 ТВ6 | |

|5.4. Регистр К155ИР13. | |

| 6. Описание разработки системы. | |

|6.1. Модульная структура системы. | |

|6.2. Организация пользовательского интерфейса . | |

| 6.2.1. Меню системы. | |

| 6.2.2. Обработка ошибочных ситуаций. | |

|6.3. Спецификация на программные модули. | |

| 7 . Тестирование. | |

|7.1. Выбор методики тестирования. | |

|7.2. Результаты тестирования | |

| 8. Ограничения на разработку. | |

|8.1. Инструкция пользователя | |

| Заключение. |

| Список литературы. |

| Приложения |

|Приложение 1. Перечень элементов. |

|Приложение 2. Блок схема алгоритма. |

|Приложение 3. Текст программных модулей. |

| Приложение 4. Экранные формы. |

-----------------------

M2

M2

M2

M2

1

2

К1

Вход

Выход

К2

g0

g1

gn-k-1

g2

Обработка ошибок

Модуль вывода

Рис. 5.3 . Триггер К555 ТВ6.

[pic]

Рис.5.2 Счетчик К555 ИЕ10.

[pic]

Рис. 5.1. Принципиальная схема генератора.

[pic]

[pic]

Г

Кодер

Счетчик

=H0 + H1X + ... + HkXk

H(X)=

G(X)

xn+1

Основная программа

Модуль ввода

Интерфейс

Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.