Post on 20-Jan-2016
description
LAPORAN AKHIR MATA KULIAH KOMPUTERISASI ELEKTROMEDIK
SERIAL INTERFACE MICROCONTROLER ATMEGA8535KE PC MENGGUNAKAN APLIKASI GRAFIK DELPHI
Disusun Oleh
Adia Cahya Purnama NPM.140403070002Arief Yulianto NPM.140403070003Krestiono Dwi Nugroho NPM.140403070004Andi Royhan Alby NPM.140403070010Ega Oktaviani NPM.140403070012Devi Sulistiono NPM.140403070013
PROGRAM STUDI FISIKA TERAPANJURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAMUNIVERSITAS PADJADJARAN
BANDUNG2010
LEMBAR PENGESAHANLAPORAN AKHIR
MATA KULIAH KOMPUTERISASI ELEKTROMEDIKSERIAL INTERFACE MICROCONTROLER ATMEGA8535
KE PC MENGGUNAKAN APLIKASI GRAFIK DELPHI
NILAI Bandung,12 Februari 2009
Asisten : ……………………
INTISAI PERCOBAAN
Port serial sering digunakan untuk interfacing komputer dan
mikrokontroler, karena kemampuan jarak pengiriman data dibandingkan port
parallel. Sistem transmisi sinyal RS232 menggunakan level tegangan dengan
respek to system common (power ground). Dalam setiap proses transfer data
serial, RS232 memerlukan sebuah Data Terminal Equipment (DTE) dan Data
Communication Equipment (DCE) pada masing-masing terminal. Pengiriman
data dilakukan secara bit per bit. Kecepatan transfer data harus sama antara
pengirim dan penerima, jika tidak sama akan terjadi overflow.
Mikrokontroler adalah sebuah sistem mikroprosesor lengkap yang
terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor
serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler
Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai
contoh: ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal input
dapat dinyatakan dalam 255 (2n – 1) nilai diskrit. ADC 12 bit memiliki 12 bit
output data digital, ini berarti sinyal input dapat dinyatakan dalam 4096 nilai
diskrit. Dari contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil
konversi yang jauh lebih baik daripada ADC 8 bit.
Pada praktkum ini, akan dijelaskan tentang serial interfacing
microcontroller ATAMEGA 8535 ke Komputer. Pemrograman dan interfacing ini
pada dasarnya hampir sama dengan pemrograman dan prinsip kerja
elektrokardiograf. Teknik interface yang digunakan adalah melakukan
pengiriman data 8 bit lewat ADC internal yang dikonversi dalam bentuk karakter
angka.
DAFTAR ISI
LEMBAR PENGESAHAN i
INTISARI 1
DAFTAR ISI 2
TUJUAN 3
ALAT PERCOBAAN 3
TINJAUAN PUSTAKA 3
PROSEDUR PERCOBAAN 23
HASIL PERCOBAAN 23
ANALISA 24
KESIMPULAN 26
DAFTAR PUSTAKA 27
SERIAL INTERFACE MICROCONTROLER
ATMEGA 8535 KE PC
DENGAN APLIKASI GRAFIK DELPHI
I. TUJUAN
1. Melakukan serial interface microcontroller ATMEGA 88535 ke PC
2. Membuat pemrograman pengiriman data 8 bit dalam bentuk
karakter
3. Sebagai dasar interface aplikasi elektrokardiograf berbasis PC.
II. ALAT PERCOBAAN
1. Sistem minimum ATMEGA 8535
2. RS232 Converter
3. AVR Downloader
4. Kabel Penghubung
5. Potensiometer
6. Personal computer dengan program Code Vision AVR dan Delphi
7
7. Power Suply
III. TINJAUAN PUSTAKA
Pemrograman Port Serial Komputer
Port serial sering digunakan untuk interfacing komputer dan
mikrokontroler, karena kemampuan jarak pengiriman data dibandingkan port
paralel. Berikut contoh program assembly untuk komunikasi serial antara 2 PC.
Untuk komunikasi ini, anda cukup menghubungkan :
1. Pin TxD ke pin RxD computer lain
2. Pin RXD dihubungkan ke pin TxD komputer lain
3. RTS dan CTS dihubung singkat
4. DSR dan DTR dihubung singkat
5. GND dihubungkan ke GND komputer lain
Sistem transmisi sinyal RS232 menggunakan level tegangan dengan
respek to system common (power ground). Tipe ini bagus untuk komunikasi data
secara satu – satu (point to point communications). RS232 port pada PC hanya
diperuntukkan untuk satu alat ( single device).Misal: Com1 digunakan untuk
mouse port sedangkan Com2 digunakan untuk modem. Syarat sinyal RS232 dapat
berfungsi adalah dengan hubungan ke ground antara PC dengan alat (commond
ground). Jarak maksimal jalur komunikasi sangat terbatas hanya 100 / 200 kaki
untuk komunikasi data secara asinkron dan hanya 50 kaki untuk komunikasi
sinkron. Kecepatan transfer data RS232 cukup rendah, kecepatan maksimal
hanya 19200 bits/detik. Singkatnya, RS232 hanya untuk komunikasi area lokal
dan hanya untuk satu driver dan satu receiver. RS232 pada PC mempunyai dua
jenis konektor, yaitu konektor dengan 25 Pin (DB25) dan konektor dengan 9 Pin
(DB9). Pada dasarnya hanya 3 pin yang terpakai, yaitu pin kirim, pin terima dan
ground.
Dalam setiap proses transfer data serial, RS232 memerlukan sebuah Data
Terminal Equipment (DTE) dan Data Communication Equipment (DCE)
pada masing-masing terminal. Pengiriman data dilakukan secara bit per bit.
Kecepatan transfer data harus sama antara pengirim dan penerima, jika tidak
sama akan terjadi overflow. Kecepatan transmisi transfer data sering disebut
dengan baudrate. Panjang data bit yang sering digunakan diantaranya adalah 4,
5, 6, 7, dan 8 bit.
Mikrokontroler adalah sebuah sistem mikroprosesor lengkap yang
terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor
serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler
umumnya telah berisi komponen pendukung sistem minimal mikroprosesor,
yakni memori dan antarmuka I/O.
Mikrokontroller AVR memiliki arsitektur RISC 8 Bit, sehingga semua
instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi
dieksekusi dalam satu siklus instruksi clock. Dan ini sangat membedakan sekali
dengan instruksi MCS-51 (Berarsitektur CISC) yang membutuhkan siklus 12
clock. RISC adalah Reduced Instruction Set Computing sedangkan CISC adalah
Complex Instruction Set Computing.
Deskripsi Mikrokontroller ATmega8535
VCC (power supply)
GND (ground)
Port A (PA7..PA0)
Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga
berfungsi sebagai suatu Port I/O 8-bit dua arah, jika A/DKonverter tidak
digunakan. Pin - pin Port dapat menyediakanresistor internal pull-up (yang
dipilih untuk masing-masing bit).Port A output buffer mempunyai karakteristik
gerakan simetrisdengan keduanya sink tinggi dan kemampuan sumber. Ketika
pinPA0 ke PA7 digunakan sebagai input dan secara eksternal ditarikrendah, pin –
pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pin
Port A adalah tri-stated manakalasuatu kondisi reset menjadi aktif, sekalipun
waktu habis.
Port B (PB7..PB0)
Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internalpull-up
(yang dipilih untuk beberapa bit). Port B output buffermempunyai karakteristik
gerakan simetris dengan keduanya sinktinggi dan kemampuan sumber. Sebagai
input, pin port B yangsecara eksternal ditarik rendah akan arus sumber jika
resistor pullupdiaktifkan. Pin Port B adalah tri-stated manakala suatu kondisi
reset menjadi aktif, sekalipun waktu habis.
Port C (PC7..PC0)
Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internalpull-up
(yang dipilih untuk beberapa bit). Port C output buffermempunyai karakteristik
gerakan simetris dengan keduanya sinktinggi dan kemampuan sumber. Sebagai
input, pin port C yangsecara eksternal ditarik rendah akan arus sumber jika
resistor pullupdiaktifkan. Pin Port C adalah tri-stated manakala suatu kondisi
reset menjadi aktif, sekalipun waktu habis.
Port D (PD7..PD0)
Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internalpull-up
(yang dipilih untuk beberapa bit). Port D output buffermempunyai karakteristik
gerakan simetris dengan keduanya sinktinggi dan kemampuan sumber. Sebagai
input, pin port D yangsecara eksternal ditarik rendah akan arus sumber jika
resistor pullupdiaktifkan. Pin Port D adalah tri-stated manakala suatu kondisi
reset menjadi aktif, sekalipun waktu habis
RESET (Reset input)
XTAL1 (Input Oscillator)
XTAL2 (Output Oscillator) AVCC adalah pin penyedia tegangan untuk
port A dan A/D Konverter
AREF adalah pin referensi analog untuk A/D konverter.
Port Sebagai Input / Output Digital
ATmega8535 mempunyai empat buah port yang bernama PortA, PortB,
PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan
pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn,
PORTxn, dan PINxn. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’
mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn
terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.
Bit DDxn dalam regiter DDRx (Data Direction Register) menentukan arah pin. Bila
DDxn diset 1 maka Px berfungsi sebagai pin output.
Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset
1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan
diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin
dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset.
Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin
port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi
sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port
dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1,
PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled
(DDxn=0, PORTxn=1)atau kondisi output low (DDxn=1, PORTxn=0). Biasanya,
kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan
impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high
driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada
register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port.
Peralihan dari kondisi input dengan pull-up ke kondisi output low juga
menimbulkan masalah yang sama. Maka harus menggunakan kondisi tri-state
(DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai
kondisi transisi. Lebih detil mengenai port ini dapat dilihat pada manual
datasheet dari IC ATmega8535.
ADC (Analog to Digital Convertion)
ADC (Analog to Digital Converter) adalah salah satu fasilitas
mikrokontroller ATMEGA8535 yang berfungsi untuk mengubah data analog
menjadi data digital. ADC memiliki 2 karakter prinsip, yaitu kecepatan sampling
dan resolusi. Kecepatan sampling suatu ADC menyatakan seberapa sering sinyal
analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu.
Kecepatan sampling biasanya dinyatakan dalam sample per second (SPS).
Gambar ADC dengan kecepatan sampling rendah dan kecepatan sampling tinggi
Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai
contoh: ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal input
dapat dinyatakan dalam 255 (2n – 1) nilai diskrit. ADC 12 bit memiliki 12 bit
output data digital, ini berarti sinyal input dapat dinyatakan dalam 4096 nilai
diskrit. Dari contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil
konversi yang jauh lebih baik daripada ADC 8 bit.
Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk
besaran yang merupakan rasio perbandingan sinyal input dan tegangan
referensi. Sebagai contoh, bila tegangan referensi 5 volt, tegangan input 3 volt,
rasio input terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit
dengan skala maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 =
153 (bentuk decimal) atau 10011001 (bentuk biner).
ADC pada ATMEGA8535 adalah jenis 10 bit successive approximation
dengan tegangan referensi maksimum 5 volt. Pada universal board M.B.3.2
tegangan referensi dibuat fix tidak dapat diubah yaitu 5 volt yang diambil dari
tegangan sumber (Vcc). Register-register yang harus di setting adalah ADMUX,
ADCSRA, dan SFIOR.
Pada praktkum ini, akan dijelaskan tentang serial interfacing
microcontroller ATAMEGA 8535 ke Komputer. Pemrograman dan interfacing ini
pada dasarnya hampir sama dengan pemrograman dan prinsip kerja
elektrokardiograf. Teknik interface yang digunakan adalah melakukan
pengiriman data 8 bit lewat ADC internal yang dikonversi dalam bentuk karakter
angka. Seperti misalnya untuk data 8 bit 00000000 akan ditampilkan dalam
bentuk angka 4 digit 0000 dan nilai maksimum 11111111 akan ditampilkan
dalam bentuk karakter 4 bit 1023.
Prinsip kerjanya hampir sama dengan pembuatan elektrokardiograf
hanya berbeda perangkat keras dan masukan sinyalnya. Pada interfacing
mikrokontroler ini menggunakan masukan internal yang diatur menggunakan
ADC internal di port A. Sedangkan pada elektrokardiograf diberikan
penambahan hardware sebagai tambahan untuk penyadapan sinyal input dari
kelistrikan jantung.
Port yang digunakan untuk pengaturan inputan sinyal adalah PORT A.
Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga berfungsi
sebagai suatu Port I/O 8-bit dua arah, jika A/DKonverter tidak digunakan. Pin -
pin Port dapat menyediakanresistor internal pull-up (yang dipilih untuk masing-
masing bit).Port A output buffer mempunyai karakteristik gerakan
simetrisdengan keduanya sink tinggi dan kemampuan sumber. Ketika pinPA0 ke
PA7 digunakan sebagai input dan secara eksternal ditarikrendah, pin – pin akan
memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pin Port A
adalah tri-stated manakalasuatu kondisi reset menjadi aktif, sekalipun waktu
habis. Berikut Gambar Rangkaian dan Blok diagram Interface microcontroller
ATMEGA 8535.
Gambar Schematic dan layout PCBSistem Minimum ATMEG 8535
Gambar RS232 Converter
Sistem Kerja Interface Microcontroler ATMEGA 8535
Pada gambar blok Diagram Interface, pada awalnya system minimum
microcontroller ATMEGA 8535 Dihubungkan dengan Downloader dan RS232
Converter. Setelah Itu Downloader Dihubungkan dengan port parallel
computer sedangkan RS232 converter ke port serial computer. Setelah
dihubungkan, microcontroller di program untuk pengiriman data 8 bit lewat ADC
dalam bentuk karakter menggunakan Code Vision AVR. Di sini terjadi dua alur
antara microcontroller dengan PC yaitu Sebagai Transmitter dan receiver.
Mocrocontroler sudah diprogram sedemikian rupa sehingga dapat
dioperasikan. Setelah itu, dihubungkan potensiometer sebagai pengatur inputan
di port A. Potensiometer ini akan mengatur level tegangan masukan
microcontroller ke computer.
Data masukkan dari port A akan dikirimkan ke computer melalui port
serial yang dihubungkan ke RS232 converter yang terpasang ke PORT D sebagai
Port Data. Data Yang terkirim dalam bentuk digital. Data yang dikirimkan adalah
data 8 bit. Setelah itu akan ditampilkan di computer.
Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga
berfungsi sebagai suatu Port I/O 8-bit dua arah, jika A/DKonverter tidak
digunakan. Pin - pin Port dapat menyediakanresistor internal pull-up (yang
dipilih untuk masing-masing bit).Port A output buffer mempunyai karakteristik
gerakan simetrisdengan keduanya sink tinggi dan kemampuan sumber. Ketika
pinPA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, pin
– pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan.
Pin Port A adalah tri-stated manakalasuatu kondisi reset menjadi aktif, sekalipun
waktu habis.
Input tegangan yang digunakan adalah tegangan untuk microcontroller
itu yaitu sebesar +5V0lt dan 0 V. Pada saat tegangan mencapai maksimum 5 volt
maka data yang masuk adalah 11111111 dan akan ditampilkan dalam bentuk
karakter 1023. Dan apabilategangan di setting menggunakan potensiometer
menjadi 0 volt maka akan ditampilka dalam bentuk biner 00000000 dan dalam
karakter adalah 0000.
Berikut Listing program untuk Pengiriman data lewat serial interface ADC
internal Mikrocontroler ATGMEGA 8535 :
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2/10/2010
Author :
Company :
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 11.059200 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>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
unsigned int masukan;
unsigned int Counter;
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=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 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: Timer 2 Stopped
// Mode: Normal top=FFh
// 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: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 691.200 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
while (1)
{
// Place your code here
masukan=read_adc(0);
Counter=Counter+1;
if(Counter==10000)
{Counter=0;}
putchar((masukan/1000)%10 + 0x30);
putchar((masukan/100)%10 + 0x30);
putchar((masukan/10)%10 + 0x30);
putchar((masukan%10) + 0x30);
putchar((Counter/1000)%10 + 0x30);
putchar((Counter/100)%10 + 0x30);
putchar((Counter/10)%10 + 0x30);
putchar((Counter%10) + 0x30);
delay_ms(1000);
};
}
Apabila di Compile dan di Running akan menunjukkan seperti berikut :
Gambar Tampilan Output Pengiriman data 8 bit
Selain ditampilkan data, ditampilkan juga waktu, hal ini untuk membatasi
siklus pengiriman data sehingga data yang ditampilkan akan memiliki 8karakter
yaitu 4 karakter awal adalah data dan 4 karakter akhir berupa waktu. Maksimal
waktu yang diijinkan adalah sebanyak 10000 kali siklus ini ditunjukan oleh
perintak counter (if Counter==10000). Oleh sebab itu pengiriman data akan
diulang dari awal lagi setelah 10000 kali pengiriman.
Setelah berhasil maka microcontroller siap untuk di plotkan datanya dalam
bentuk grafik melalui Delphi.
Sebelumnya kita harus melakukan instalasi ComPort dahulu. Caranya adalah
sebagai berikut :
Langkah-langkah instalasi1. Unzip file-file hasil download ke folder di hardisk anda (lokasi bebas) tetapi
sebaiknya di C:\Program Files\Borland\Delphi7\Lib\Komponen Port comport ataudirektori dimana anda menginstall program delphi.2. Buka program Delphi3. Pilih Menu Tools >> Environment Options
Maka akan muncul tampilan sbb :
4. Pilih Tab Library5. Atur Library Path
Maka akan muncul tampilan sbb:
6. Pilih Browse dimana anda menyimpan file hasil ekstraksi source Comport
7. Pilih OK8. Pilih menu File >> Open
9. Pilih CportLib7.dpk (Sesuaikan dengan versi Delphi)
10. Pilih Compile11. Setelah selesai12. Pilih Install13. Tutup Windows14. Pilih Menu File >> Open15. Buka File DsgnCPort7.dpk16. Compile17. Install
18. Selesai dan komponen port sudah muncul pada komponen pallete dengan namaCportLib seperti gambar di bawah ini
Berikut Listing Programnya :
unit Coba;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, StdCtrls, ExtCtrls, TeeProcs, Chart, CPort,
XPMan, jpeg, CPortCtl;
type
TForm1 = class(TForm)
Button1: TButton;
Chart1: TChart;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
ComPort1: TComPort;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
XPManifest1: TXPManifest;
Timer1: TTimer;
Timer2: TTimer;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Series1: TFastLineSeries;
ComLed1: TComLed;
procedure Button1Click(Sender: TObject);
procedure ComPortOpen(Sender: TObject);
procedure ComPortClose(Sender: TObject);
procedure ComPortRxChar(Sender: TObject; Count: Integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ComPort1.ShowSetupDialog;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ComPort1.Connected then
ComPort1.Close
else
ComPort1.Open;
end;
procedure TForm1.ComPortOpen(Sender: TObject);
begin
Button2.Caption := 'Close';
end;
procedure TForm1.ComPortClose(Sender: TObject);
begin
if Button2 <> nil then
Button2.Caption := 'Open';
end;
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var data0,data1,data2,data3,data4,data5,data6,data7:char; data,ribuan,ratusan,puluhan,satuan,ribuanW,ratusanW,puluhanW,satuanW,waktu:variant;
x,y:integer;
//ack:byte;
begin
if count=8 then
begin
ComPort1.Read(data0,1);
ribuan:=data0;
ComPort1.Read(data1,1);
ratusan:=data1;
ComPort1.Read(data2,1);
puluhan:=data2;
ComPort1.Read(data3,1);
satuan:=data3;
ComPort1.Read(data4,1);
ribuanW:=data4;
ComPort1.Read(data5,1);
ratusanW:=data5;
ComPort1.Read(data6,1);
PuluhanW:=data6;
ComPort1.Read(data7,1);
satuanW:=data7; waktu:=(ribuanW*1000)+(ratusanW*100)+(puluhanW*10)+(satuanW);
data:=(ribuan*1000)+(ratusan*100)+(puluhan*10)+(satuan);
x:=waktu;
y:=data;
edit1.Text:=ribuan;
edit2.Text:=ratusan;
edit3.Text:=puluhan;
edit4.Text:=satuan;
edit5.Text:=data;
edit6.Text:=ribuanW;
edit7.Text:=ratusanW;
edit8.Text:=puluhanW;
edit9.Text:=satuanW;
edit10.Text:=waktu;
series1.AddXY(x,y);
if waktu = 9999 then
ComPort1.Close ;
Button2.Caption := 'Open';
end
else comport1.ClearBuffer(true,true);
end;
end.
Bentuk Formnya adalah sebagai berikut :
Gambar Form Delphi
Apabila di running hasilnya akan berbentuk seperti berikut :
Gambar Aplikasi Interface Delphi
Prinsip kerja interfacenya adalah microcontroler mengirimkan data
tegangan yang berbentuk biner ke computer diubah menjadi karakter angka.
Setelah itu data akan di koonversikan oleg chart delphi menjadi bentuk sebuah
grafik dimana bentuk grafik akan menyesuaikan nilai masukkan yang diberikan
oleh microcontroller.
Setelah mencapai bilangan 9999 maka grafik akan dimulai lagi dari awal
sama seperti pada code Vision AVR. Inilah yang dimaksud proses looping.
Apabila diaplikasikan ke elektrokardiograf maka system kerjanya adalah
pada setiap perubahan tegangan maka karakter yang dikirrim nilainya juga akan
berubah seteleah itu akan di plotkan dalam bentuk grafik dan terbentuklah
sebuah sinyal informasi.
IV. PROSEDUR PERCOBAAN
1. Membuat rangkaian interface ATMEGA8535 seperti Blok diagram
gambar.
2. Membuat listing program AVR seperti pada Contoh
3. Membuat Aplikasi Delphi
V. HASIL PERCOBAAN
Setelah di run Hasil Programnya adalah sebagai berikut :
ANALISA
Pada praktikum kali ini dibuat sebuah rangkaian microcontroller yang
dgunakan untuk interface dengan PC. Microcontroler digunakan untuk
mengirim data serial 8 bit ke PC melalui ADC PORT A. Data digital dalam bentuk
biner di tampilkan dalam bentuk karakter angka di computer, hal ini di sebabkan
karena digunakannya perintah “putchar” yang menggunakan perumusan
tertentu yang artinya menampilkan suatu data dalam bentuk karakter
sesuaidengan rumusan tersebut.
Input tegangan diatur oleh potensiometer yang terpasang di Port A ADC.
Besarnya nilai karakter di pengaruhi dan diatur oleh potensiometer. Nilai
maksimal dari karakter adalah 1023 sesuai dengan data 8 bit yang terdiri dari
1024 data dimana minimalnya adlah 0 dan maksimalnya adalah 1023.
Penampilan karakter tidak stabil di computer. Hal ini disebabkan karena
sifat ADC internal dari microcontroller memang kurang stabil dalam mengolah
tegangan inputnya. Pada saat program di compile dan di run ternyata yang
ditampilkan bukan 4 digit karakter tetapi sebesar 8 digit karakter. Ternyata 4
digit di belakang adalah nilai waktu yang digunakan sebagai counter dan
melakukan looping serta pembatasan siklus sebanyak 10000 kali. Ini ditandai
dengan digunakannya perintah “counter=counter+1” dan “if
(Counter==10000{counter=0;).
Setelah itu digunakan Delphi untuk menampilkan grafik data tersebut. Di
Delphi , data di inisialisasikan dengan ribuan, ratusan, puluhan dan satuan
sedangkan untuk waktunya digunakan inisialisasi ribuanW, ratusanW,
puluhanW, dan satuanW. Data diambil dari serial ComPort lalu dirumuskan
seperti pada listing program di atas an selanjutnya di plotkan ke dalam bentuk
grafik dimana x sebagai waktu dan y sebagai data. Dan program akan berhenti
beroperasi dan mengulang dari awal setelah 9999 detik. Ini dikarenakan adanya
pembatasan waktu.
KESIMPULAN.
Di dalam Microcontroler ATMEGA8535 terdapat empat port. PORT yang
digunakan untuk interface ADC adalah PORT A dan untu pengiriman data
serialnya digunakan PORT D. Penampilan data nilainya tidak satbil karena
karakter ADC internal microcontroller memang kuran stabil dalam menjaga level
tegangan. Solusi untuk itu adalah dengan pemasangan capasitor tantalum.
Data yang tertampil adalah sebanyak 8digit yang terdiri 4 digit awal
adalah data dan 4 digit akhir adalah waktu. Data biner dikonversi ke dalam
bentuk karakter sehingga yang ditampilkan adalah karakter nilainya.
Data karakter dalam bentuk angka yangtelah di program dengan Code
Vision AVR akan di tampilkan ke dalam bentuk grafik pada aplikasi Delphi, data
diambil dari comport Delphi dan selanjutnya ditampilkan ke dalam bentuk grafik
berjalan setelah di inisialisasikan dengan x adalah waktu dan y adaah nilai
datanya
DAFTAR PUSTAKA
1. B.Arifianto S.T. MODUL TRAINING MICROCONTROLLER FOR BEGINER diakses dari http://b-arifianto.blogspot.com
2. Modul ATMEGA 8535 di akses dari www.scribd.com