BAB II LANDASAN TEORI
2.1
Bulutangkis Bulutangkis adalah olahraga yang dimainkan oleh minimal 2 orang (untuk tunggal) dan 2 pasangan (untuk ganda) yang berlawanan. 2.1.1
Partai Bulutangkis Ada lima partai yang biasa dimainkan dalam bulutangkis. Partai tersebut
adalah: 1. Tunggal putra 2. Tunggal putri 3. Ganda putra 4. Ganda putri 5. Ganda campuran 2.1.2
Cara Permainan Bulutangkis Tujuan permainan adalah untuk memukul sebuah shuttle cock menggunakan raket, melompati jaring ke wilayah di seputar batasan tertanda sebelum pemain atau pasangan lawan bisa memukulnya balik. Untuk setiap kali ini berhasil dilakukan oleh regu yang menyervis, pemain atau pasangan penyervis
mencetak skor satu poin. Setelah
memenangi satu poin, pemain yang sama menyervis kembali, dan terus 5
6
menyervis sepanjang mereka terus mencetak poin. Apabila regu yang tak menyervis memenangkan reli ini, maka poin akan dicetak oleh mereka dan akan ada pergantian penyervis. Permainan di awali dengan menyervis dari Right Service Court. 2.1.3
Lapangan Bulutangkis Lapangan bulutangkis ini memiliki panjang 13.4 m dan lebar 6.1
m.
Gambar 2.1 Lapangan Bulutangkis
7
2.2
MCS 52 T2 P1.0
VCC
T2EX P1.1
P0.0
P1.2
P0.1
P1.3
P0.2
P1.4
P0.3
P1.5
P0.4
P1.6
P0.5
P1.7
P0.6
RST
P0.7
RXD
P3.0
TXD
P3.1
INT0
P3.2
INT1
P3.3
T0
P3.4
P2.6
T1
P3.5
P2.5
RW
P3.6
P2.4
RD
AT89S52 24PC 0141
EA/VPP PROG/ALE PSEN P2.7
P3.7
P2.3
XTAL2
P2.2
XTAL1
P2.1
VSS
P2.0
Gambar 2.2 Bentuk Fisik AT89S52
AT89S52 adalah mikrokomputer cmos 8-bit yang memiliki daya kerja rendah dan unjuk kerja yang tinggi. AT89S52 memiliki 8-Kbytes flash yang dapat diprogram dan ROM yang dapat dihapus (EPROM). Mikrokontroler atmel AT89S52 menyediakan penggunaan-penggunaan standar seperti flash 8-Kbytes, RAM 256 bytes, 32 jalur input / output, 3 buah timer / counter 16 bit, 6 vektor 2 level arsitektur interrupt, port serial full duplex, on chip oscillator, dan rangkaian clock. Sebagai tambahan, mikrokontroler AT89S52 dirancang dengan logika statis untuk operasi dengan frekuensi menurun sampai 0 dan mendukung 2 mode piranti lunak hemat daya yang dapat
8
dipilih. Mode idle menghentikan CPU namun selama itu pula memperbolehkan RAM, timer/counter, port serial, dan sistem interrupt untuk tetap berfungsi. 2.2.1
Blok Diagram MCS EXTERNAL INTERRUPT S
INTERRUP T CONTROL
ROM
TIMER 0
128 BYTES RA M
TIMER 1
COUNTE INPUT R S
CP U
OSC
BU S CONTROL
4 I/O PORTS
P0 P1 P2 ADDRESS/ DATA
SERIAL PORT
P3
T X
RX
Gambar 2.3 Blok Diagram inti dari AT89S52 2.2.2
Organisasi Memori AT89S52 memiliki ruang alamat memori data dan program yang terpisah. Pemisahan tersebut membolehkan memori data diakses dengan alamat 8-bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi oleh CPU 8-bit. Walaupun demikian alamat memori data 16-bit juga dihasilkan melalui register DPTR.
9
Memori Program (hanya Baca)
Memori Program (Baca/Tulis)
10
Gambar 2.4 Struktur memori program dan data pada AT89S52 Memori program hanya dapat dibaca saja. Terdapat program yang dapat diakses langsung hingga 64K byte. Sedangkan strobe (tanda) untuk akses program memori eksternal melalui sinyal PSEN’ atau program Store Enable. Memori data menempati suatu ruang alamat yang terpisah dari memori program. Memori eksternal dapat di akses secara langsung hingga 64 K byte dalam ruang memori data eksternal. CPU akan memberikan sinyal baca dan tulis, RD’ dan WR’, selama pengaksesan memori data eksternal. Memori data eksternal dan memori program eksternal dapat di kombinasikan dengan cara menggabungkan sinyal RD’ dan PSEN’ melalui gerbang AND dan keluarannya sebagai tanda baca ke memori data atau program eksternal. 2.2.3
Memori Program Pada gambar di bawah ditunjukkan pemetaan bagian bawah dari memori program. Setelah reset, CPU segera mengerjakan program mulai dari lokasi 0000h.
11
Gambar 2.5 Memori program Sebagai mana ditunjukkan gambar diatas masing-masing instruksi disimpan pada lokasi yang telah ditentukan dalam memori program. Sebuah instruksi menyebabkan CPU melompat ke lokasi instruksi yang bersangkutan, yaitu letak dari subrutin layanan instruksi tersebut. Misalnya, External Interrupt 0 disimpan pada lokasi 0003h, jika instruksi ini digunakan, maka layanan rutin instruksi ini harus dituliskan pada lokasi ini, jika tidak, maka lokasi tersebut bisa dipakai pada memori program serba guna (untuk keperluan lainnya). Jika suatu rutin layanan instruksi sangat pendek (kurang dari 8 byte), maka seluruh rutin bisa disimpan pada lokasi yang bersangkutan (sesuai dengan instruksi yang digunakan). Jika terlalu panjang (melebihi atau sama dengan 8 byte), maka harus digunakan suatu perintah lompat
12
kelokasi rutin instruksi yang sebenarnya (dilokasi lain dalam memori program). Alamat-alamat yang paling bawah dari memori program dapat berada dalam flash on-chip maupun memori eksternal, untuk melakukan hal ini lakukan pengkabelan pada pin EA‘ atau Eksternal Akses ke Vcc (untuk akses memori internal) atau GND untuk akses memori eksternal sesuai dengan kebutuhan Pada AT89S52 (dengan flash sebesar 8 Kbyte), jika = Vcc, maka lokasi 0000h hingga 1FFFh menempati memori internal sedangkan lokasi 2000h hingga FFFFh menempati memori eksternal. Jika EA’ = GND, maka semua penggambilan instruksi langsung dilakukan pada memori eksternal. Tanda baca ke memori eksternal digunakan untuk semua pengambilan program eksternal sedangkan pengaksesan instruksi pada memori internal tidak melibatkan 2.2.4
Mode – Mode Pengalamatan Dalam MCS AT89S52 terdapat beberapa jenis pengalamatan yang digunakan untuk mengisi nilai register. Pengalamatan tersebut adalah a. Pengalamatan Langsung ( Direct Addressing ) Dalam pengalamatan langsung ( Direct Addressing ), operan – operan ditentukan berdasarkan alamat 8-bit ( 1 byte ) dalam suatu instruksi. Hanya RAM data internal dan SFR saja yang bisa diakses secara langsung. Contoh dari pengalamatan langsung adalah MOV A,7Fh
13
Artinya adalah nilai A akan diisi dengan nilai yang ada pada alamat 7Fh. Misal nilai pada alamat 7Fh adalah 88h, maka setelah perintah dijalankan, nilai A akan menjadi 88h. b. Pengalamatan Tak-langsung ( Indirect Addressing ) Dalam pengalamatan tak-langsung, instruksi menentukan suatu register yang digunakan untuk menyimpan alamat operan. Baik RAM internal maupun eksternal dapat diakses secara tak-langsung. Register alamat untuk alamat-alamat 8-bit bisa menggunakan StackPointer atau R0 dan R1 dari bank register yang dipilih. Sedangkan untuk alamat 16-bit hanya bisa menggunakan register pointer data 16-bit atau DPTR. Contoh dari pengalamatan Tak-Langsung adalah MOV A,@R0 Artinya adalah diambil nilai yang ada di dalam R0 kemudian nilai tersebut akan dijadikan sebagai alamat yang akan diambil nilainya. Misal nilai R0 adalah 77h dan nilai yang ada pada alamat 77h adalah 99h, maka setelah perintah di jalankan maka nilai A akan menjadi 99h. c. Instruksi – instruksi Register Bank-bank register yang masing-masing berisi R0 hingga R7 atau 8 register,
dapat
diakses
melalui
instruksi
yang
op-kodenya
mengandung 3 bit spesifikasi register ( 000 untuk R0, 001 untuk R1, hingga 111 untuk R7 ). Pengaksesan register dengan cara demikian bisa
menghemat
penggunaan
kode
instruksi,
karena
tidak
14
memerlukan sebuah byte untuk alamat. Saat instruksi tersebut dikerjakan, satu dari delapan register bank yang terpilih yang diakses. Contoh dari pengalamatan register adalah MOV A, R7 Jika nilai R7 adalah 89h maka setelah perintah dijalankan nilai A akan menjadi 89h. d. Instruksi – instruksi Register Khusus Beberapa instruksi hanya dikhususkan untuk suatu register tertentu. Misalnya, suatu instruksi yang hanya bekerja pada akumulator saja, sehingga tidak memerlukan alamat byte untuk menunjuk ke akumulator tersebut. Dalam hal ini op-kodenya sendiri telah mengandung penunjuk ke register yang benar. Instruksi yang mengacu akumulator sebagai A akan dikodekan dengan op-kode spesifik-akumulator. e. Konstanta Langsung ( Immediate Constant ) Nilai dari suatu konstanta dapat segera menyatu dengan op_kode dalam memori program. Misalnya intruksi : MOV A,#100 yang akan menyimpan konstanta 100 (desimal) ke dalam akumulator. Bilangan yang sama tersebut bisa juga dituliskan dalam format heksa sebagai 64h ( MOV A,#64h ). Contoh dari pengalamatan langsung adalah Mov A,#88h Maka setelah perintah dijalankan nilai A akan langsung memiliki nilai 88h. f. Pengalamatan Terindeks ( indexed Addressing )
15
Memori program hanya bisa diakses melalui pengalamatan terindeks. Mode pengalamatan ini ditunjukan untuk membaca Look-up tables yang tersimpan dalam memori program ( data yang menyatu dengan program ). Sebuah register dasar 16-bit (bisa DPTR atau Pencacah Program atau Program Counter ) menunjukan ke awal atau dasar tabel dan akumulator di-set dengan angka indeks tabel yang akan diakses. Alamat dari entri tabel dalam memori program dibentuk dengan menjumlahkan data akumulator dengan penunjuk awal tabel. 2.2.5
Instruksi Pemindahan Data dalam AT89S52 Pada instruksi perpindahan data ini kita mengenal ada beberapa instruksi yang –
dapat digunakan, yaitu:
Perpindahan data dari dan ke memori dan register. Pada perpindahan ini kita menggunakan perintah Mov. Perintah mov digunakan untuk memindahkan sumber data ke tujuan data.
–
Perpindahan data untuk stack digunakan perintah Push dan Pop. Perintah push digunakan untuk menyimpan nilai register (16bit) ke dalam stack. Sedangkan perintah pop digunakan untuk mengambil nilai register (16-bit) yang ada dalam stack.
16
2.3
RS 232 (MAX 232) RS 232 ( MAX 232 ) adalah Protokol komunikasi serial yang berfungsi untuk merubah level tegangan serial dari Komputer ke Sistem Minimum. RS 232 ( MAX 232 ) ini digunakan untuk menyambungkan antar PC dengan modul yang dibuat dengan bantuan DB 25 atau DB 9 yang berfungsi sebagai pin atau konektor. EIA ( Electronic Industries Alliance ) Standar RS-232 mendefinisikan : -
Karakteristik sinyal elektronik seperti level tegangan listrik, nilai sinyal, penjadwalan waktu, level maksimum dari tegangan listrik, sifat dari rangkaian pendek, nilai maksimum dari kapasitansi dan panjang kabel.
-
Karakteristik
mekanik
yang
saling
berhubungan.
konektor
identifikasi pin. -
Fungsi dari setiap rangkaian dari konektor yang saling berhubungan. Berikut adalah Spesifikasi dari RS 232 Tabel 2.1 Spesifikasi RS 232 Spesifikasi
RS 232
Operation Mode
Single ended
Total Driver and receiver
1 driver
( On one Line )
1 receiver
Panjang Maksimum kabel
50 FT
Jumlah maksimum data
20 Kbps
Nilai tegangan maksimum driver
+/- 25V
Slew Rate ( Max )
30 V/us
dan
17
2.4
Jarak tegangan penerima input
+/- 15 V
Sensivitas penerima input
+/- 3 V
Hambatan penerima input
3k to 7k
Relay Relay adalah switch elektrik yang dapat membuka dan menutup dibawah kendali komponen elektronik yang lain. Switch yang sebenarnya hanya dapat dioperasikan dengan menggunakan elektromagnet untuk membuka dan menutup. Dalam relay terdapat 2 cara untuk menyalakan atau menjalankan relay, yaitu –
Normally Open, pada cara ini ketika relay mendapat tegangan maka relay akan menghubungkan semua rangkaian yang terhubung dengan relay. Dan akan terputus apabila relay tidak mendapatkan tegangan.
–
Normally Close, pada cara ini merupakan kebalikan dari Normally Open. Karena semua rangkaian yang terhubung dengan relay akan terputus apabila relay sedang mendapat tegangan, sedangkan rangkaian akan terhubung apabila relay sedang dalam keadaan tidak mendapatkan tegangan.
2.5
Sensor Cahaya (LDR) LDR ( Ligth Dependent Resistor) adalah salah satu jenis resistor yang nilai hambatannya dipengaruhi oleh cahaya yang diterima olehnya. LDR dibuat dari Cadmium Sulfida yang peka terhadap cahaya. Seperti yang telah diketahui bahwa cahaya memiliki 2 sifat yang berbeda yaitu gelombang elektromagnetik dan foton / partikel energy (dualism cahaya).
18
2.5.1
Simbol LDR
Gambar 2.6 Simbol LDR 2.5.2
Cara kerja LDR Saat cahaya menerangi LDR, foton akan menabrak ikatan Cadmium Sulfida dan melepaskan electron. Semakin besar intensitas yang cahaya yang datang, semakin banyak elektron yang terlepas dari ikatan. Sehingga hambatan LDR akan turun saat cahaya meneranginya. LDR akan memiliki hambatan yang sangat besar saat tak ada cahaya yang mengenainya (gelap). Dalam kondisi ini hambatan LDR, mampu mencapai 1 M Ohm. Akan tetapi saat terkena cahaya atau sinar, hambatan LDR akan turun secara drastis hingga nilai beberapa puluh Ohm saja.
2.6
Visual Basic Visual Basic adalah suatu bahasa pemrograman yang bersifat object oriented. Dibawah ini adalah jendela kerja Standar Visual Basic 6.0
19
Gambar 2.7 Jendela kerja Standar Visual Basic 6.0 Pada jendela Kerja terbagi dalam beberapa jendela yang lebih spesifik lagi, yaitu 1. Menu Bar
Gambar 2.8 Menu Bar 2. Toolbar
Gambar 2.9 Toolbar Toolbar ini berisi ikon – ikon yang berfungsi mempersingkat perintah pada menubar. Fungsi ikon – ikon tersebut adalah :
20
Tabel 2.2 Fungsi ikon yang ada di Toolbar No
Nama Ikon
No
Nama Ikon
1
Add Project
13
Break
2
Add Form
14
End
3
Menu Editor
15
Project Explorer
4
Open File
16
Properties
5
Save
17
Form Layout
6
Cut
18
Object Browser
7
Copy
19
Toolbox
8
Paste
20
Data View Window
9
Find
21
Visual Component Manager
10
Undo
22
Posisi Awal Object (x,y)
11
Redo
23
Ukuran Object / Form aktif (lebar x tinggi)
12
Run Project
3. Tool Box
Gambar 2.10 Toolbox Tool Box merupakan kumpulan kontrol yang banyak digunakan dalam pemrograman Visual Basic 6.0.
21
4. Jendela Project Explorer
Gambar 2.11 Jendela Project Explorer Jendela Project Explorer menunjukan project aktif. 5. Jendela Properties
Gambar 2.12 Jendela Properties Jendela ini digunakan untuk mengubah properties suatu object. 6. Jendela Form Layout
Gambar 2.13 Jendela Form Layout Form ini digunakan untuk menentukan posisi suatu form yang akan diaktifkan saat program dijalankan.
22
Berikut ini adalah Operasi Dasar Pada Visual Basic Menggunakan Command Button sebagai tombol. Contoh programnya yaitu : Private Sub Command1_Click() Form1.Caption = "Anda telah menekan tombol" End Sub Maka tampilan kotak dialog windownya setelah command1 di-click akan sebagai berikut :
Gambar 2.14 Contoh penggunaan command button Menggunakan timer sebagai pengatur waktu. Contoh programnya yaitu : Berikut gambar form-nya :
23
Gambar 2.15 Contoh form timer sebagai pengatur waktu
Koding pada timer1 : Dim a As Integer Private Sub Timer1_Timer() a=a+1 If a = 5 Then Text1.Text = "batas waktu anda telah 5 detik" End If End Sub Sebelum menjalankan program timer diatas harus dipastikan terlebih dahulu interval timer1 diset 1000 yang berarti 1 detik. Maka saat dijalankan selama 5 detik hasil yang keluar pada kotak dialog window sebagai berikut :
Gambar 2.16 Hasil dari form timer sebagai pengatur Menggunakan massage box. Contoh programnya yaitu: Private Sub Command1_Click()
24
Form1.Caption = "Anda telah menekan tombol" Msgbox “tombol telah ditekan”, vbExclamation, “pemberitahuan” End Sub
Gambar 2.17 Contoh dari penggunaan Message Box Ketika command button ditekan maka akan muncul message box seperti ada pada gambar diatas. Menggunakan shape untuk animasi led. Contoh programnya yaitu : Dim a As Integer Private Sub Timer1_Timer() a=a+1 If a = 5 Then Form1.Caption = "setelah 5 detik" Shape1.BackColor = vbRed
25
End If End Sub
Gambar 2.18 Contoh dari penggunaan shape untuk animasi led
Gambar 2.19 Hasil dari shape setelah 5 detik Pada gambar diatas dikatakan bahwa pada awalnya shape berwarna putih, tetapi setelah 5 detik warna pada shape akan berubah menjadi merah. Menampilkan waktu pada komputer. Contoh programnya yaitu : Private Sub Timer1_Timer()
26
Label1.Caption = TimeValue(Time) Label2.Caption = Format(Now, "dd mmmm yyyy") End Sub
Gambar 2.20 Tampilan dari waktu dan tanggal komputer Program diatas, akan menampilkan waktu dan tanggal yang ada pada komputer.
Gambar 2.21 Tampilan dari komponen Microsoft Comm Control Gambar di atas adalah MsComm yang berguna untuk komunikasi program Visual Basic dengan modul sistem minimum melalui port serial pada komputer. Koding Visual Basic Private Sub Form_Load()
27
'serial port 1 baudrate 9600 mode 1 MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" If Not MSComm1.PortOpen Then MSComm1.PortOpen = True Else MsgBox ("Port Serial Sedang Dipakai Oleh Program Lain...") End If End Sub Program ini adalah untuk open port serial pada komputer dengan baud rate 9600 kbps, jika port serial sedang dipakai maka program VB akan memberitahukan dengan memunculkan message box.