Управление работой элементов автоматизированной системы в реальном времени, страница 2

   s: string;

   i: byte;

begin

   s := '';

   for i := 7 downto 0 do

       if (b and (1 shl i)) > 0 then

            s:=s+'1'

       else

           s:=s+'0';

       dec_to_bin:=s;

end;

begin

   clrscr;

   Init_Ch2(0,0);

   assign(f,'c:\a-2-02\out4_p5.txt');

   rewrite(f);

   Read_Sost(0, st, cnt);

   writeln(f,'kanal 0: ', dec_to_bin(st));

   Read_Sost(1, st, cnt);

   writeln(f,'kanal 1: ', dec_to_bin(st));

   Read_Sost(2,st,cnt);

   writeln(f,'kanal 2: ', dec_to_bin(st));

   readln;

   Init_Ch2(0,0);

   for i := 1 to 10 do mas[i] := Read_CE_Ch2;

   for i := 1 to 10 do mas[i+10] := Read_CL(2);

   for i := 1 to 10 do Read_Sost(2,st,mas[i+20]);;

   for i := 1 to 10 do mas[i+30] := Read_CE(2);

   writeln(f, 'chtenie s priostanovkoi raboty') ;

   writeln('chtenie s priostanovkoi raboty') ;

   for i := 1 to 10 do

   begin

      writeln(f, mas[i]);

      writeln(mas[i]);

   end;

   readln;

   writeln(f, 'chtenie v rezhime zaschelki') ;

   writeln('chtenie v rezhime zaschelki') ;

   for i := 1 to 10 do

   begin

      writeln(f, mas[i + 10]);

      writeln(mas[i + 10]);

   end;

   readln;

   writeln(f, 'chtenie CE s chteniem sostoyaniya') ;

   writeln('chtenie CE s chteniem sostoyaniya') ;

   for i := 1 to 10 do

   begin

      writeln(f, mas[i + 20]);

      writeln(mas[i + 20]);

   end;

   readln;

   writeln(f, 'posledovatelnoe chtenie') ;

   writeln('posledovatelnoe chtenie') ;

   for i := 1 to 10 do

   begin

      writeln(f, mas[i + 30]);

      writeln(mas[i + 30]);

   end;

   readln;

   close(f);

   Init_Ch2(3,(1193182 div 2600));

   clrscr;

   port [$302] := $E4;

   assign(f,'out4_p7.txt');

   rewrite(f);

   writeln('  №          Izmeryaemoe   ');

   writeln('izmereniya           napryazhenie');

   writeln(f,'  №          Izmeryaemoe   ');

   writeln(f,'izmereniya           napryazhenie');

   for i := 0 to Nmas do

   begin

      Check_Period_End(U_kod[i]);

   end;

   for i := 0 to Nmas do

   begin

      U_izm[i] := du * (U_kod[i] - 2048);

      M := M + U_izm[i];

      writeln(i:5,'         ',U_izm[i]:7:4);

      writeln(f, i:5,'         ',U_izm[i]:7:4);

   end;

   M := M/Nmas;

   writeln('Matozhidanie = ',M:7:4);

   writeln(f, 'Matozhidanie = ',M:7:4);

   for i := 0 to Nmas do

   begin

      D:=D + (U_izm[i] - M) * (U_izm[i] - M);

      if U_izm[i] > Umax then Umax := U_izm[i];

      if U_izm[i] < Umin then Umin := U_izm[i];

   end;

   D := D / (Nmas - 1);

   writeln('Dispersiya = ', D:7:4);

   writeln(f,'Dispersiya = ', D:7:4);

   writeln('Razmah = ', (Umax - Umin):7:4);

   writeln(f,'Razmah = ', (Umax - Umin):7:4);

   close(f);

end.

Экспериментальные данные:

kanal 0: 10110100

kanal 1: 10010100

kanal 2: 00110000

chtenie s priostanovkoi raboty

65534

65532

65530

65528

65527

65525

65524

65522

65520

65519

chtenie v rezhime zaschelki

65518

65515

65512

65508

65504

65501

65497

65494

65490

65486

chtenie CE s chteniem sostoyaniya

65483

65478

65474

65468

65463

65459

65454

65449

65444

65440

posledovatelnoe chtenie

65435

65433

65430

65428

65426

65423

65421

65418

65415

65413

Напряжение на выходе АЦП:

  №         Napryazhenie

    0         -1.0575

    1          0.4200

    2          1.7825

    3          2.9225

    4          3.7500

    5          3.9000

    6          3.5900

    7          2.8825

    8          1.7675

    9          0.2525

   10         -1.2150

   11         -2.5175

   12         -3.4675

   13         -3.9475

   14         -3.8950

   15         -3.3575

   16         -2.4250

   17         -0.9875

   18          0.4550

   19          1.8725

   20          3.0325

   21          3.6525

   22          3.9050

   23          3.6725

   24          2.8700

   25          1.6075

   26          0.2150

   27         -1.2300

   28         -2.5025

   29         -3.4575

   30         -4.0250

   31         -3.9650

   32         -3.3475

   33         -2.2625

   34         -1.0925

   35          0.4725

   36          1.8725

   37          2.9400

   38          3.6650

   39          3.9000

   40          3.7025

   41          2.8550

   42          1.6750

   43          0.2000

   44         -1.2250

   45         -2.5275

   46         -3.5700

   47         -3.9500

   48         -3.9625

   49         -3.4600

   50         -2.4800

   51         -1.0850

   52          0.3750

   53          1.7950

   54          2.9775

   55          3.7850

   56          3.9050

   57          3.6825

   58          2.8350

   59          1.5950

   60          0.1375

   61         -1.3125

   62         -2.6075

   63         -3.5550

   64         -3.9425

   65         -3.8000

   66         -3.3375

   67         -2.3150

   68         -1.0050

   69          0.4650

   70          1.8050

   71          2.9325

   72          3.7450

   73          3.9575

   74          3.5575

   75          2.7025

   76          1.5850

   77          0.2500

   78         -1.2050

   79         -2.6125

   80         -3.5925

   81         -4.0100

   82         -3.9650

   83         -3.3875

   84         -2.4450

   85         -0.9775

   86          0.4800

   87          1.7975

   88          3.0225

   89          3.7475

   90          3.9500

   91          3.6750

   92          2.7625

   93          1.5750

   94          0.1550

   95         -1.2400

   96         -2.6000

   97         -3.4725

   98         -3.9425

   99         -3.9600

  100         -3.4075

Matozhidanie = -0.0262

Dispersiya =  8.1483

Razmah =  7.9825

3. С учетом интервала дискретизации входного сигнала постройте график зависимости  Uxкв(t). По графику определите частоту входного сигнала и его амплитудное значение.