Я:
Результат
Архив

МЕТА - Украина. Рейтинг сайтов Webalta Уровень доверия



Союз образовательных сайтов
Главная / Предметы / Коммуникации и связь / Кодирующее устройство для кода Файера


Кодирующее устройство для кода Файера - Коммуникации и связь - Скачать бесплатно


 Теоретические основы информационной техники:
      Учеб.пособие для вузов-2-е изд., перераб. и доп.-М.:Энергия, 1979.-
       512 с., ил.

2. Липаев В.В.
      Тестирование программ.- М.:  Радио и связь,1986. - 296 с.: ил.

3. Тутевич В. Н.
      Телемеханика:
      Учеб.пособие для студентов вузов спец. “Автоматика и
      телемеханика”-2-е изд., перераб. и доп.-М.: Высш. Шк., 1985.-  423 с.,
ил.

4.  Зельдин Е. А.

    Цифровые интегральные микросхемы в информационн-измерительной

    аппаратуре. –Л.: Энергоатомиздат. Ленингр. отд-ние, 1986.- 280 с.: ил.



                                 Приложения.


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


|          |                                             |   |           |
|Поз.      |Наименование                                 |Кол|Примечания |
|Обозн.    |                                             |   |           |
|          |Конденсаторы                                 |   |           |
|С3        |К10-60 – 10 мКф + 10%                        |1  |           |
| С1,С2    |К10-17а – 0.1 мКф  +  0.1%                   |2  |           |
|          |Микросхемы.                                  |   |           |
|          |К555АГ3                                      |1  |           |
|          |К155ИР13                                     |9  |           |
|          |К555ТВ6                                      |1  |           |
|          |К555ИЕ10                                     |2  |           |
|          |К155ЛН1                                      |   |           |
|          |К155ЛИ1                                      |   |           |
|          |Резисторы                                    |   |           |
|R1-R2     |С2-29В 5Ком±0.1%                             |2  |           |
|R4        |МЛТ-0.125 – 30 Ком + 10%                     |1  |           |
|R5        |МЛТ-0.125 – 1.5Koм + 10%                     |1  |           |



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



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


Uses Crt,Graph,AlexUnit;
Const
  _N = 33;
  _M = 10;

Type
  Delim_Mas = array[1 .. 100] of byte;
  Mass1 = array[1 .. _N+_M-1] of byte;
  Mass2 = array[1 .. _M] of byte;
  Mass3 = array[1 .. _M-1] of byte;
  Mas_Exit=array[1..2] of String;
  Two_Matrix=array[1 .. _N,1 .. _N+_M-1] of byte;

Const
  P : Mass2 = (1,0,1,1,0,0,1,0,1,1);
  Y_No : Mas_Exit = ('Да','Нет');


Var
   F,Cicle_Kod : Mass1; R : Mass1;
   Delimoe : Delim_Mas;
   Obraz_Matrix : Two_Matrix;
   Mas : Mass;
   grDriver,grMode,ErrCode: Integer;
   flag : boolean;
   _t,c,n,m,i,schot,N0,Code : integer;



Function Sum(F,P : Byte) : Byte;    {Суммирование по модулю 2}
  Var
    i : Byte;
  Begin
    If ((F=1) and (P=1)) or ((F=0) and (P=0)) Then Sum:=0

                                       Else Sum:=1;
  End;

{-------------------------------}
Procedure Dopoln(Var F : Mass1); {Умножение на старшую степень образующего
многочлена}
 Var
   i : Byte;
 Begin
   for i:=_N+1 to _N+_M-1 do F[i]:=0;
 End;

{--------------------------------}
Procedure Delenye(F : Mass1;P : Mass2); {Деление многочлен на многочлен}
  Var
         i,j,t : Byte; K : Mass1;
  Begin
    For i:=1 to _N do
      Begin
        IF F[i]=1 Then Begin
          t:=1;
          For j:=i to i+_M-1 do
            Begin
              K[j]:=Sum(F[j],P[t]);
              F[j]:=K[j];
              t:=t+1;
            End;
        End;
      End;
    t:=1;
    For i:=_N+1 to _N+_M-1 do
      Begin
        R[t]:=F[i];
        t:=t+1;
      End;
  End;

{----------------------------------------}
Procedure Ed_Matrix(Var A : Two_Matrix);  {Составление еденичной матрицы}
Var
  i : Integer;
  Begin
    For i:=1 to _N do
      Begin
        A[i,_N+1-i]:=1
      End;
  End;
{----------------------------------------}

Procedure Obr_Matrix(Var A : Two_Matrix); {Получение образующей матрицы}
  Var
         i,j,t,Schot,l,m : Byte; K : Mass1;
  Begin
    Delimoe[1]:=1;
    Schot:=1;
    For i:=1 to _N do
      Begin
        IF Delimoe[i]=1 Then Begin
          t:=1;
          For j:=i to i+_M-1 do
            Begin
              K[j]:=Sum(Delimoe[j],P[t]);
              Delimoe[j]:=K[j];

              t:=t+1;
            End;

          l:=1;
          For m:=i+1 to i+_M-1 do
            Begin
              A[Schot,_N+l]:=Delimoe[m];
              l:=l+1;
            End;
        End
           Else Begin
             l:=1;
             For m:=i+1 to i+_M-1 do
               Begin
                 A[Schot,_N+l]:=Delimoe[m];
                 l:=l+1;
               End;
           End;
        Schot:=Schot+1;
      End;

  End;

Procedure InitGrf;                    {Инициализация графики}
Begin
  grDriver := Detect;
  InitGraph(grDriver, grMode,'c:subbpbgi');
  if GraphResult <> grOk then  Begin
       Halt(1);
  End;
End;


Procedure Visual(Var sa:mass);  {Ввод информационных символов}
 Var i,x,y,k,Fon,Color,a:Integer;
     Code: Integer;
     ch,chi:Char;
     Stop:Boolean;
     Elm : String;

 Begin
  moveto(20,465);
  SetTextJustify(0,1);
  SetColor(0);
  outtext('Нажмите Enter');
  x:=30;
  y:=225;
  k:=17;
  Fon:=1;
  Color:=14;
  Window_(30,150,610,260,1,'Ввод нформационных символов');
  SetTextStyle(1,0,4);
  SetColor(Fon);
  For i:=1 to _N Do
   Begin
    MoveTo(x+i*k,y);
    Str(Sa[i],Elm);
    OutText(Elm);
   End;
  SetTextStyle(0,0,1);
  MoveTo(x+17,y-20);
  Str(_N,Elm);
  OutText(Elm);
  MoveTo(x+_N*17,y-20);
  Str(0,Elm);
  OutText(Elm);

  SetTextStyle(1,0,4);
   i:=1;
   MoveTo(x+i*k,y);
   Setcolor(Color);
   Str(Sa[i],Elm);
   OutText(Elm);
   Stop:=False;

   Repeat
    Begin
     ch:=ReadKey;
     Case ch Of
     #75:Begin
        Setcolor(Fon);
          MoveTo(x+i*k,y);
          Str(Sa[i],Elm);
          OutText(Elm);
          i:=i-1;
          if(i<1)then i:=_N;
          SetColor(Color);
          MoveTo(x+i*k,y);
          Str(Sa[i],Elm);
          OutText(Elm);
        Stop:=False;
        End;{влево}
     #77:Begin
          SetColor(Fon);
          MoveTo(x+i*k,y);
          Str(Sa[i],Elm);
          OutText(Elm);
          i:=i+1;
          if(i>_N)then i:=1;
          SetColor(Color);
          MoveTo(x+i*k,y);
          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(i<1)then i:=1;
          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;{влево}
     #77: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(i>2)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);
         



Назад


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 © insoft.com.ua,2007г. © il.lusion,2007г.
Карта сайта