P. 1
Tugas Akhir_1

Tugas Akhir_1

|Views: 10,670|Likes:
Published by dedi35
use this document as well as possible
use this document as well as possible

More info:

Published by: dedi35 on Oct 06, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/03/2013

pdf

text

original

Sebelum membuat program tentukan dulu bahasa pemrograman yang

akan digunakan. Pada Tugas Akhir ini penulis menggunakan bahasa asembler

untuk membuat program mikrokontroler dengan menggunakan AVR Studo4

sebagai pemrogramnya.

1.

Pengenalan AVR Studio 4

Untuk membuat program mikrokontroler AVR ATMega8 dapat

menggunakan bahasa AVR Studio4. Software ini menggunakan bahasa

asembler khusus untuk mikrokontroler AVR.

Gambar 10 Lambang AVR Studio 4.

AVR Studio 4 sudah dilengkapi dengan simulator sehingga

memudahkan dalam pembuatan program. Program yang telah dibuat dapat

disimulasikan menggunakan AVR Studio 4 ini, sehingga pada saat terjadi

kesalahan dapat diketahui sebelum di download ke mikrokontroler.

Didalam membuat program yang pertama kali harus diketahui

adalah struktur dari pemrograman, dan instruksi-instruksi yang digunakan

kemudian pengoperasian piranti lunak yang digunakan. Untuk instruksi

pemrograman dapat dilihat pada Data Sheet atau manual book dari

mikrokontroler. Untuk mikrokontroler ATMega8 memiliki kurang lebih

130 instruksi dan memiliki 19 interupsi.

2.

Pengoperasian AVR Studio4

Untuk memulai pembuatan program menggunakan AVR Studio4

pertama kita buka program AVR Studio 4 dari start menu. Pada awal

sebelum masuk ke jendela pemrograman akan muncul jendela untuk

memilih apakah kita akan membuat program baru atau akan membuka

program yang telah tersimpan. Pilih “New Project” untuk membuat

program baru dan “Open” untuk membuka program yang telah tersimpan

lihat gambar 11.

Gambar 11. Tampilan Awal AVR Studio 4

Jika memilih “New Project” berarti membuat program baru maka

dari AVR Studio akan muncul lagi jendela untuk memberi nama program

lihat gambar 12. Pada jendela akan terlihat beberapa pilihan pertama

“Project type” pilihlah “Atmel AVR Asembler” kemudian “project name”

tulislah nama program yang akan dibuat, pada initial file akan sama

dengan project name. Setelah itu pilih lokasi untuk menyimpan program

yang akan dibuat. Jika semua sudah diseting baru klik next.

Gambar 12. Pembuatan Nama Program Baru

Langkah selanjutnya adalah menentukan mikrokontroler yang akan

digunakan pada tampilan akan terlihat “Select debug platform and device”

lihat gambar 13. Pada bagian debug platform pilih “AVR Simulator”

kemudian pada bagian device terdapat nama – nama mikrokontroler yang

dapat disimulasikan di AVR Studio4, pilihlah ATmega8 kemudian klik

finish.

Gambar 13. Pemilihan Mikrokontroler Yang Digunakan

Gambar 14. Tampilan Penulisan Program Asembler (AVR)
Untuk menuliskan program dapat langsung dituliskan pada jedela

program sebelah kanan. Dalam menulis program pada AVR Studio harus

sesuai dengan ketentuan bahasa pemrograman AVR. Urutan penulisan

program dapat dibaca pada Instruksi Dalam Asembler AVR.

3.

Instruksi Asembler AVR

Dalam pembuatan program menggunakan AVR studio4 perlu

mengetahui terlebih dahulu perintah - perintah yang digunakan dalam

AVR Studio4 dan tata cara penulisannya. Dalam penulisan program

berbeda dengan saat menulis untuk catatan, dalam penulisan program

terdapat prosedur yang harus dipenuhi. Dalam setiap penulisan perintah

dalam program harus mengikuti empat buah ketentuan dibawah ini :

a.

[label:] directive [operand] [komentar]

b.

[label:] instruction [operand] [komentar]

c.

Komentar

d.

Baris kosong

Penulisan komentar dalam program juga memiliki ketentuan,

dimana komentar harus ditulis setelah tanda ‘;’. Tanda ‘;’ merupakan batas

dimana karakter setrelah tanda tersebut tidak akan dianggap sebagai

perintah.

Contoh :

.DEF

TEMP=R16

; R16 diberi nama TEMP (baris komentar)

LDI

R16,$60

; Memasukan nilai 60heksa ke register16

Instruksi untuk AVR Asembler terbagi menjadi beberapa

kelompok antara lain : instruksi perpindahan data, instruksi percabangan,

dan instruksi untuk bit.

a.

Instruksi Perpindahan Data

Instruksi penyalinan data yaitu instruksi untuk memasukan data

atau memindah data antar register, dari register ke I/O atau

memasukan konstanta nilai ke register. Instruksi yang termasuk dalam

kelompok perpindahan data yang sering digunakan adalah :

1)

LDI (Load Imidiete) untuk memasukan nilai konstanta ke

dalam register.

Contoh :

ldi

r16,$FF

; Memasukan FF heksa ke r16

ldi

r16,100

; Memasukan 100 desimal ke r16

2)

MOV (Move Between Register) perintah untuk

memindahkan nilai satu register ke register yang lain.

Contoh :

ldi

r16,$FF

; Memasukan FF heksa ke r16

movr17,r16

; Memindahkan isi r16 ke r17

3)

LPM (Load Program Memori) perintah untuk mengambil

nilai yang tersimpan di lokasi memori ke register 0.

Contoh :

lpm r0,Z+

; Memasukan nilai pada alamat yang
ditunjukan oleh pointerZ ke r0.

4)

IN perintah memasukan nilai dari port atau flag register

ke register.

Contoh :

in

r16,portd; Memasukan portd ke r16

5)

OUT perintah untuk mengeluarkan nilai di register ke

port.

Contoh :

ldi

r16,$FF

; Memasukan FF heksa ke r16

out

portd,r16; Mengeluarkan isi r16 ke portd

6)

PUSH perintah untuk memasukan nilai register ke stack.

Contoh :

in

r16,SREG; Nilai status register ke r16

pushr16,100

; Menyimpan nilai r16 ke stack

7)

POP perintah untuk mengembalikan nilai register dari

stack.

Contoh :

pop

r16

; Mengembalikan nilai Stack ke r16

out

SREG,r16; Memasukan 100 desimal ke r16

b.

Instruksi Percabangan

Intruksi percabangan sebenarnya digunakan untuk mengatur

alur dari program agar urutan perintah yang dieksekusi sesuai dengan

yang diinginkan. Dalam instruksi percabangan dikelompokan dalam

menjadi dua yaitu : instruksi percabangan tak bersyarat dan instruksi

percabangan bersyarat.

1)

Instruksi Percabangan Tak Bersyarat

Didalam percabangan tak bersyarat tidak diperlukan syarat tertentu

untuk melakukan percabangan. Yang termasuk instruksi

percabangan tak bersyarat antara lain : RJMP, JMP DAN IJMP.

Berikut adalah contoh penggunaan instruksi percabangan :

contoh :

ldir19,$5A

; isi r19 dengan 5A heksa

outportd,r19

; keluarkan r19 ke portd

rjmp contoh

; lompat ke contoh

2)

Instruksi Percabangan Bersyarat

Instruksi percabangan bersyarat merupakan instruksi dimana akan

melompat ke rutin yang ditunjuk jika syarat terpenuhi. Instruksi ini

memanfaatkan flag SREG sebagai syarat yang harus dipenuhi, ada

dua pilihan percabangan yaitu : bercabang jika flag set atau

bercabang jika flag clear. Instruksi percabangan banyak sekali

digunakan dalam pembuatan program dengan bahasa asembler.

Yang termasuk instruksi percabangan bersyarat misalnya : BRNE

(Branch if not equal) dan BREQ (Branch if equal)

....................; instruksi sebelumnya
cpi r22,$01

; bandingkan r22 dengan 01

breq naik

; jika sama lompat ke naik

brne turun

; jika tidak sama lompat ke turun

naik:

; rutin naik
.................; instruksi dalam rutin naik
turun :

; rutin turun
................; instruksi dalam rutin turun

Pada penggalan program diatas dapat dilihat pemakain inststruksi

breq. Pada penggalan program yaitu mambandingkan r22 dengan

01 jika r22 sama dengan 01 maka lompat ke naik. Sedangkan jika

r22 tidak sama dengan 01 maka akan melompat ke turun.

c.

Instruksi Bit

Pada instruksi untuk AVR asembler terdapat juga instruksi untuk

mengaktifkan dan menonaktifkan suatu bit pada register, port I/O atau

pada flag register. Contoh pwenggunaan instruksi Bit misalnya :

Contoh :

SwapR0

; memindahkan nible atas ke nible

bawah

SBI

portd,4

; set bit portd4

Sei

; set bit I pada SREG

Contoh diatas merupakan salah satu dari instruksi bit yang ada pada

Asembler untuk AVR.

4.

Pembuatan Program

Setelah memahami benar penggunaan AVR Studio4 dan mengenal

instruksi yang digunakan maka dapat melanjutkan langkah berikutnya

yaitu pembuatan program. Seperti yang telah digambarkan pada bab

perancangan sistem, program akan mengatur kecepatan motor stepper

dengan memberikan dua buah sinyal ke driver. Dua buah sinyal yang

dikirim oleh ATMega8 akan mengisyaratkan agar motor stepper bergerak

ke kanan dengan percepatan, kekanan dengan kecepatan konstan, kekanan

dengan perlambatan, kemudian berbalik ke kiri dengan percepatan, putar

kiri dengan kecepatan konstan, putar kiri dengan perlambatan dan

kemudian berbalik arah lagi. Dalam praktek untuk mencapai akhir

program sesuai yang diinginkan kita memerlukan algoritma untuk

pembuatan program.

Percobaan awal yang penulis lakukan sebelum mencapai program

yang utama adalah menggerakan motor stepper dengan menggunakan 4

sinyal keluaran dari mikrokontroler yang diseting pada portd. Pada

program tersebuat menggunakan delay untuk penundaan antar rentan

sinyal yang dikeluarkan oleh mikrokontroler. Program tersebut adalah :

; Program Kendali Motor Stepper Dengan Empat Sinyal
.include "m8def.inc"
.def T = r16
.def R = r17
.def I = r18
.def D = r19
.def P = r20
.def U = r21
.def K = r22

.equ kanan = $10
.equ kiri = $10
.equ delay = $02

.org $0000
rjmp main
main:
ldi

T,LOW(RAMEND)

out

SPL,T

ldi

T,HIGH(RAMEND)

out

SPH,T

ldi T,$FF
out

DDRD,T

ser T
out PORTB,T
step:ldi D,kanan
ldi P,kiri

arah_kanan:

ldi T,(1< out PORTD,T
rcall tunda1
ldi T,(1< out PORTD,T
rcall tunda1
ldi T,(0< out PORTD,T
rcall tunda1
ldi T,(0< out PORTD,T
rcall tunda1
dec D
brne arah_kanan

stopr:

ldi K,$00
out PORTD,K
rcall tunda1

arah_kiri:

ldi T,(0< out PORTD,T
rcall tunda1
ldi T,(1< out PORTD,T
rcall tunda1
ldi T,(1< out PORTD,T
rcall tunda1
ldi T,(0< out PORTD,T
rcall tunda1
dec P
brne arah_kiri

stopl:

ldi K,$00
out PORTD,K
rcall tunda1
rjmp step

tunda1:

ldi R,Delay

time1:

; Register B diisi dengan 05(00000101)

ldi I,$02

; Register C diisi dengan 04(00000100)

Time2:

;

dec I

; Isi Register C dikurangi 1
brne Time2; Jika tidak sama melompat ke time2
dec R
brne time1

; Isi Register B dikurangi 1

ret

Program empat sinyal tersebut merupakan program awal yang

merupakan program untuk uji coba driver dan mikrokontroler. Dari hasil

program tersebut didapat piranti mikrokontrol dapat bekerja dan driver

motor stepper juga dapat bekerja. Kelemahan dari program pertama

tersebuat adalah sulit untuk memperhitungkan kecepatan dari motor

stepper karena masih menggunakan delay sebagai penundaan sinyalnya.

Pada tahap berikutnya delay yang digunakan akan dirubah menggunakan

mode interupt timer dan counter. Pada perencanaan program ini terbagi

menjadi dua bagian yaitu : program untuk aktifasi interupt dan program

lanjutan. Dalam Tugas Akhir yang penulis lakukan dibawah bimbingan

Dr. Estiko Rijanto, penulis bekerja sama dengan mahasiswa lain dari STT

Telkom. Dalam pengerjaaan program kami bekerja sama untuk

menghasilkan program yang sesuai dengan keinginan.

Dari hasil kerjasama yang penulis lakukan dengan Muhamad Eko

Utomo (Mahsiswa STT TELKOM) kami berhasil membuat program

sesuai dengan keingginan. Penulis bertugas mengerjakan hardware dan

program untuk motor stepper sedangkan Eko bekerja membuat

komunikasi serial dengan PC guna mengatur kecepatan motor stepper

dengan PC. Dari kerja sama tersebut penulis mengambi sebagian hasil dari

penelitian untuk dijadikan laporan Tugas Akhir dengan judul “Aplikasi

Mikrokontroler Atmega8 Sebagai Pengatur Kecepatan Dan Mode Gerak

Motor Stepper”. Program untuk piranti yang penulis buat pada Tugas

Akhir penulis lampirkan.

5.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->