You are on page 1of 34

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

Tfrmrz = class(TForm)

Image1: TImage;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Image6: TImage;

NRZI: TLabel;

MANCHESTER: TLabel;

Image5: TImage;

Label8: TLabel;

Label1: TLabel;

edbiner: TEdit;

btn0: TButton;

btn1: TButton;

btndel: TButton;

btnrz: TButton;
btnnrzl: TButton;

btnnrzi: TButton;

btnman: TButton;

btndman: TButton;

btnami: TButton;

btnall: TButton;

btnexit: TButton;

procedure btnexitClick(Sender: TObject);

procedure btnrzClick(Sender: TObject);

procedure btnnrzlClick(Sender: TObject);

procedure btndmanClick(Sender: TObject);

procedure btnamiClick(Sender: TObject);

procedure btnallClick(Sender: TObject);

procedure btn0Click(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure btndelClick(Sender: TObject);

procedure btnnrziClick(Sender: TObject);

procedure btnmanClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmrz: Tfrmrz;

implementation

{$R *.dfm}

procedure rz_1(ax,ay,a,b,n:integer);
begin

frmrz.Image1.Canvas.Pen.Color:=clred;

frmrz.Image1.Canvas.Pen.Width:=2;

frmrz.Image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+(n-1)*(b+b),ay-a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay-a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);

end;

procedure rz_0(ax,ay,a,b,n:integer);

begin

frmrz.Image1.Canvas.Pen.Color:=clred;

frmrz.Image1.Canvas.Pen.Width:=2;

frmrz.Image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+(n-1)*(b+b),ay+a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay+a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);

end;

procedure NRZL_1(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;

frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image2.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

end;

procedure NRZL_0(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;
frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image2.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

end;

procedure NRZL_tegak(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;

frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image2.Canvas.LineTo(ax+(i-1)*b,ay-a);

end;

procedure NRZI_0(ax,ay,a,b,i:integer);

begin

frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image6.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

end;

procedure NRZI_1(ax,ay,a,b,i:integer);

begin

frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image6.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

end;

procedure NRZI_tegak(ax,ay,a,b,i:integer);

begin
frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image6.Canvas.LineTo(ax+(i-1)*b,ay+a);

end;

procedure mncstr_0(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+b+(i-1)*(b+b),ay+a);

end;

procedure mncstr_1(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);

end;

procedure tegak_1(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);
frmrz.Image5.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);

end;

procedure tegak_0(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay+a);

end;

procedure dmncstr_1(ax,ay,a,b,i:integer);

begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+2*b,ay-a);

end;

procedure dmncstr_0(ax,ay,a,b,i:integer);
begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+2*b,ay+a);

end;

procedure dtegak(ax,ay,a,b,i:integer);

begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo((ax+(i-1)*b+((i-1)*b)),ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b)),ay+a);

end;

procedure ami_1(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;

frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+(i-1)*b,ay-a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure ami_2(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;
frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+(i-1)*b,ay+a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure ami_tegak(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;

frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure sumbu;

var

edbiner:string;

begin

edbiner:=frmrz.Text;

frmrz.Image1.Picture:=nil;

frmrz.Image1.Refresh;

frmrz.Image1.Canvas.Pen.Color:=clBlack;

frmrz.Image1.Canvas.Pen.Style:=pssolid;

frmrz.Image1.Canvas.MoveTo(10,200);

frmrz.Image1.Canvas.LineTo(10 ,200-145);

frmrz.Image1.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image1.Canvas.MoveTo(10,140);
frmrz.Image1.Canvas.LineTo(10+370,140);

frmrz.Image1.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image1.Canvas.Pen.Color:=clBlue;

frmrz.Image1.Canvas.Pen.Style:=psDot;

frmrz.Image1.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image1.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image1.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image2.Picture:=nil;

frmrz.Image2.Refresh;

frmrz.Image2.Canvas.Pen.Color:=clBlack;

frmrz.Image2.Canvas.Pen.Style:=pssolid;

frmrz.Image2.Canvas.MoveTo(10,200);

frmrz.Image2.Canvas.LineTo(10,200-145);

frmrz.Image2.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image2.Canvas.MoveTo(10,140);

frmrz.Image2.Canvas.LineTo(10+370,140);

frmrz.Image2.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image2.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image2.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image2.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image3.Picture:=nil;

frmrz.Image3.Refresh;

frmrz.Image3.Canvas.Pen.Color:=clBlack;

frmrz.Image3.Canvas.Pen.Style:=pssolid;

frmrz.Image3.Canvas.MoveTo(10,200);
frmrz.Image3.Canvas.LineTo(10,200-145);

frmrz.Image3.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image3.Canvas.MoveTo(10,140);

frmrz.Image3.Canvas.LineTo(10+370,140);

frmrz.Image3.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image3.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image3.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image3.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image4.Picture:=nil;

frmrz.Image4.Refresh;

frmrz.Image4.Canvas.Pen.Color:=clBlack;

frmrz.Image4.canvas.Pen.Style:=PsSolid;

frmrz.Image4.Canvas.MoveTo(10,200);

frmrz.Image4.Canvas.LineTo(10,200-155);

frmrz.Image4.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image4.Canvas.MoveTo(10,140);

frmrz.Image4.Canvas.LineTo(10+370,140);

frmrz.Image4.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image4.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image4.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image4.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image5.Picture:=nil;

frmrz.Image5.Refresh;

frmrz.Image5.Canvas.Pen.Color:=clBlack;

frmrz.Image5.canvas.Pen.Style:=PsSolid;

frmrz.Image5.Canvas.MoveTo(10,200);

frmrz.Image5.Canvas.LineTo(10,200-155);
frmrz.Image5.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image5.Canvas.MoveTo(10,140);

frmrz.Image5.Canvas.LineTo(10+370,140);

frmrz.Image5.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image5.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image5.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image5.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image6.Picture:=nil;

frmrz.Image6.Refresh;

frmrz.Image6.Canvas.Pen.Color:=clBlack;

frmrz.Image6.canvas.Pen.Style:=PsSolid;

frmrz.Image6.Canvas.MoveTo(10,200);

frmrz.Image6.Canvas.LineTo(10,200-155);

frmrz.Image6.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image6.Canvas.MoveTo(10,140);

frmrz.Image6.Canvas.LineTo(10+370,140);

frmrz.Image6.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image6.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image6.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image6.Canvas.TextOut(200-200,200-40,'5V-');

end;

procedure rz;

var

ax,ay,a,b,n,q:integer;

edbiner:string;

begin
edbiner:=frmrz.edbiner.Text;

q:=length(edbiner);

ax:=10; ay:=140; a:=30; b:=30;

for n:=1 to q do

if edbiner[n]='1' then

begin

rz_1(ax,ay,b,a,n);

end

else if edbiner[n]='0' then

begin

rz_0(ax,ay,b,a,n);

end;

end;

procedure nrzl;

var

tnd,ax,ay,a,b,n:integer;

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

for n:=1 to length(edbiner) do

if edbiner[n]='1' then

if tnd=0 then

begin

NRZL_1(ax,ay,b,a,n);

NRZL_tegak(ax,ay,b,a,n);

tnd:=1;

end
unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

Tfrmrz = class(TForm)

Image1: TImage;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Image6: TImage;

NRZI: TLabel;

MANCHESTER: TLabel;

Image5: TImage;

Label8: TLabel;

Label1: TLabel;

edbiner: TEdit;

btn0: TButton;

btn1: TButton;

btndel: TButton;

btnrz: TButton;
btnnrzl: TButton;

btnnrzi: TButton;

btnman: TButton;

btndman: TButton;

btnami: TButton;

btnall: TButton;

btnexit: TButton;

procedure btnexitClick(Sender: TObject);

procedure btnrzClick(Sender: TObject);

procedure btnnrzlClick(Sender: TObject);

procedure btndmanClick(Sender: TObject);

procedure btnamiClick(Sender: TObject);

procedure btnallClick(Sender: TObject);

procedure btn0Click(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure btndelClick(Sender: TObject);

procedure btnnrziClick(Sender: TObject);

procedure btnmanClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmrz: Tfrmrz;

implementation

{$R *.dfm}

procedure rz_1(ax,ay,a,b,n:integer);
begin

frmrz.Image1.Canvas.Pen.Color:=clred;

frmrz.Image1.Canvas.Pen.Width:=2;

frmrz.Image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+(n-1)*(b+b),ay-a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay-a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);

end;

procedure rz_0(ax,ay,a,b,n:integer);

begin

frmrz.Image1.Canvas.Pen.Color:=clred;

frmrz.Image1.Canvas.Pen.Width:=2;

frmrz.Image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+(n-1)*(b+b),ay+a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay+a);

frmrz.Image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);

frmrz.Image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);

end;

procedure NRZL_1(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;

frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image2.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

end;

procedure NRZL_0(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;
frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image2.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

end;

procedure NRZL_tegak(ax,ay,a,b,i:integer);

begin

frmrz.Image2.Canvas.Pen.Color:=clred;

frmrz.Image2.Canvas.Pen.Width:=2;

frmrz.Image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image2.Canvas.LineTo(ax+(i-1)*b,ay-a);

end;

procedure NRZI_0(ax,ay,a,b,i:integer);

begin

frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay+a);

frmrz.Image6.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

end;

procedure NRZI_1(ax,ay,a,b,i:integer);

begin

frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image6.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

end;

procedure NRZI_tegak(ax,ay,a,b,i:integer);

begin
frmrz.Image6.Canvas.Pen.Color:=clred;

frmrz.Image6.Canvas.Pen.Width:=2;

frmrz.Image6.Canvas.MoveTo(ax+(i-1)*b,ay-a);

frmrz.Image6.Canvas.LineTo(ax+(i-1)*b,ay+a);

end;

procedure mncstr_0(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+b+(i-1)*(b+b),ay+a);

end;

procedure mncstr_1(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);

end;

procedure tegak_1(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);
frmrz.Image5.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);

end;

procedure tegak_0(ax,ay,a,b,i:integer);

begin

frmrz.Image5.Canvas.Pen.Color:=clred;

frmrz.Image5.Canvas.Pen.Width:=2;

frmrz.Image5.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);

frmrz.Image5.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);

frmrz.Image5.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay+a);

end;

procedure dmncstr_1(ax,ay,a,b,i:integer);

begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+2*b,ay-a);

end;

procedure dmncstr_0(ax,ay,a,b,i:integer);
begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+2*b,ay+a);

end;

procedure dtegak(ax,ay,a,b,i:integer);

begin

frmrz.Image3.Canvas.Pen.Color:=clred;

frmrz.Image3.Canvas.Pen.Width:=2;

frmrz.Image3.Canvas.MoveTo((ax+(i-1)*b+((i-1)*b)),ay-a);

frmrz.Image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b)),ay+a);

end;

procedure ami_1(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;

frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+(i-1)*b,ay-a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay-a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure ami_2(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;
frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+(i-1)*b,ay+a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay+a);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure ami_tegak(ax,ay,a,b,i:integer);

begin

frmrz.Image4.Canvas.Pen.Color:=clred;

frmrz.Image4.Canvas.Pen.Width:=2;

frmrz.Image4.Canvas.MoveTo(ax+(i-1)*b,ay);

frmrz.Image4.Canvas.LineTo(ax+b+(i-1)*b,ay);

end;

procedure sumbu;

var

edbiner:string;

begin

edbiner:=frmrz.Text;

frmrz.Image1.Picture:=nil;

frmrz.Image1.Refresh;

frmrz.Image1.Canvas.Pen.Color:=clBlack;

frmrz.Image1.Canvas.Pen.Style:=pssolid;

frmrz.Image1.Canvas.MoveTo(10,200);

frmrz.Image1.Canvas.LineTo(10 ,200-145);

frmrz.Image1.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image1.Canvas.MoveTo(10,140);
frmrz.Image1.Canvas.LineTo(10+370,140);

frmrz.Image1.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image1.Canvas.Pen.Color:=clBlue;

frmrz.Image1.Canvas.Pen.Style:=psDot;

frmrz.Image1.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image1.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image1.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image2.Picture:=nil;

frmrz.Image2.Refresh;

frmrz.Image2.Canvas.Pen.Color:=clBlack;

frmrz.Image2.Canvas.Pen.Style:=pssolid;

frmrz.Image2.Canvas.MoveTo(10,200);

frmrz.Image2.Canvas.LineTo(10,200-145);

frmrz.Image2.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image2.Canvas.MoveTo(10,140);

frmrz.Image2.Canvas.LineTo(10+370,140);

frmrz.Image2.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image2.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image2.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image2.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image3.Picture:=nil;

frmrz.Image3.Refresh;

frmrz.Image3.Canvas.Pen.Color:=clBlack;

frmrz.Image3.Canvas.Pen.Style:=pssolid;

frmrz.Image3.Canvas.MoveTo(10,200);
frmrz.Image3.Canvas.LineTo(10,200-145);

frmrz.Image3.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image3.Canvas.MoveTo(10,140);

frmrz.Image3.Canvas.LineTo(10+370,140);

frmrz.Image3.Canvas.TextOut(10+370,140+5,'Time');

frmrz.Image3.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image3.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image3.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image4.Picture:=nil;

frmrz.Image4.Refresh;

frmrz.Image4.Canvas.Pen.Color:=clBlack;

frmrz.Image4.canvas.Pen.Style:=PsSolid;

frmrz.Image4.Canvas.MoveTo(10,200);

frmrz.Image4.Canvas.LineTo(10,200-155);

frmrz.Image4.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image4.Canvas.MoveTo(10,140);

frmrz.Image4.Canvas.LineTo(10+370,140);

frmrz.Image4.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image4.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image4.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image4.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image5.Picture:=nil;

frmrz.Image5.Refresh;

frmrz.Image5.Canvas.Pen.Color:=clBlack;

frmrz.Image5.canvas.Pen.Style:=PsSolid;

frmrz.Image5.Canvas.MoveTo(10,200);

frmrz.Image5.Canvas.LineTo(10,200-155);
frmrz.Image5.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image5.Canvas.MoveTo(10,140);

frmrz.Image5.Canvas.LineTo(10+370,140);

frmrz.Image5.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image5.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image5.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image5.Canvas.TextOut(200-200,200-40,'5V-');

frmrz.Image6.Picture:=nil;

frmrz.Image6.Refresh;

frmrz.Image6.Canvas.Pen.Color:=clBlack;

frmrz.Image6.canvas.Pen.Style:=PsSolid;

frmrz.Image6.Canvas.MoveTo(10,200);

frmrz.Image6.Canvas.LineTo(10,200-155);

frmrz.Image6.Canvas.TextOut(10,200-155,'Amplitudo');

frmrz.Image6.Canvas.MoveTo(10,140);

frmrz.Image6.Canvas.LineTo(10+370,140);

frmrz.Image6.Canvas.TextOut(10+370,145+0,'Time');

frmrz.Image6.Canvas.TextOut(200-200,200-100,'5V+');

frmrz.Image6.Canvas.TextOut(200-200,200-70,'0V');

frmrz.Image6.Canvas.TextOut(200-200,200-40,'5V-');

end;

procedure rz;

var

ax,ay,a,b,n,q:integer;

edbiner:string;

begin
edbiner:=frmrz.edbiner.Text;

q:=length(edbiner);

ax:=10; ay:=140; a:=30; b:=30;

for n:=1 to q do

if edbiner[n]='1' then

begin

rz_1(ax,ay,b,a,n);

end

else if edbiner[n]='0' then

begin

rz_0(ax,ay,b,a,n);

end;

end;

procedure nrzl;

var

tnd,ax,ay,a,b,n:integer;

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

for n:=1 to length(edbiner) do

if edbiner[n]='1' then

if tnd=0 then

begin

NRZL_1(ax,ay,b,a,n);

NRZL_tegak(ax,ay,b,a,n);

tnd:=1;

end
else

NRZL_1(ax,ay,b,a,n)

else

if tnd=1

then

begin

NRZL_0(ax,ay,b,a,n);

NRZL_tegak(ax,ay,b,a,n);

tnd:=0;

end

else NRZL_0(ax,ay,b,a,n);

end;

procedure nrzi_;

var

tnd,ax,ay,a,b,n:integer;

biner:string;

begin

biner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

for n:=1 to length(biner) do

if biner[n]='1' then

if tnd=0 then

begin

NRZI_tegak(ax,ay,b,a,n);

NRZI_1(ax,ay,b,a,n);

tnd:=1;

end

else NRZI_1(ax,ay,b,a,n)
else if tnd=1 then begin NRZI_tegak(ax,ay,b,a,n);

NRZI_0(ax,ay,b,a,n);

tnd:=0;

end

else

NRZI_0(ax,ay,b,a,n);

end;

procedure manchester_1;

var

tnd, ax,ay,a,b,n:integer;

biner:string;

begin

biner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

for n:=1 to length(biner) do

if biner[n]='1' then

if tnd=0 then

begin

mncstr_1(ax,ay,b,a,n);

tnd:=1

end

else

tegak_1(ax,ay,b,a,n)

else

if tnd=1 then

begin

mncstr_0(ax,ay,b,a,n);

tnd:=0;
end

else

tegak_0(ax,ay,b,a,n);

end;

procedure dmanchester;

var

tnd, ax,ay,a,b,n:integer;

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

for n:=1 to length(edbiner) do

begin

if edbiner[n]='1' then

if tnd = 0 then

begin dmncstr_1(ax,ay,b,a,n);

tnd:= 1;

end

else

begin dmncstr_0(ax,ay,b,a,n);

tnd:=0;

end

else

if tnd = 0 then

begin dtegak(ax,ay,b,a,n);

dmncstr_0(ax,ay,b,a,n);
end

else

begin dtegak(ax,ay,b,a,n);

dmncstr_1(ax,ay,b,a,n);

end

end;

end;

procedure ami;

var

tnd,ax,ay,a,b,n:integer;

edbiner,start:string;

begin

edbiner:=frmrz.edbiner.Text;

ax:=10; ay:=140; a:=30; b:=30;

tnd:=0;

start:='atas';

if start='bawah' then tnd:=0

else if start='atas' then tnd:=1;

for n:=1 to length(edbiner) do

if edbiner[n]='1' then

if tnd=1 then

begin

ami_1(ax,ay,b,a,n);

tnd:=0;

end

else

begin

ami_2(ax,ay,b,a,n);

tnd:=1;
end

else

ami_tegak(ax,ay,b,a,n);

end;

procedure Tfrmrz.btn1Click(Sender: TObject);

var

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

if length(edbiner)<12 then

begin

edbiner:=edbiner+'1';

frmrz.edbiner.Text:=edbiner;

end;

end;

procedure Tfrmrz.btn0Click(Sender: TObject);

var

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

if length(edbiner)<12 then

begin

edbiner:=edbiner+'0';

frmrz.edbiner.Text:=edbiner;

end;

end;
procedure Tfrmrz.btndelClick(Sender: TObject);

var

edbiner:string;

begin

edbiner:=frmrz.edbiner.Text;

if length(edbiner)<20 then

begin

edbiner:=copy(edbiner,0,length(edbiner)-1);

frmrz.edbiner.Text:=edbiner;

end;

end;

procedure Tfrmrz.btnexitClick(Sender: TObject);

begin

application.Terminate;

end;

procedure Tfrmrz.btnrzClick(Sender: TObject);

begin

sumbu;

rz;

end;

procedure Tfrmrz.btnnrzlClick(Sender: TObject);

begin

sumbu;

nrzl;

end;
procedure Tfrmrz.btnmanClick(Sender: TObject);

begin

sumbu;

manchester_1;

end;

procedure Tfrmrz.btndmanClick(Sender: TObject);

begin

sumbu;

dmanchester;

end;

procedure Tfrmrz.btnamiClick(Sender: TObject);

begin

sumbu;

ami;

end;

procedure Tfrmrz.btnallClick(Sender: TObject);

begin

sumbu;

rz;

nrzl;

nrzi_;

manchester_1;

dmanchester;

ami;

end;
procedure Tfrmrz.btnnrziClick(Sender: TObject);

begin

sumbu;

nrzi_;

end;

end.
Komponen Property Setting
Label1 Caption RZ
Label2 Caption NRZL
Label4 Caption NRZI
Label3 Caption MANCHESTER
Label5 Caption D-MANCHESTER
Label6 Caption AMI
Image1 Name Image1
Image2 Name Image2
Image3 Name Image3
Image4 Name Image4
Image5 Name Image5
Imager6 Name Image6
Text kosong
Edit1
Name edbiner
Caption 0
Button 1
Name btnnol
Caption 1
Button 2
Name btnsatu
Caption Del
Button 3
Name btndel
Caption exit
Button 4
Name btnexit
Caption RZ
Button 5
Name btnrz
Caption NRZL
Button 6
Name btnnrzl
Caption NRZI
Button 7
Name btnnrzi
Caption MANC
Button 8
Name btnman
Caption D-MANC
Button 9
Name btndman
Caption AMI
Button 10
Name btnami
Caption ALL
Button11
Name btnall

You might also like