Beruflich Dokumente
Kultur Dokumente
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Buttons, StdCtrls,
Mask,Math;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
TimeDiagram: TSpeedButton;
Chart2: TChart;
LineSeries1: TLineSeries;
Chart1: TChart;
LineSeries2: TLineSeries;
LineSeries3: TLineSeries;
Chart4: TChart;
LineSeries4: TLineSeries;
Chart6: TChart;
LineSeries5: TLineSeries;
Chart8: TChart;
LineSeries6: TLineSeries;
Chart5: TChart;
LineSeries7: TLineSeries;
Chart7: TChart;
LineSeries8: TLineSeries;
Chart9: TChart;
LineSeries9: TLineSeries;
Chart10: TChart;
LineSeries10: TLineSeries;
StaticText1: TStaticText;
pausebutton: TSpeedButton;
Chart3: TChart;
StaticText2: TStaticText;
Label1: TLabel;
//
end;
var
Form1: TForm1;
//input
inA : array[1..128] of integer = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
inB : array[1..128] of integer = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
inC : array[1..128] of integer = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
inD : array[1..128] of integer = (0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1);
inE : array[1..128] of integer = (0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,
1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,
1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,
1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1);
inF : array[1..128] of integer = (0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,
1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1);
inG : array[1..128] of integer = (0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1);
clk : array[1..256] of integer = (0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,1);
out_y : array [1..128] of integer;
//output
th2 : integer = 2;
th3 : integer = 3;
th6 : integer = 6;
th0 : integer = 0;
w_in : integer = 2;
c_in : integer = -1;
tambah : integer;
pausestat : integer;
N1,N2,N3,nd1,nd2,nd3,nd4,nd5,nd6,nd7,nd8,nd9,nd10,nd11,or1,or2,or3,X1,X2,X3,X4
,X5,X6,X7,X8,X9,X10,XNOR : integer; //variabel untuk penghitungan
implementation
{$R *.dfm}
procedure TFORM1.delay(lama:real); //prosedur delay untuk grafik
var ref:longint;
begin
ref:=gettickcount;
repeat application.processmessages;
until ((gettickcount-ref)>=lama);
end;
procedure TForm1.pause;
begin
repeat
application.processmessages;
until pausebutton.caption='Pause';
end;
procedure hitung;
begin
nd1:= X1*c_in + X2*c_in
if nd1<th2
then nd1:=0
else nd1:=1;
nd2:= X1*c_in + X2*w_in
if nd2<th2
then nd2:=0
else nd2:=1;
nd3:= X1*w_in + X2*c_in
if nd3<th2
then nd3:=0
else nd3:=1;
nd4:= X1*w_in + X2*w_in
if nd4<th6
then nd4:=0
else nd4:=1;
+ X3*w_in;
//mencari /A+/B+C
+ X3*c_in;
//mencari /A+B+/C
+ X3*c_in;
//mencari A+/B+/C
+ X3*w_in;
//mencari A+B+C
//mencari /D+/E+F
//mencari /D+E+/F
//mencari D+/E+/F
//mencari D+E+F
out_y[i]:=XNOR;
end;
out_y[1]:=out_y[128];
lineseries1.Clear;
lineseries2.Clear;
lineseries3.Clear;
lineseries4.Clear;
lineseries5.Clear;
lineseries6.Clear;
lineseries7.Clear;
lineseries8.Clear;
lineseries9.Clear;
lineseries10.Clear;
for i:=1 to 256 do
begin
lineseries1.AddXY(i,InA[i]);
lineseries2.AddXY(i,InB[i]);
lineseries3.AddXY(i,InC[i]);
lineseries4.AddXY(i,InD[i]);
lineseries5.AddXY(i,InE[i]);
lineseries6.AddXY(i,InF[i]);
lineseries7.AddXY(i,InG[i]);
lineseries8.AddXY(i,out_y[i+1]);
lineseries9.AddXY(i,out_y[i]);
lineseries10.AddXY(i,clk[i]);
delay (10) ;
lineseries10.AddXY(i,clk[i]);
end;
until TimeDiagram.Caption='START'
end;
procedure TForm1.pausebuttonClick(Sender: TObject);
begin
if pausebutton.Caption='Pause' then
begin
pausebutton.Caption:='Continue'; pause;
end;
if pausebutton.Caption='Continue' then pausebutton.Caption:='Pause';
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;
end.