laporan joystick

29
Praktek Antar Muka Mikroprosesor 1 Politeknik Negeri Sriwijaya I. JUDUL Mengendalikan Led Dan Motor DC Dengan Joystick Menggunakan Sistem Minimum Atmega 8535 Berbasis Visual Basic 6.0. II. ALAT DAN BAHAN 1. ATMEGA 8535 1 Buah 2. Crystal 11.0592 MHz 1 Buah 3. DB9 1 Buah 4. Dioda Bridge 1 Buah 5. Dioda IN4002 8 Buah 6. IC 7805 1 Buah 7. IC 7809 1 Buah 8. IC 7812 1 Buah 9. IC 7815 1 Buah 10. ISP Downloader 1 Buah 11. Kapasitor 27pF 2 Buah 12. Kapasitor 1μF 5 Buah 13. Kapasitor 10μF 1 Buah 14. Kapasitor 100μF 1 Buah 15. Kapasitor 1000μF 4 Buah 16. LCD 16x2 1 Buah 17. Led 6 Buah 18. Led SMD Green 8 Buah 19. Motor DC 2 Buah 20. PC (Personal Computer) 1 Buah 21. PCB Double Layer 10x10cm 1 Buah 22. PCB Single Layer 10x20cm 1 Buah 23. Power Terminal 2 pin 2 Buah 24. Power Terminal 3 pin 8 Buah 25. Pin Header Downloader 1 Buah

Upload: dori-pradito

Post on 18-Jul-2015

170 views

Category:

Education


1 download

TRANSCRIPT

Praktek Antar Muka Mikroprosesor

1

Politeknik Negeri Sriwijaya

I. JUDUL

Mengendalikan Led Dan Motor DC Dengan Joystick Menggunakan Sistem

Minimum Atmega 8535 Berbasis Visual Basic 6.0.

II. ALAT DAN BAHAN

1. ATMEGA 8535 1 Buah

2. Crystal 11.0592 MHz 1 Buah

3. DB9 1 Buah

4. Dioda Bridge 1 Buah

5. Dioda IN4002 8 Buah

6. IC 7805 1 Buah

7. IC 7809 1 Buah

8. IC 7812 1 Buah

9. IC 7815 1 Buah

10. ISP Downloader 1 Buah

11. Kapasitor 27pF 2 Buah

12. Kapasitor 1µF 5 Buah

13. Kapasitor 10µF 1 Buah

14. Kapasitor 100µF 1 Buah

15. Kapasitor 1000µF 4 Buah

16. LCD 16x2 1 Buah

17. Led 6 Buah

18. Led SMD Green 8 Buah

19. Motor DC 2 Buah

20. PC (Personal Computer) 1 Buah

21. PCB Double Layer 10x10cm 1 Buah

22. PCB Single Layer 10x20cm 1 Buah

23. Power Terminal 2 pin 2 Buah

24. Power Terminal 3 pin 8 Buah

25. Pin Header Downloader 1 Buah

2

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

26. Pin Header Female 2x10 4 Buah

27. Pin Header Male 1x20 2 Buah

28. PS2 Controller 1 Buah

29. Relay 5VDC 4 Buah

30. Resistor 100 Ω 4 Buah

31. Resistor 330 Ω 8 Buah

32. Resistor 10 KΩ 1 Buah

33. Resistor SMD 1 KΩ 1 Buah

34. Socket 40 Pin 1 Buah

35. Socket 16 Pin 1 Buah

36. Spacer 1 Cm 9 Buah

37. Spacer 2 Cm 8 Buah

38. Switch 2 Buah

39. Terminal Jumper 9 Buah

40. Transformator Step Down 1 Buah

41. Transistor 2N222 4 Buah

42. USB to DB9 Cable 1 Buah

III. TUJUAN

Adapun tujuan yang hendak dicapai :

1. Dapat mengendalikan led dan motor DC menggunakan PS2

controller berbasis ATMEGA 8535.

2. Dapat menampilkan pada Visual Basic 6.0 dan LCD 16x 2.

3. Dapat membuat blok diagram dari percobaan rangkaian.

4. Mempelajari cara pemrograman melalui visual basic 6.0 untuk

berkomunikasi secara serial.

3

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

IV. DASAR TEORI

4.1 Mikrokontroler ATMEGA 8535

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan

mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi

baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan

transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat

diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih

murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontroler

hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan

keinginan alat-alat bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam

penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan

yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan

diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa

diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah.

Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin

menggunakan computer PC yang harus dipasang disamping (atau di belakang)

mesin permainan yang bersangkutan. Selain system tiket, kita juga dapat

menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau

yang dikenal dengan system telemetri. Misalnya pengukuran disuatu tempat yang

membahayakan manusia, maka akan lebih nyaman jika dipasang suatu system

pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh

stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem

pengukuran jarak jauh ini jelas membutuhkan suatu system akusisi data sekaligus

system pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa

diperoleh dari mikrokontroler yang digunakan. Tidak seperti sistem komputer,

yang mampu menangani berbagai macam program aplikasi (misalnya pengolah

kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan

4

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan

RAM dan ROM-nya. Pada system computer perbandingan RAM dan ROM-nya

besar, artinya program-program pengguna disimpan dalam ruang RAM yang

relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam

ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan

RAM-nya yang besar artinya program control disimpan dalam ROM (bisa

Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan

RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-

register yang digunakan pada mikrokontroler yang bersangkutan. Mikrokontroler

ATMega8535 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis

Mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit

ataupun 8 bit secara bersamaan. Pada prinsipnya program pada Mikrokontroler

dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi

dan tiap instriksi itu dijalankan secara bertahap atau berurutan.Beberapa fasilitas

yang dimiliki oleh Mikrokontroler ATMega8535 adalah sebagai berikut :

a. Sebuah Central Processing Unit 8 bit.

b. Osilatc : Internal dan rangkaian pewaktu.

c. RAM internal 128 byte.

d. Flash Memory 2 Kbyte.

e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah

interupsi internal).

f. Empat buah programmable port I/O yang masing – masing terdiri dari

delapan buah jalur I/O.

g. Sebuah port serial dengan control serial full duplex UART.

h. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika.

Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada

frekuensi 12 MHz.

5

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

4.1.1 Kontruksi ATMega8535

Mikrokontrol ATMega8535 hanya memerlukan 3 tambahan kapasitor,1

resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor

10 KiloOhm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian

reset ini ATMega8535 otomatis direset begitu rangkaian menerima catu daya.

Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai

untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan

kecepatan kerja mikrokontroler. Memori merupakan bagian yang sangat penting

pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya

berbeda.Read Only Memory (ROM) yang isinya tidak berubah meskipun IC

kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51

memori penyimpanan progam ini dinamakan sebagai memori program.

Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan

catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang

dipakai untuk menyimpan data ini disebut sebagai memori data. Ada berbagai

jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan

diproduksi secara massal, progam diisikan ke dalam ROM pada saat IC

mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu

mikrokontrolermengunakan ROM yang dapat diisi ulang atau Programble-

Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak

dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian

dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih

murah. Jenis memori yang dipakai untuk Memori Program ATMega8535 adalah

Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori

itu lewat bantuan alat yang dinamakan sebagai ATMega8535 Flash PEROM

Programmer. Memori Data yang disediakan dalam chip ATMega8535 sebesar 128

byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu

sudah cukup.

6

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi.

ATMega8535 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal

sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).ATMega8535

dilengkapi UART (Universal Asyncronous Receiver/ Transmiter) yang biasa

dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD

dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3,

sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock

penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang

diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5,

sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0

dan T1 dipakai.

ATMega8535 mempunyai enam sumber pembangkit interupsi, dua

diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1.

Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai

sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima

sinyal interupsi. ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan

8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC

ATmega8535 dapat dikonfigurasi, baik secara single ended input maupun

differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan,

tegangan referensi, mode operasi, dan kemampuan filter derau yang amat

fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.

Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan

register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special

Functoin Regeister (SFR).2.1.2 Pin-Pin Pada Mikrokontroler ATMega8535

Deskripsi pin-pin oada Mikrokontroler ATMega8535 :

7

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Gambar 4.1 Konfigurasi IC Mikrokontroller ATMega8535

Penjelasan Pin :

VCC : Tegangan Supplay (5 volt)

GND : Ground

RESET : Input reset level rendah pada pin ini selama lebih dari panjang

pulsa minimum akan menghasilkan reset, walaupun clock sedang

berjalan.

XTAL1 : Input penguat osilator inverting dan input pada rangkaian

operasi clock internal.

XTAL2 : Output dari penguat osilator inverting.

AVCC : Pin tegangan suplay untuk port A dan ADC. Pin ini harus

dihubungkan ke VCC walaupun ADC tidak digunakan, maka pin ini harus

dihubungkan ke VCC melalui low pass filter.

AREF : Pin referensi tegangan analaog untuk ADC.

8

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Gambar 4.2 Blog Diagram IC ATMega8535

a. Port A (PA0-PA7)

Port A berfungsi sebagai input analog ke ADC. Port A juga dapat

berfungsi sebagai port I/O 8 bit bidirectional, jika ADC tidak digunakan maka

port dapat menyediakan resistor pull-up internal (dipilih untuk setiap bit).

9

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

b. Port B (PB0-PB7)

Port B merupakan I/O 8 bit biderectional dengan resistor pull-up internal

(dipilih untuk setiap bit)

c. Port C (PC0-PC7)

Port C merupakan I/O 8 bit biderectional dengan resistor pull-up internal

(dipilih untuk setiap bit)di Port D (PD0-PD7) Port D merupakan I/O 8 bit

biderectional dengan resistor pull-up internal (dipilih untuk setiap bit).

4.2 PS2 Controller

4.2.1 Pin Konfigurasi dan Communication

Konfigurasi pin wiring Conetor Joystik PS2, berikut gambarnya :

Gambar 4.3 Connector PS2 Controller

Wireless joystick PS2 mengunakan komunikasi SPI (Serial Pheripehal

Interface) atau biasa orang sebut sebagai 3 wire interface.

4.2.2 Data Protokol

Untuk berkomunikasi dengan kontroler pada joystick PS2 diperlukan

beberapa proses pengiriman ID . Mikrokontroler mengirim data &H01 (start up),

10

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

setelah itu mikrokontroler mengirim data &H42 (read data). Kemudian disaat

yang sama mikrokontroler akan menerima data tipe joystick yang digunakan.

&H41 = Konsul Digital

&H73 = Konsul Analog

Setelah itu mikrokontroler akan menerima data &H5

Data byte pertama akan diterima kemudian byte kedua, setelah itu data analog

1 dan analog 2.

4.2.3 Frame Data

Tabel 1. Frame Data PS2 Controller

11

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

V. LANGKAH PERCOBAAN

Beberapa langkah-langkah yang harus dilakukan dalam melakukan

percobaan ini adalah :

1. Membuat rangkaian sistem minimum ATMEGA 8535, LCD 16x2,

driver relay 5VDC 5 channel dan MAX232, rangkaiannya tampak

sebagai berikut :

Gambar 5.1 Rangkaian Sistem Minimum ATMEGA 8535,

MAX232, dan LCD 16x2.

12

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Gambar 5.2 Rangkaian Regulator

Gambar 5.3 Rangkaian Driver Relay

2. Rangkaian dibuat menggunakan aplikasi EAGLE 6.3.

3. Setelah rangkaian sudah dibuat pada aplikasi EAGLE, kemudian di

convert ke board, kemudian disusun sesuai keinginan, setelah selesai

lalu diprint dengan kertas kalender dan bisa langsung diaplikasikan

pada papan PCB dengan teknik gosok.

4. Setelah jadi, bisa langsung direndam pada larutan Feriklorit (FeCl3).

13

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

5. Setelah tampak jalur-jalur rangkaian sesuai dengan yang telah

dibuat, bisa langsung dibersihkan dengan air, untuk menghilangkan

bekas larutan feriklorit.

6. Lalu bor pin-pin untuk kaki-kaki komponen.

7. Setelah itu solder komponen-komponen sesuai dengan tata letak

yang sudah dibuat.

8. selanjutnya membuat program dengan menggunakan aplikasi

BASCOM AVR.

9. Buka aplikasi BASCOM AVR.

10. Klik File, Klik New, lalu ketik koding untuk mengendalikan Led

Dan Motor DC Dengan Joystick Menggunakan Sistem Minimum

Atmega 8535 Berbasis Visual Basic 6.0.

11. Untuk koding dalam mengendalikan Led Dan Motor DC Dengan

Joystick Menggunakan Sistem Minimum Atmega 8535 Berbasis

Visual Basic 6.0 dapat dilihat pada bagian Analisa Percobaan.

12. Selanjutnya mengcompile program tersebut dan save.

13. Setelah itu, memasukkan program kedalam sistem minimum

ATMEGA 8535 yang sudah dibuat tadi. Dengan membuka aplikasi

PROG ISP. Kemudian select chip (ATMEGA8535) lalu erase

terlebih dahulu, baru kemudian load flash, cari file dengan format

.Hex yang mana sesuai program yang telah disave sebelumnya.

Kemudian klik OK, lalu klik auto. Jika berhasil akan tampak tulisan

“Erase,Write flash, Successfully done”.

14

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

14. Selanjutnya membuat programnya di aplikasi Visual Basic 6.0,

dengan mengklik dua kali pada aplikasi, kemudian pilih standard

exe, lalu klik open, maka akan muncul tampilan seperti dibawah ini :

15. Kemudian buat form dengan susunan sebagai berikut (pengaturan

lebih lanjut dapat dilihat pada analisa percobaan) :

16. Selanjutnya membuat programnya, klik menu View, kemudian pilih

code, lalu masukan programnya (isi program dapat dilihat pada

Analisa Percobaan).

15

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

17. Lalu dapat dilakukan pengetesan pada rangkaian, dengan

menghubungkan kabel serial ke rangkaian sistem minimum

ATMEGA 8535 dengan MAX232.

18. Lalu pada aplikasi visual basic 6.0, klik tombol Start. Kemudian klik

“Connect”, kemudian dapat ditekan tombol pada PS2 controller,

pada Visual Basic akan menampilkan tombol yang ditekan, missal

“R1” apabila menekan tombol R1 pada PS2 controller. Untuk keluar

klik tombol “CLOSE”.

VI. HASIL PERCOBAAN

6.1 Rangkaian Sistem Minimum ATMEGA 8535, MAX232, dan LCD 16x2

16

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Gambar 6.1 Rangkaian Sistem Minimum ATMEGA 8535,

MAX232, dan LCD 16x2.

6.2 Rangkaian Regulator

Gambar 6.2 Rangkaian Regulator

6.3 Rangkaian Driver Relay

Gambar 6.3 Rangkaian Driver Relay

17

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

6.4 Tampilan Visual Basic 6.0

Gambar 6.4 Tampilan Pada Visual Basic 6.0

6.5 Pengujian Pada Rangkaian

Gambar 6.5 Ketika Tombol PS2 Controller tidak ditekan, led kiri aktif

Gambar 6.6 Ketika Tombol panah kekiri ditekan, motor kiri berputar

Gambar 6.6 Ketika Tombol X ditekan, motor kanan berputar

18

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Gambar 6.5 Ketika Tombol L1 ditekan, led kanan aktif

VII. ANALISA PERCOBAAN

7.1 Blok Diagram

Gambar 7.1 Blok Diagram Rangkaian

Pada gambar 7.1 merupakan blok diagram rangkaian, dengan PS2

controller sebagai masukan, data yang dikirim dari PS2 Controller akan diproses

oleh mikrokontroller ATMEGA 8535. Setelah diproses data selanjutnya

ditampilkan pada LCD 16x2 dan Visual Basic, data output juga menggunakan

indikator led dan motor dc.

Prinsip kerja rangkaian ini adalah dengan menggunakan Serial Peripheral

Interface (SPI) pada ATMEGA 8535, yang mana mampu mengirim data sinkron

dengan kecepatan tinggi antara perangkat peripheral ataupun perangkat AVR itu

19

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

sendiri dengan ATMEGA 8535. SPI yang digunakan adalah jenis LSB First Data

Transfer atau Data transfer dengan data dimulai dari LSB. Berikut adalah cara

kerja SPI yang digunakan :

Gambar 7.2 SPI Master-Slave Interconnection

Pin Mosi, Miso, SCK dan SS pada ATMEGA 8535 digunakan dalam

proses transfer data dan pada program AVR harus disebutkan pin MISO yang

digunakan, seperti pada percobaan ini menggunakan portb.1. Tiap tombol pada

joystick memiliki kode-kode biner tersendiri, hal ini yang kemudian menjadi

pedoman saat penulisan program BASCOM AVR. Dalam percobaan ini tidak

dimasukkan keadaan Red Mode, sehingga belum membaca nilai X dan Y ketika

joystick digerakkan.

7.2 Program BASCOM AVR

Tabel 2. Program BASCOM AVR

Program Penjelasan

$regfile = "m8535.dat"

$crystal = 11059200

$baud = 9600

'----------------------------------------------------------

-Jenis mikrokontroler yang digunakan

adalah ATMEGA 8535

-Frekuensi crystal yang digunakan adalah

11,0592 MHz.

-Nilai kecepatan transfer data persekon

sebesar 9600

20

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

'Simbol-simbol pada controller

Deflcdchar 0 , 4 , 4 , 10 , 10 , 27 , 17 , 17 , 31

'Segitiga

Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31

' Kotak

Deflcdchar 2 , 4 , 14 , 21 , 4 , 4 , 4 , 4 , 4

' Up

Deflcdchar 3 , 4 , 4 , 4 , 4 , 4 , 21 , 14 , 4

' Down

Deflcdchar 4 , 32 , 32 , 4 , 2 , 31 , 2 , 4 , 32

' Right

Deflcdchar 5 , 32 , 32 , 4 , 8 , 31 , 8 , 4 , 32

' Left

'----------------------------------------------------------

'LCD

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 =

Portc.3 , Db6 = Portc.4

Config Lcdpin = Pin , Db7 = Portc.5 , Rs =

Portc.0 , E = Portc.1

Cursor Off

Cls

'----------------------------------------------------------

'SPI

Config Spi = Hard , Interrupt = Off , Data Order

= Lsb , Master = Yes , Polarity = High , Phase =

1 , Clockrate = 128

Spiinit

Config Portb.1 = Output

Pad_att_line Alias Portb.1

-Program karakter bentuk segitiga

-Program karakter bentuk kotak

-Program karakter bentuk panah keatas

-Program karakter bentuk panah kebawah

-Program karakter bentuk panah kekanan

-Program karakter bentuk panah kekiri

-Jenis LCD yang digunakan 16x2

-Pin-pin LCD yang digunakan (Db4, Db5,

dan Db6)

-Pin-pin LCD yang digunakan (Db7, Rs,

dan E)

-Cursor pada LCD dinonaktifkan

-Mengosongkan karakter pada layar LCD

-Pengaktifan SPI , tidak menggunakan

interrupt, data masuk dimulai dari LSB,

Polaritas high

-Inputan SPI

-Pengaturan portb.1 sebagai SPI

-Pad_att_line nama lain Portb.1

21

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Dim Cmdstart As Byte : Cmdstart = &H01

Dim Cmdstatus As Byte : Cmdstatus = &H42

Dim Joy_present As Byte , Joy_mode As Byte

Dim Joy_byte1 As Byte , Joy_byte2 As Byte

Dim Joy_kanan_x As Byte , Joy_kanan_y As

Byte

Dim Joy_kiri_x As Byte , Joy_kiri_y As Byte

'----------------------------------------------------------

Key_select Alias Joy_byte1.0

Key_joyr Alias Joy_byte1.1

Key_joy1 Alias Joy_byte1.2

Key_start Alias Joy_byte1.3

Key_up Alias Joy_byte1.4

Key_right Alias Joy_byte1.5

Key_down Alias Joy_byte1.6

Key_left Alias Joy_byte1.7

Key_l2 Alias Joy_byte2.0

Key_r2 Alias Joy_byte2.1

Key_l1 Alias Joy_byte2.2

Key_r1 Alias Joy_byte2.3

Key_triangle Alias Joy_byte2.4

Key_circle Alias Joy_byte2.5

Key_x Alias Joy_byte2.6

Key_square Alias Joy_byte2.7

Config Portd.7 = Output

Config Portd.6 = Output

Config Portd.5 = Output

Config Portd.4 = Output

-Cmdstart dengan tipe data Byte, dengan

data heksa 01

-Cmdstart dengan tipe data Byte, dengan

data heksa 42

-Joy_present, Joy_mode, Joy_byte1,

Joy_byte2, Joy_kanan_x , Joy_kanan_y

Joy_kiri_x , dan Joy_kiri_y dengan tipe data

Byte

- Key_select sebagai Joy_byte1.0

- Key_joyr sebagai Joy_byte1.1

-Key_joy1 sebagai Joy_byte1.2

-Key_start sebagai Joy_byte1.3

-Key_up sebagai Joy_byte1.4

-Key_right sebagai Joy_byte1.5

-Key_down sebagai Joy_byte1.6

-Key_left sebagai Joy_byte1.7

-Key_l2 sebagai Joy_byte2.0

-Key_r2 sebagai Joy_byte2.1

-Key_l1 sebagai Joy_byte2.2

-Key_r1 sebagai Joy_byte2.3

-Key_triangle sebagai Joy_byte2.4

-Key_circle sebagai Joy_byte2.5

-Key_x sebagai Joy_byte2.6

-Key_square sebagai Joy_byte2.7

-Portd.7 sebagai pin output

-Portd.6 sebagai pin output

-Portd.5 sebagai pin output

-Portd.4 sebagai pin output

22

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

'----------------------------------------------------------

Cls

Lcd "Tes Joystick PS2"

Lowerline

Lcd "-----SUKSES-----"

Wait 3

Cls

Lcd "--DORI & JIMI-- "

Wait 3

Cls

Do

Reset Pad_att_line : Waitus 100

Spiout Cmdstart , 1

Joy_mode = Spimove(cmdstatus)

Spiin Joy_present , 1

Spiin Joy_byte1 , 1

Spiin Joy_byte2 , 1

Spiin Joy_kanan_x , 1

Spiin Joy_kanan_y , 1

Spiin Joy_kiri_x , 1

Spiin Joy_kiri_y, 1

Set Pad_att_line : Waitus 100

If Key_start = 0 Then

Locate 1 , 1

Lcd "Start "

Print "Start "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

-Mengosongkan karakter pada layar LCD

-Menampilkan "Tes Joystick PS2"

-untuk baris kedua menampilkan :

-"-----SUKSES-----"

-Lamanya proses selama 3 detik

-Mengosongkan karakter pada layar LCD

-Menampilkan "--DORI & JIMI-- "

-Lamanya proses selama 3 detik

-Mengosongkan karakter pada layar LCD

-Memulai program

-Mereset Pad_att_line, proses selama 100µs

-Mengirim logika 1 pada Cmdstart

-Data masuk mulai dari LSB dan membaca

cmdstatus

-Membaca data Joy_present

-Membaca data Joy_byte1

-Membaca data Joy_byte2

-Membaca data Joy_kanan_x

-Membaca data Joy_kanan_y

-Membaca data Joy_kiri_x

-Membaca data Joy_kiri_y

-Berhenti membaca data, proses selama

100µs

-Jika Key_start berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "Start " ke LCD

-Mengirim data "Start " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

23

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Portd.7 = 0

Waitus 500

Elseif Key_select = 0 Then

Locate 1 , 1

Lcd "Select "

Print "Select "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

Portd.7 = 0

Waitus 500

Elseif Key_up = 0 Then

Locate 1 , 1

Lcd Chr(2) ; " Panah keatas "

Print "Panah keatas "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

Portd.7 = 0

Waitus 500

Elseif Key_down = 0 Then

Locate 1 , 1

Lcd Chr(3) ; " Panah kebawah "

Print "Panah kebawah "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

Portd.7 = 0

Waitus 500

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_select berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "Select " ke LCD

-Mengirim data "Select "ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_up berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter panah keatas dan

tulisan " Panah keatas " ke LCD

-Mengirim data "Panah keatas " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_down berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter panah kebawah dan

tulisan " Panah kebawah "ke LCD

-Mengirim data "Panah keatas " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Lamanya proses 500 µs

24

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Elseif Key_right = 0 Then

Locate 1 , 1

Lcd Chr(4) ; " Panah kekanan"

Print "Panah kekanan "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

Portd.7 = 0

Waitus 500

Elseif Key_left = 0 Then

Locate 1 , 1

Lcd Chr(5) ; " Panah kekiri "

Print "Panah kekiri "

Portd.4 = 0

Portd.5 = 1

Portd.6 = 0

Portd.7 = 0

Waitus 500

Elseif Key_triangle = 0 Then

Locate 1 , 1

Lcd Chr(0) ; " Segitiga "

Print "Segitiga "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 0

Portd.7 = 1

Waitus 500

Elseif Key_x = 0 Then

Locate 1 , 1

-Jika Key_right berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter panah kekanan dan

tulisan " Panah kekanan" ke LCD

-Mengirim data "Panah kekanan " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_left berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter panah kekiri dan

tulisan " Panah kekiri "" ke LCD

-Mengirim data "Panah kekiri " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 1

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_triangle berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter segitiga dan tulisan

" Segitiga " ke LCD

-Mengirim data "Segitiga "ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 0

-Portd.7 berlogika 1

-Lamanya proses 500 µs

-Jika Key_x berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

25

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Lcd "Tombol X "

Print "Tombol X "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 0

Portd.7 = 1

Waitus 500

Elseif Key_square = 0 Then

Locate 1 , 1

Lcd Chr(1) ; " Kotak "

Print "Kotak "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 0

Portd.7 = 1

Waitus 500

Elseif Key_circle = 0 Then

Locate 1 , 1

Lcd "O Lingkaran "

Print "Lingkaran "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 0

Portd.7 = 1

Waitus 500

Elseif Key_l1 = 0 Then

Locate 1 , 1

Lcd "L1 "

Print "L1 "

Portd.4 = 0

Portd.5 = 0

-Menampilkan "Tombol X " ke LCD

-Mengirim data "Tombol X " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 0

-Portd.7 berlogika 1

-Lamanya proses 500 µs

-Jika Key_square berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan karakter kotak dan tulisan "

Kotak " ke LCD

-Mengirim data "Kotak " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 0

-Portd.7 berlogika 1

-Lamanya proses 500 µs

-Jika Key_circle berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "O Lingkaran " ke LCD

-Mengirim data "Lingkaran " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 0

-Portd.7 berlogika 1

-Lamanya proses 500 µs

-Jika Key_l1 berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "L1 " ke LCD

-Mengirim data "L1 "ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

26

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Portd.6 = 1

Portd.7 = 0

Waitus 500

Elseif Key_l2 = 0 Then

Locate 1 , 1

Lcd "L2 "

Print "L2 "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 1

Portd.7 = 0

Waitus 500

Elseif Key_r1 = 0 Then

Locate 1 , 1

Lcd "R1 "

Print "R1 "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 1

Portd.7 = 0

Waitus 500

Elseif Key_r2 = 0 Then

Locate 1 , 1

Lcd "R2 "

Print "R2 "

Portd.4 = 0

Portd.5 = 0

Portd.6 = 1

Portd.7 = 0

Waitus 500

Elseif Pad_att_line = 1 Then

-Portd.6 berlogika 1

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_l2 berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "L2 " ke LCD

-Mengirim data "L2 " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 1

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_r1 berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "R1 "ke LCD

-Mengirim data "R1 " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 1

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Key_r2 berlogika 0, maka :

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "R2 " ke LCD

-Mengirim data "R2 " ke serial

-Portd.4 berlogika 0

-Portd.5 berlogika 0

-Portd.6 berlogika 1

-Portd.7 berlogika 0

-Lamanya proses 500 µs

-Jika Pad_att_line berlogika 1, maka :

27

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

Locate 1 , 1

Lcd "Tidak ada respon"

Print "Tidak ada respon"

Portd.4 = 1

Portd.5 = 0

Portd.6 = 0

Portd.7 = 0

End If

Waitus 100

Loop

-Posisi karakter pada baris ke1 kolom ke 1

-Menampilkan "Tidak ada respon" ke LCD

-Mengirim data "Tidak ada respon" ke serial

-Portd.4 berlogika 1

-Portd.5 berlogika 0

-Portd.6 berlogika 0

-Portd.7 berlogika 0

-Mengakhiri perintah If Then

-Lamanya proses 100 µs

-Mengulang program dari awal (secara terus

menerus, Do….Loop)

7.3 Program Visual Basic 6.0

Tabel 3. Program Visual Basic 6.0 Program Penjelasan

Private Sub cmdconnect_Click()

If cmdconnect.Caption = "Disconnect" Then

cmdconnect.Caption = "Connect"

MSComm1.PortOpen = False

ElseIf cmdconnect.Caption = "Connect" Then

cmdconnect.Caption = "Disconnect"

MSComm1.PortOpen = True

End If

End Sub

Private Sub cmdexit_Click()

Unload Me

End Sub

Private Sub MSComm1_OnComm()

Dim buffer As String

-Sub Program apabila cmdconnect ditekan.

-Apabila caption “Disconnect” maka

- Diubah menjadi “Connect”

-Menutup port komunikasi serial

- Mengubah caption “Connect”

- Diubah menjadi “Disconnect”

-Membuka port komunikasi serial

-Mengakhiri perintah if then.

-Mengakhiri sub program.

-Sub Program apabila cmdexit ditekan.

-Keluar dari program.

-Mengakhiri sub program.

-Sub program pada MSComm1

-Pendeklarasian buffer dengan tipe data

string.

28

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

buffer = MSComm1.Input

If buffer <> "" Then

With Text1

.SelStart = Len(.Text)

.SelText = buffer

End With

End If

End Sub

-buffer sebagai MSComm1 input

-Jika buffer ada data, maka

-pada text1 :

-data yang masuk

-text1 terisi dengan data yang masuk

-Mengakhiri perintah with

-Mengakhiri perintah if then

-Mengakhiri sub program

VIII KESIMPULAN

Berdasarkan percobaan yang telah dilakukan, didapat kesimpulan sebagai

berikut :

1. Untuk menggunakan PS2 Controller dapat mengaplikasikan sistem SPI

(Sherial Pheriperal Interface) pada ATMEGA 8535.

2. Jenis SPI yang digunakan adalah dengan data transfer yang dimulai dari

data terkecil atau LSB (Least Significant Bit).

3. Data yang masuk berupa data dengan logika 0 atau Low, karena sesuai

program (Polarity = High). Misal jika tombol R1 ditekan maka data

digital 2 bit 3 akan berlogika 0, selain data itu akan dianggap berlogika

1 atau high.

4. Setiap tombol pada PS2 Controller memiliki data bytenya sendiri-

sendiri, dapat dilihat pada tabel 1. Frame Data PS2 Controller berikut :

29

Laporan Praktek Antar Muka Mikroprosesor

Politeknik Negeri Sriwijaya

DAFTAR PUSTAKA

[1] http://nfggames.com/forum2/index.php?topic=5001.0, diakses tanggal 14

Desember 2014 pukul 10:13.

[2] http://repository.usu.ac.id/bitstream/123456789/27166/4/Chapter%20II.pdf,

diakses tanggal 14 Desember 2014 pukul 09:30.

[3] http://seputar-indo1.blogspot.com/2013/04/wireless-joystik-ps2-atmega-8-

bascom.html, diakses tanggal 14 Desember 2014 pukul 09:46.

[4] http://www.grote.net/bascom/msg18553.html, diakses tanggal 14 Desember

2014 pukul 10:09.

[5] http://www.mikroe.com/forum/viewtopic.php?p=63661&sid=f05825a0d9393

0f7768709c0b95f7a69, diakses tanggal 14 Desember 2014 pukul 10:04.