Professional Documents
Culture Documents
Script Pengkodean
Script Pengkodean
interface
uses
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;
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);
for n:=1 to q do
if edbiner[n]='1' then
begin
rz_1(ax,ay,b,a,n);
end
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;
tnd:=0;
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
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;
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);
for n:=1 to q do
if edbiner[n]='1' then
begin
rz_1(ax,ay,b,a,n);
end
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;
tnd:=0;
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;
tnd:=0;
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;
tnd:=0;
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;
tnd:=0;
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;
tnd:=0;
start:='atas';
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;
var
edbiner:string;
begin
edbiner:=frmrz.edbiner.Text;
if length(edbiner)<12 then
begin
edbiner:=edbiner+'1';
frmrz.edbiner.Text:=edbiner;
end;
end;
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;
begin
application.Terminate;
end;
begin
sumbu;
rz;
end;
begin
sumbu;
nrzl;
end;
procedure Tfrmrz.btnmanClick(Sender: TObject);
begin
sumbu;
manchester_1;
end;
begin
sumbu;
dmanchester;
end;
begin
sumbu;
ami;
end;
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