Selasa, 29 April 2014

Teknik Antar Muka Laporan




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