laporan joystick
Post on 18-Jul-2015
165 Views
Preview:
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.
top related