Anda di halaman 1dari 40

LAPORAN AKHIR MATA KULIAH KOMPUTERISASI ELEKTROMEDIK SERIAL INTERFACE MICROCONTROLER ATMEGA8535 KE PC MENGGUNAKAN APLIKASI GRAFIK DELPHI

Disusun Oleh Adia Cahya Purnama Arief Yulianto Krestiono Dwi Nugroho Andi Royhan Alby Ega Oktaviani Devi Sulistiono NPM.140403070002 NPM.140403070003 NPM.140403070004 NPM.140403070010 NPM.140403070012 NPM.140403070013

PROGRAM STUDI FISIKA TERAPAN JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PADJADJARAN BANDUNG 2010

LEMBAR PENGESAHAN LAPORAN AKHIR MATA KULIAH KOMPUTERISASI ELEKTROMEDIK SERIAL 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 INTISARI DAFTAR ISI TUJUAN ALAT PERCOBAAN TINJAUAN PUSTAKA PROSEDUR PERCOBAAN HASIL PERCOBAAN ANALISA KESIMPULAN DAFTAR PUSTAKA

i 1 2 3 3 3 23 23 24 26 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)

(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 masingmasing 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 s.r.l. 1998-2008 Pavel Haiduc, HP InfoTech

http://www.hpinfotech.com

Project : Version : Date Author : 2/10/2010 :

Company : Comments:

Chip type Program type Clock frequency Memory model External RAM size Data Stack size */

: ATmega8535 : Application : 11.059200 MHz : Small : 0 : 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 Func2=In Func1=In Func0=In // State7=T State6=T State5=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func2=In Func1=In Func0=In Func4=In Func3=In Func4=In State4=T Func3=In State3=T Func4=In State4=T Func3=In State3=T Func4=In State4=T Func3=In State3=T

// State7=T State6=T State5=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;

State4=T

State3=T

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 Parity

Parameters:

Data,

Stop,

No

// 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 instalasi 1. Unzip file-file hasil download ke folder di hardisk anda (lokasi bebas) tetapi

sebaiknya di C:\Program Files\Borland\Delphi7\Lib\Komponen Port comport atau direktori dimana anda menginstall program delphi. 2. Buka program Delphi 3. Pilih Menu Tools >> Environment Options

Maka akan muncul tampilan sbb :

4. Pilih Tab Library 5. Atur Library Path

Maka akan muncul tampilan sbb:

6. Pilih Browse dimana anda menyimpan file hasil ekstraksi source Comport

7. Pilih OK 8. Pilih menu File >> Open

9. Pilih CportLib7.dpk (Sesuaikan dengan versi Delphi)

10. Pilih Compile 11. Setelah selesai 12. Pilih Install 13. Tutup Windows 14. Pilih Menu File >> Open 15. Buka File DsgnCPort7.dpk 16. Compile 17. Install

18. Selesai dan komponen port sudah muncul pada komponen pallete dengan nama CportLib seperti gambar di bawah ini

Berikut Listing Programnya : unit Coba; interface uses Windows, Messages, SysUtils, Graphics, Controls, Forms, Dialogs, TeEngine, Series, 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; Variants, StdCtrls, Classes, ExtCtrls,

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 Integer); ComPortRxChar(Sender: TObject; Count:

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,pu luhanW,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)+(sa tuanW); 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. 2.

B.Arifianto S.T. MODUL TRAINING MICROCONTROLLER FOR BEGINER diakses dari http://b-arifianto.blogspot.com Modul ATMEGA 8535 di akses dari www.scribd.com

Anda mungkin juga menyukai