39722459 serial interface microcontroler komputersisasi elektromedik

49
LAPORAN AKHIR MATA KULIAH KOMPUTERISASI ELEKTROMEDIK SERIAL INTERFACE MICROCONTROLER ATMEGA8535 KE PC MENGGUNAKAN APLIKASI GRAFIK DELPHI Disusun Oleh Adia Cahya Purnama NPM.140403070002 Arief Yulianto NPM.140403070003 Krestiono Dwi Nugroho NPM.140403070004 Andi Royhan Alby NPM.140403070010 Ega Oktaviani NPM.140403070012 Devi Sulistiono NPM.140403070013

Upload: jachles

Post on 20-Jan-2016

90 views

Category:

Documents


0 download

DESCRIPTION

free

TRANSCRIPT

Page 1: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 2: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

LEMBAR PENGESAHANLAPORAN AKHIR

MATA KULIAH KOMPUTERISASI ELEKTROMEDIKSERIAL INTERFACE MICROCONTROLER ATMEGA8535

KE PC MENGGUNAKAN APLIKASI GRAFIK DELPHI

NILAI Bandung,12 Februari 2009

Asisten : ……………………

Page 3: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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.

Page 4: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 5: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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 :

Page 6: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 7: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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.

Page 8: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 9: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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)

Page 10: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 11: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

(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).

Page 12: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 13: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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.

Page 14: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

Gambar Schematic dan layout PCBSistem Minimum ATMEG 8535

Page 15: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 16: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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.

Page 17: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

*****************************************************/

Page 18: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

#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;

Page 19: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 20: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

// 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;

Page 21: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 22: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

// 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)

{

Page 23: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

// 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 :

Page 24: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 25: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 26: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

Maka akan muncul tampilan sbb:

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

7. Pilih OK8. Pilih menu File >> Open

Page 27: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 28: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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;

Page 29: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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);

Page 30: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 31: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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;

Page 32: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 33: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 34: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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 :

Page 35: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 36: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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.

Page 37: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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

Page 38: 39722459 Serial Interface Microcontroler Komputersisasi Elektromedik

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