Upload
kokomaster11
View
217
Download
3
Embed Size (px)
DESCRIPTION
laporan
Citation preview
LAPORAN
PRAKTIKUM INTERFACING
Laporan ini dibuat untuk memenuhi tugas UAS matakuliah Interfacing
Oleh
Hermawan Firdiansyah
NIM. 0910930047
UNIVERSITAS BRAWIJAYA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
JURUSAN FISIKA
Januari 2013
Analog to Digital Convertion (ADC)
Kode program
Analisa:
Kode program di atas merupakan program untuk ADC menggunakan mikrokontroller ATmega16.• Kode pada baris ke-7 yaitu DDRC = 0xff; berfungsi untuk membuat PORTC sebagai
keluaran untuk menampilkan hasil ADC 8 bit ke dalam bentuk nyala LED.• Kode pada baris ke-9 yaitu ADMUX = 0b01100000; merupakan register untuk pengaturan
channel ADC yang akan digunakan yaitu channel ADC 0, juga digunakan untuk mengatur tegangan referensi yaitu VCC 5 volt sebagai referensi, serta untuk mengatur left adjust pada hasil ADC.
• Pada baris ke-10 yaitu ADCSRA = 0b10000001; berisi register-register yang mengatur kerja ADC, seperti: register ADEN=1 yang berfungsi untuk meng-enable ADC, lalu register ADSC untuk mengatur dimulainya konversi, register ADATE =0 untuk menonaktifkan outotrigger, ADIE = 0 untuk menonaktifkan interupsi ADC, dan berfungsi ASPS untuk menentukan frekuensi clock yang digunakan.
• Kode while (1) merupakan perulangan terus-menerus.• kode pada baris 14 (ADCSRA=(1<<ADSC); merupakan perintah yang berfungsi untuk
memulai konversi.• Kode pada baris 15 while (ADCSRA & (1<<ADSC)) {;} merupakan perintah yang
berfungsi untuk menunggu hingga proses konversi selesai.• Kode pada baris ke-16 hasil=ADCH; berfungsi untuk menyimpan nilai yang telah
dikonversi dalam variabel hasil.• Kode pada baris ke-15 PORTC= ~hasil; berfungsi untuk menampilkan hasil konversi
kedalam bentuk nyala led pada PORTC.
Motor Stepper
Kode Program:
Analisa:Kode program di atas merupakan kode untuk menggerakkan motor stepper. Program tersebut sama dengan program I/O pada umumnya. PORTC digunakan sebagai keluaran yang dihubungkan dengan motor stepper. Kode program pada perulangan while(1) yang pertama yaitu berfungsi untuk menggerakkan motor stepper full step putar ke kiri dalam satu putaran penuh.Kode program pada perulangan while(1) yang kedua yaitu berfungsi untuk menggerakkan motor stepper full step putar ke kanan dalam satu putaran penuh.Kode program pada perulangan while(1) yang ketiga yaitu berfungsi untuk menggerakkan motor stepper half step putar ke kanan dalam satu putaran penuh.
Komunikasi Serial
Analisa:Untuk praktikum komunikasi serial tidak membuat program sendiri, pada percobaan ini aplikasi yang digunakan yaitu Terminal COM Port.Sebelum data dikirimkan terlebih dahulu dihubungkan dua buah PC melalui port serial masing-masing PC. Sebelum mengirim data, terlebih dahulu diset COM port nya, baudratenya yang digunakan berapa, data bit yang digunakan 8, tanpa paritas, menggunakan 1 stop bit, serta tidak menggunakan handshaking. Setelah semuanya telah diset, kemudian diketikkan karakter atau string di baris input yang telah disediakan. Lalu tombol send ditekan, maka data akan dikirim ke PC yang telah terhubung.
Komunikasi Parallel
Kode Program:
unit UnitTest;
{$IFDEF FPC} {$MODE Delphi}
{$ENDIF}
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, LPT;
type
{ TForm1 }
TForm1 = class(TForm) LPTXP1: TLPTXP;
CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; CheckBox6: TCheckBox; CheckBox7: TCheckBox; CheckBox8: TCheckBox;
Run: TButton; Timer1: TTimer;
OpenDialog1: TOpenDialog; BinFile: TButton; Label1: TLabel;
procedure ChangePort(Sender: TObject); procedure FormCreate(Sender: TObject); procedure RunClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject); procedure BinFileClick(Sender: TObject);
private BINX:array of byte; BinLength:integer;
CodePosition,PositionX:integer; Rpt,Jml:byte;
procedure LoadBIN(FileName:string); public
{ Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ChangePort(Sender: TObject);var Data:byte;
begin Data:=0;
if CheckBox1.Checked then Data:=Data or 1; if CheckBox2.Checked then Data:=Data or 2; if CheckBox3.Checked then Data:=Data or 4; if CheckBox4.Checked then Data:=Data or 8; if CheckBox5.Checked then Data:=Data or 16; if CheckBox6.Checked then Data:=Data or 32; if CheckBox7.Checked then Data:=Data or 64; if CheckBox8.Checked then Data:=Data or 128;
LPTXP1.Data:=Data;end;
procedure TForm1.FormCreate(Sender: TObject);begin
LPTXP1.Data:=255; LoadBin(ExtractFilePath(ParamStr(0))+'def.bin');
end;
procedure TForm1.RunClick(Sender: TObject);var Action:boolean;
const ButtonCaption:array[False..True]of string[5]=('Stop','Run');begin
Action:=Run.Caption='Stop'; Run.Caption:=ButtonCaption[Action];
CheckBox1.Enabled:=Action; CheckBox2.Enabled:=Action; CheckBox3.Enabled:=Action; CheckBox4.Enabled:=Action; CheckBox5.Enabled:=Action; CheckBox6.Enabled:=Action; CheckBox7.Enabled:=Action; CheckBox8.Enabled:=Action; Timer1.Enabled:=not Action;
BinFile.Enabled:=Action; if Action then ChangePort(self);
end;
procedure TForm1.Timer1Timer(Sender: TObject);label Start;
beginStart:
if Rpt=0 then begin
Rpt:=BINX[CodePosition];
if Rpt=0 then // begin
CodePosition:=0; goto Start;
end; inc(CodePosition);
PositionX:=CodePosition; Jml:=BINX[CodePosition];
inc(CodePosition); end;
if Jml=0 then begin
CodePosition:=PositionX; Jml:=BINX[CodePosition];
inc(CodePosition); dec(Rpt);
if Rpt=0 then begin
CodePosition:=CodePosition+Jml; goto Start;
end; end;
LPTXP1.Data:=BINX[CodePosition];
inc(CodePosition); dec(Jml);
end;
procedure TForm1.LoadBIN(FileName:string);var F:File of byte;
R:integer;begin
CodePosition:=0; Rpt:=0; Jml:=0;
Run.Enabled:=False; {$I-}
AssignFile(F,FileName); FileMode := 0;
Reset(F); {$I+}
if (IOResult = 0)then begin
BinLength:=FileSize(F); Run.Enabled:=BinLength>0; SetLength(BINX,BinLength);
BlockRead(F,BINX[0],BinLength,R); CloseFile(F);
end;end;
procedure TForm1.BinFileClick(Sender: TObject);begin
if OpenDialog1.Execute then LoadBIN(OpenDialog1.FileName);end;
end.
Keterangan:Kode di atas merupakan source code dari komunikasi parallel, kode di atas ditulis pada Delphi.Sebelum data dikirimkan terlebih dahulu dihubungkan dua buah PC melalui port Parallel masing-masing PC. Sedangkan untuk tata cara pengiriman hampir sama dengan komunikasi serial tinggal input karakter lalu tekan ditombol send. Dan untuk handshakingnya diaktifkan pada komunikasi serial.