Komponen
untuk Komunikasi Serial
Tujuan
•
Mahasiswa mampu
menggunakan mengantarmukakan serial port PC dengan mikrokontroller.
•
Mahasiswa mampu membuat
aplikasi menggunakan Borland Delphi untuk komunikasi serial.
Dasar
Teori
Program
interface dengan komputer bisa dilakukan dengan banyak cara salah satunya
secara serial. Transfer data secara serial berarti juga data dikirim dari
devais luar misalnya mikrokontroller ke komputer secara serial dengan standard
yang telah ditentukan. Data dikirim per 8 bit dengan bit star dan bit stop bisa
juga ditambahkan parity.
Pembuatan
program interface untuk komunikasi serial dapat dilakukan dengan menggunakan
Delphi 7 sebagai GUI nya. Delphi 7 tidak mempunyai package serial sehingga
package untuk komunikasi serial perlu di-install terlebih dahulu. Salah satu
komponen/package komunikasi serial untuk delphi adalah Cport. Setelah
menginstall serial package maka akan muncul CportLib tab dengan komponen
seperti dibawah ini:
1.Program
Mengirim Data
Untuk
mengirim data maka perlu dipersiapkan sebuah variabel yang bertipe string atau
integer. Untuk memulai proses pengiriman data maka com serial harus dibuka atau
dikoneksikan terlebih dahulu dengan delphinya. Adapun program transmit data seperti yang terlihat dibawah:
Maksud
program: comport1.Open → open koneksi
delphi dengan com serial komputer comport1.WriteStr(str) → transfer data
string
2.Program
Menerima Data
Untuk
membuat program menerima data dapat dilihat pada gambar dibawah:
maksud
Program:
comport1.ReadStr(str5,count)
→ menerima data dari luar dan dipindahkan ke
variabel
str5 yang bertipe string.
Alat
dan Bahan
•
1 buah modul
mikrokontroller
•
1 buah downloader
mikrokontroller
•
1 buah kabel serial
•
1 unit catu daya
Prosedur
Percobaan 1
Buat Program
untuk Mikrokontroller
a.
Hubungkan modul
Mikrokontroller dengan PC seperti gambar 1.
b.
Hubungkan modul
downloader dengan modul Mikrokontroller dan PC
c.
Atur setting komunikasi
serial.
d.
Ketik, compile dan
donwload program1
Gambar
1. Rangkaian Percobaan

unsigned
char data_rx;
void
main()
{
while
(1)
{
data_rx=getchar(); //terima data dari komputer printf("%c",data_rx); //kirim kembali data ke komputer
}
}
Buat Program
untuk PC
1.
Buatlah program seperti
berikut :
Gambar
2. Tampilan Rancangan Software
2. Komponen/Objek
yang digunakan dan pengaturan propertiesnya adalah :
|
Komponen
|
Properti
|
Nilai Properti
|
|
Label1
|
Caption
|
Karakter yg dikirim
|
|
Label2
|
Caption
|
Karakter yg diterima
|
|
Label3
|
Caption
|
|
|
Edit1
|
Text
|
Edit1
|
|
Button1
|
Caption
|
Kirim
|
3.
Masukkan
perintah-perintah pada kejadian/event disetiap komponen di bawah ini.
|
Nama
Komponen
|
Event
|
Perintah
|
|
Form1
|
onCreate
|
procedure
TForm1.FormCreate(Sender: TObject); begin
comport1.Close;
comport1.ShowSetupDialog; comport1.Open;
end;
|
|
Form1
|
onClose
|
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction); begin
comport1.Close; end;
|
|
Button1
|
onClick
|
procedure TForm1.Button1Click(Sender:
TObject); begin
label3.Caption:='';
comport1.WriteStr(edit1.Text); end;
|
|
Comport1
|
onRxChar
|
procedure TForm1.ComPort1RxChar(Sender:
TObject; Count: Integer); var str1: string; begin comport1.ReadStr(str1,count); label3.Caption:=label3.Caption+str1; end;
|
4. Jalankan
system kemudian beri masukan pada edit1 sesuai dengan tabel.
Tekan
button Kirim.
|
No
|
Karakter
di Edit1
|
Tampilan
di label3
|
|
1
|
COBA
|
COBA
|
|
2
|
TEST
|
TEST
|
|
3
|
OKE
|
OKE
|
|
4
|
SUKSES
|
SUKSES
|
|
5
|
SERIAL
|
SERIAL
|
Data
Hasil dan Pembahasan
1.
Data
Progam pada delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CPort;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
ComPort1: TComPort;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var
Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure ComPort1RxChar(Sender: TObject;
Count: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
TForm1.FormCreate(Sender: TObject);
begin
comport1.Close;
comport1.ShowSetupDialog;
comport1.Open;
end;
procedure
TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comport1.Close;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
label3.Caption:='';
comport1.WriteStr(edit1.Text);
end;
procedure
TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var str1:
string;
begin
comport1.ReadStr(str1,count);
label3.Caption:=label3.Caption+str1;
end;
end.
1.1
Data
progam pada AVR
/*****************************************************
This program was
produced by the
CodeWizardAVR
V2.05.0 Professional
Automatic
Program Generator
© Copyright
1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 19/03/2014
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8535
Program
type : Application
AVR Core Clock
frequency: 4,000000 MHz
Memory
model : Small
External RAM
size : 0
Data Stack
size : 128
*****************************************************/
#include <mega8535.h>
// Standard
Input/Output functions
#include
<stdio.h>
// Declare your
global variables here
unsigned char data_rx;
void main(void)
{
// Declare your
local variables here
// Input/Output
Ports initialization
// Port A
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter
0 initialization
// Clock source:
System Clock
// Clock value:
Timer 0 Stopped
// Mode: Normal
top=0xFF
// OC0 output:
Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter
1 initialization
// Clock source:
System Clock
// Clock value:
Timer1 Stopped
// Mode: Normal
top=0xFFFF
// OC1A output:
Discon.
// OC1B output:
Discon.
// Noise
Canceler: Off
// Input Capture
on Falling Edge
// Timer1
Overflow Interrupt: Off
// Input Capture
Interrupt: Off
// Compare A
Match Interrupt: Off
// Compare B
Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter
2 initialization
// Clock source:
System Clock
// Clock value:
Timer2 Stopped
// Mode: Normal
top=0xFF
// OC2 output:
Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External
Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
//
Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART
initialization
// Communication
Parameters: 8 Data, 1 Stop, No Parity
// USART
Receiver: On
// USART
Transmitter: On
// USART Mode:
Asynchronous
// USART Baud
Rate: 19200
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
// Analog
Comparator initialization
// Analog
Comparator: Off
// Analog
Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC
initialization
// ADC disabled
ADCSRA=0x00;
// SPI
initialization
// SPI disabled
SPCR=0x00;
// TWI
initialization
// TWI disabled
TWCR=0x00;
while (1)
{
// Place your code here
data_rx=getchar(); //terima data dari komputer
printf("%c",data_rx); //kirim kembali data ke komputer
}
}
2.
Gambar
Percobaan


Pembahasan
a.
Percobaan 1
Pada
percobaan 1, data di inputkan oleh user melalui keyboard PC berupa
huruf(karakter) dengan kontrol program delphi. Saat proses pengiriman data,
terjadi perpindahan data dari komputer dengan kontrol program Delphi menuju ke
mikrokontroller . Kemudian data dikirim kembali ke komputer itu sendiri melalui
port serial dalam bentuk display program Delphi pada PC.
Proses inti pada program mikrokontroller
terletak pada baris program :
while (1)
{
data_rx=getchar();
//terima data dari
komputer
printf("%c",data_rx);
//kirim kembali data ke
komputer
};
Secara garis
besar baris program di atas berfungsi menerima data yang di inputkan dari keyboard komputer melalui
komunikasi rx yang kemudian dideklarasikan dengan kode program data_rx=getchar();. Setelah data_rx diterima kemudian ditampilkan lagi ke
komputer dengan kode program printf("\n
keyboard:%c",data_rx);, setelah itu
data akan ditampilkan pada label 3 dalam program Delphi.
Proses inti pada program Delphi terletak
pada baris program :
procedure TForm1.ComPort1RxChar(Sender: TObject;
Count: Integer);
var str1: string;
begin
comport1.ReadStr(str1,count);
label3.Caption:=label3.Caption+str1;
end;
Program ComPort1 berfungsi sebagai koneksi dari Delphi ke mikrokontrol,
sehingga data dari mikrokontrol dapat ditampilan melalui label 3 pada Delphi.
procedure
TForm1.Button1Click(Sender: TObject);
begin
label3.Caption:='';
comport1.WriteStr(edit1.Text);
end;
Program tombol berfungsi sebagai perintah pengiriman data dari
edit 1 pada Delphi ke mikrokontrol dan akan ditampikan kembali melalui label 3
pada program Delphi.
b.
Percobaan 2
Pada percobaan 2, User menginputkan data
dari toggle berupa angka biner yang nantinya akan dikonversi menjadi bilangan
decimal oleh program Delphi. Proses pengkonversian ini terjadi karena data yang
digunakan adalah data integer yang berupa bilangan dan akan ditampilkan melalui
program Delphi. Pada program Delphi terdapat komponen timer yang berfungsi
untuk mengatur waktu pengiriman dan penerimaan agar sesuai dan bisa di amati
oleh user.
Misal kita mengirim atau mengatur toggle 00001111 maka
tampilan program delphi akan muncul angka desimal 15.
Proses inti pada program mikrokontroller
terletak pada baris program :
unsigned
int Z; //tipe data yang digunakan berupa
angka integer berveriabel Z
void
main() //delarasi utama program
{
while (1)
{
Z=PINB; // PIN B sebagai input yang di pull up
(toggle) dalam bentuk biner yang akan di konversi ke desimal (Z data integer)
printf("%3d
\n",(int)Z); //mencetak hasil konversi yang ditampilkan pada program
hypertermina melalui prt serial
delay_ms(500); //jeda waktu ketika perulangan munculnya angka
desimal
};
Secara garis
besar, program di atas befungsi menerima inputan dari port B, dimana port B
terhubung dengan toggle switch yang nantinya
akan diberi
inputan berupa bilangan biner. Kemudian data ditampilkan kembali ke komputer melalui hyperterminal
dengan bentuk bilangan desimal. Perubahan tampilan ini hampir sama fungsinya
dengan konversi biner ke desimal, tetapi di program ini hanya menggunakan “Z=PINB;” yang digunakan seolah olah
sebagai konversi dari biner ke desimal. Kemudian ada program “delay_ms” pada mikrokontroller dan pada Delphi juga terdapat komponen timer yang menjadikan tampilan
pada hyperterminal akan berulang terus menerus sampai koneksi komunikasi serialnya dilepas atau softwere hyperterminal dikeluarkan, dengan waktu tunda pergerakan datanya dapat disetting pada
program. Pengaturan ini dimaksudkan
supaya waktu pengiriman dan penerimaan data sesuai.
Proses inti pada program Delphi terletak
pada baris program :
procedure
TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var str1: string;
begin
comport1.ReadStr(str1,count);
tampung:=tampung+str1;
label2.Caption:=tampung;
end;
Kode program ini berfungsi
sebagai koneksi dari Mikrokontrol ke Delphi, sehingga data biner yang dikirim
dari mikrokontrol melalui toggle switch dapat ditampilkan melalui label 2 pada
Delphi.
Kesimpulan
Pada
percobaan yang telah dilakukan, dapat di simpulkan bahwa terjadi proses pengiriman dan penerimaan
data antara PC(Program Delphi) dengan Mikrokontroller(Program CV AVR).
Pada
program pertama data berupa huruf(karakter) di input melalui program delphi
yang telah di buat, kemudian di dikirim ke mikrokontroller dan di proses oleh
program mikro. Kemudian data di kirim kembali melaui port serial dan
ditampilkan kedalam program delphi yang telah di buat. Misal kita masukkan atau
mengetik kata “test” pada
aplikasi delphi maka pada program delpi”data yang di terima” akan muncul kata test.
Pada
percobaan 2, User menginputkan data dari toggle berupa angka biner yang
nantinya akan dikonversi menjadi bilangan decimal oleh program Delphi. Proses
pengkonversian ini terjadi karena data yang digunakan adalah data integer yang
berupa bilangan dan akan ditampilkan melalui program Delphi. Pada program
Delphi terdapat komponen timer yang berfungsi untuk mengatur waktu pengiriman
dan penerimaan agar sesuai dan bisa di amati oleh user. Misal kita mengirim
atau mengatur toggle 00001111
maka tampilan program delphi akan muncul angka desimal 15.
Daftar Rujukan
Ari E.Z, Ilham. 2009. Jobsheet Mata
Kuliah Praktikum Antarmuka Komputer. Malang : Teknik Elektro - FT -
Universitas Negeri Malang
Raharjo, Budi dan Joni, I Made. 2006. Pemrograman
C dan Implementasinya. Bandung : Informatika Bandung
Ari E.Z, Ilham, dkk. 2012. Teknik
Antarmuka. Malang : Teknik Elektro - FT - Universitas Negeri Malang
Prosedur Percobaan 2
a.
Hubungkan modul
Mikrokontroller dengan PC seperti gambar 3.
b.
Hubungkan modul
downloader dengan modul Mikrokontroller dan PC
c.
Atur setting komunikasi
serial dan I/O.
d.
Ketik, compile dan
donwload program2

|
unsigned
int Z;
void
main()
{
while (1)
{
Z=PINB;
printf("%3d \n",(int)Z); delay_ms(500);
}
}
|
Buat Program
untuk PC
1. Buatlah
program seperti berikut :
Gambar
4. Tampilan Rancangan Software
2. Komponen/Objek
yang digunakan dan pengaturan propertiesnya adalah :
|
Komponen
|
Properti
|
Nilai Properti
|
|
Label1
|
Caption
|
Data yg diterima
|
|
Label2
|
Caption
|
0
|
3. Masukkan
perintah-perintah pada kejadian/event disetiap komponen di bawah ini.
|
Nama
Komponen
|
Event
|
Perintah
|
|
Form1
|
onCreate
|
procedure
TForm1.FormCreate(Sender: TObject); begin
comport1.Close; comport1.ShowSetupDialog; comport1.Open;
end;
|
|
Form1
|
onClose
|
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction); begin
comport1.Close; end;
|
|
Comport1
|
onRxChar
|
procedure TForm1.ComPort1RxChar(Sender:
TObject; Count: Integer); var str1: string; begin
label2.Caption:=''; comport1.ReadStr(str1,count); label2.Caption:=str1;
end;
|
4. Jalankan
system kemudian beri masukan dengan tombol sesuai dengan tabel. Baca tampilan
di dalam program yang telah dibuat.
|
No
|
Konfigurasi
Tombol
|
Nilai
tampilan di Program
|
|
1
|
00001111
|
207
|
|
2
|
11110000
|
240
|
|
3
|
00110011
|
243
|
|
4
|
11001100
|
204
|
|
5
|
01010101
|
213
|
Data
Hasil dan Pembahasan
1.
Data
Progam pada delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, CPort, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
ComPort1: TComPort;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var
Action: TCloseAction);
procedure ComPort1RxChar(Sender: TObject;
Count: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Label2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
tampung:string;
implementation
{$R *.dfm}
procedure
TForm1.FormCreate(Sender: TObject);
begin
comport1.Close;
comport1.ShowSetupDialog;
comport1.Open;
end;
procedure
TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comport1.Close;
end;
procedure
TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var str1:
string;
begin
comport1.ReadStr(str1,count);
tampung:=tampung+str1;
label2.Caption:=tampung;
end;
procedure
TForm1.Timer1Timer(Sender: TObject);
begin
tampung:='';
end;
procedure
TForm1.Label2Click(Sender: TObject);
begin
end;
end.
1.1
Data
Progam pada AVR
/*****************************************************
This program was
produced by the
CodeWizardAVR
V2.05.0 Professional
Automatic
Program Generator
© Copyright
1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 19/03/2014
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8535
Program type : Application
AVR Core Clock
frequency: 4,000000 MHz
Memory
model : Small
External RAM
size : 0
Data Stack
size : 128
*****************************************************/
#include
<mega8535.h>
// Standard
Input/Output functions
#include
<stdio.h>
#include
<delay.h>
// Declare your
global variables here
unsigned int Z;
void main(void)
{
// Declare your
local variables here
// Input/Output
Ports initialization
// Port A
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P
State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTB=0xFF;
DDRB=0x00;
// Port C
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D
initialization
// Func7=In
Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter
0 initialization
// Clock source:
System Clock
// Clock value:
Timer 0 Stopped
// Mode: Normal
top=0xFF
// OC0 output:
Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter
1 initialization
// Clock source:
System Clock
// Clock value:
Timer1 Stopped
// Mode: Normal
top=0xFFFF
// OC1A output:
Discon.
// OC1B output:
Discon.
// Noise
Canceler: Off
// Input Capture
on Falling Edge
// Timer1
Overflow Interrupt: Off
// Input Capture
Interrupt: Off
// Compare A
Match Interrupt: Off
// Compare B
Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter
2 initialization
// Clock source:
System Clock
// Clock value:
Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output:
Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External
Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
//
Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART
initialization
// Communication
Parameters: 8 Data, 1 Stop, No Parity
// USART
Receiver: On
// USART
Transmitter: On
// USART Mode:
Asynchronous
// USART Baud
Rate: 19200
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
// Analog
Comparator initialization
// Analog
Comparator: Off
// Analog
Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC
initialization
// ADC disabled
ADCSRA=0x00;
// SPI
initialization
// SPI disabled
SPCR=0x00;
// TWI
initialization
// TWI disabled
TWCR=0x00;
while (1)
{
// Place your code here
Z=PINB;
printf("%3d \n",(int)Z);
delay_ms(500);
}
}
2.
Gambar
Percobaan






Pembahasan
c.
Percobaan 1
Pada
percobaan 1, data di inputkan oleh user melalui keyboard PC berupa
huruf(karakter) dengan kontrol program delphi. Saat proses pengiriman data,
terjadi perpindahan data dari komputer dengan kontrol program Delphi menuju ke
mikrokontroller . Kemudian data dikirim kembali ke komputer itu sendiri melalui
port serial dalam bentuk display program Delphi pada PC.
Proses inti pada program mikrokontroller
terletak pada baris program :
while (1)
{
data_rx=getchar();
//terima data dari
komputer
printf("%c",data_rx);
//kirim kembali data ke
komputer
};
Secara garis
besar baris program di atas berfungsi menerima data yang di inputkan dari keyboard komputer melalui
komunikasi rx yang kemudian dideklarasikan dengan kode program data_rx=getchar();. Setelah data_rx diterima kemudian ditampilkan lagi ke
komputer dengan kode program printf("\n
keyboard:%c",data_rx);, setelah itu
data akan ditampilkan pada label 3 dalam program Delphi.
Proses inti pada program Delphi terletak
pada baris program :
procedure TForm1.ComPort1RxChar(Sender: TObject;
Count: Integer);
var str1: string;
begin
comport1.ReadStr(str1,count);
label3.Caption:=label3.Caption+str1;
end;
Program ComPort1 berfungsi sebagai koneksi dari Delphi ke mikrokontrol,
sehingga data dari mikrokontrol dapat ditampilan melalui label 3 pada Delphi.
procedure
TForm1.Button1Click(Sender: TObject);
begin
label3.Caption:='';
comport1.WriteStr(edit1.Text);
end;
Program tombol berfungsi sebagai perintah pengiriman data dari
edit 1 pada Delphi ke mikrokontrol dan akan ditampikan kembali melalui label 3
pada program Delphi.
d.
Percobaan 2
Pada percobaan 2, User menginputkan data
dari toggle berupa angka biner yang nantinya akan dikonversi menjadi bilangan
decimal oleh program Delphi. Proses pengkonversian ini terjadi karena data yang
digunakan adalah data integer yang berupa bilangan dan akan ditampilkan melalui
program Delphi. Pada program Delphi terdapat komponen timer yang berfungsi
untuk mengatur waktu pengiriman dan penerimaan agar sesuai dan bisa di amati
oleh user.
Misal kita mengirim atau mengatur toggle 00001111 maka
tampilan program delphi akan muncul angka desimal 15.
Proses inti pada program mikrokontroller
terletak pada baris program :
unsigned
int Z; //tipe data yang digunakan berupa
angka integer berveriabel Z
void
main() //delarasi utama program
{
while (1)
{
Z=PINB; // PIN B sebagai input yang di pull up
(toggle) dalam bentuk biner yang akan di konversi ke desimal (Z data integer)
printf("%3d
\n",(int)Z); //mencetak hasil konversi yang ditampilkan pada program
hypertermina melalui prt serial
delay_ms(500); //jeda waktu ketika perulangan munculnya angka
desimal
};
Secara garis
besar, program di atas befungsi menerima inputan dari port B, dimana port B
terhubung dengan toggle switch yang nantinya
akan diberi
inputan berupa bilangan biner. Kemudian data ditampilkan kembali ke komputer melalui
hyperterminal dengan bentuk bilangan desimal. Perubahan tampilan ini hampir
sama fungsinya dengan konversi biner ke desimal, tetapi di program ini hanya menggunakan
“Z=PINB;” yang digunakan seolah
olah sebagai konversi dari biner ke desimal. Kemudian ada program “delay_ms” pada mikrokontroller dan pada Delphi juga terdapat komponen timer yang menjadikan tampilan
pada hyperterminal akan berulang terus menerus sampai koneksi komunikasi serialnya dilepas atau softwere hyperterminal dikeluarkan, dengan waktu tunda pergerakan datanya dapat disetting pada
program. Pengaturan ini dimaksudkan
supaya waktu pengiriman dan penerimaan data sesuai.
Proses inti pada program Delphi terletak
pada baris program :
procedure
TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var str1: string;
begin
comport1.ReadStr(str1,count);
tampung:=tampung+str1;
label2.Caption:=tampung;
end;
Kode program ini berfungsi
sebagai koneksi dari Mikrokontrol ke Delphi, sehingga data biner yang dikirim
dari mikrokontrol melalui toggle switch dapat ditampilkan melalui label 2 pada
Delphi.
Kesimpulan
Pada
percobaan yang telah dilakukan, dapat di simpulkan bahwa terjadi proses pengiriman dan penerimaan
data antara PC(Program Delphi) dengan Mikrokontroller(Program CV AVR).
Pada
program pertama data berupa huruf(karakter) di input melalui program delphi
yang telah di buat, kemudian di dikirim ke mikrokontroller dan di proses oleh
program mikro. Kemudian data di kirim kembali melaui port serial dan
ditampilkan kedalam program delphi yang telah di buat. Misal kita masukkan atau
mengetik kata “test” pada
aplikasi delphi maka pada program delpi”data yang di terima” akan muncul kata test.
Pada
percobaan 2, User menginputkan data dari toggle berupa angka biner yang
nantinya akan dikonversi menjadi bilangan decimal oleh program Delphi. Proses
pengkonversian ini terjadi karena data yang digunakan adalah data integer yang
berupa bilangan dan akan ditampilkan melalui program Delphi. Pada program
Delphi terdapat komponen timer yang berfungsi untuk mengatur waktu pengiriman
dan penerimaan agar sesuai dan bisa di amati oleh user. Misal kita mengirim
atau mengatur toggle 00001111
maka tampilan program delphi akan muncul angka desimal 15.
Daftar Rujukan
Ari E.Z, Ilham. 2009. Jobsheet Mata
Kuliah Praktikum Antarmuka Komputer. Malang : Teknik Elektro - FT -
Universitas Negeri Malang
Raharjo, Budi dan Joni, I Made. 2006. Pemrograman
C dan Implementasinya. Bandung : Informatika Bandung
Tidak ada komentar:
Posting Komentar