PRAKTIKUM 2
MEMBACA TOMBOL TEKAN
MEMBACA TOMBOL TEKAN
2.1 Tujuan Instruksional
Khusus
- Dapat mengetahui cara kerja tombol tekan
- Dapat melakukan interface mikroprosesor dengan input tombol tekan
- Dapat melakukan pemrograman mikrokontroler untuk mengakses input tombol tekan
2.2 Dasar Teori
Tombol Tekan
Tombol tekan dapat digunakan untuk memberikan masukan
ke mikrokntroler. Prinsip kerja
yang sederhana untuk membaca tombol
tekan ini nantinya dapat Anda kembangkan untuk membaca piranti masukan lain
seperti sensor-sensor.
Tombol tekan merupakan sebuah piranti masukan
mekanis yang berfungsi untuk memberikan data kepada mikrokontroler. Terdapat
dua macam tombol, yaitu tombol tekan geser dan tombol tekan tekan.
Gambar 2.1. Tombol tekan geser dan simbolnya
Gambar 2.2. Tombol tekan tekan dan simbolnya
Cara menghubungkan tombol tekan ke mikrokontroler seperti
yang ditunjukkan pada Gambar 2.3. Dengan cara pertama (a), Anda dapat menghubungkan
tombol tekan ke port mikrokontroler yang mempunyai resistor pull-up
internal. Pada lembar
data, disebutkan bahwa port 1, port 2, dan port 3 memiliki resistor
pull-up internal sedangkan
port 0 tidak.
Bila tombol tekan pada
posisi terbuka maka logika yang dibaca oleh mikrokontroler adalah 1
karena resistor pull-up internal bekerja. Sedangkan saat tombol tekan pada
posisi tertutup maka logika yang dibaca oleh mikrokontroler adalah 0.
Cara kedua (b) sama seperti cara pertama. Resistor
pull- up eksternal yang dipasang memungkinkan kita untuk menghubungkannya ke
port 0. Cara ketiga (c)
juga dapat dihubungkan
ke port manapun
dengan logika kerja
yang berkebalikan dengan cara
pertama maupun cara
kedua. Pada cara
ketiga terdapat kekurangan yaitu
bila dihubungkan ke port yang mempunyai resistor pull-up internal maka akan
selalu timbul arus yang mengalir dari port ke ground.
Gambar 2.3. Menghubungkan tombol tekan ke mikrokontroler
Saat
Anda menekan atau
menggeser tombol, pulsa
yang dihasilkan tidak
berbentuk persegi yang halus
tetapi mempunyai sedikit
getaran. Ini disebabkan
karena tombol adalah peralatan
mekanis dimana pelat-pelat
logamnya bergetar sebentar
setelah bertabrakan atau terlepas.
Perhatikan gambar 2.4.
Getaran tersebut dikenal
dengan istilah efek bouncing.
Efek bouncing ini
dapat mengganggu kinerja
mikrokontroler saat
mengambil nilai logika
saklar. Getaran yang
terjadi dapat menimbulkan
nilai logika saklar yang berubah dengan cepat.
Gambar 2.4. Efek bouncing yang muncul pada saklar
mekanis
2.3 Daftar
alat dan bahan
- Software Proteus 7
- Software MIDE-51
- Unit Komputer
2.4 Keselamatan
Kerja
- Menggunakan pakaian praktikum dengan baik dan rapi
- Sambungkan perangkat-perangkat yang digunakan sesuai dengan petunjuk pembimbing praktikum
- Jalankan sistem setelah mendapat izin dari pembimbing praktikum.
- Bila praktikum telah selesai, maka bongkar semua perangkat yang digunakan dan simpan pada tempat semula dengan rapi
2.5. Gambar Kerja
Gambar 2.5. Rangkaian
interface input tombol / output LED
Gambar 2. 6. Flowchart pemrograman interface input tombol / output LED
Gambar 2.7. Flowchart
pemrograman menyalakan LED dengan data
bernilai 4 pada tombol tekan
Gambar 2.8. Flowchart pemrograman input tombol bit
ke 0 untuk increment data
Gambar 2.9. Flowchart pemrograman tombol bit ke 0 menentukan nilai LED
bertambah satu secara terus menerus bila tombol ditekan dan tidak dilepas
2.6 Program Mikrokontroler
Program 1.
ORG 0000h
|
||
Loop:
|
MOV A,P2
|
;ambil nilai saklar
|
MOV P1,A
|
;keluarkan
ke LED
|
|
SJMP loop
|
;ulangi
proses terus menerus
|
Program 2.
ORG 0000h
|
||
Loop:
|
MOV A,P2
|
;ambil nilai saklar
|
CJNE A,#0F7h,tidaksama
|
;apakah nilai tombol = 4 ?
|
|
MOV A,#0FFh
|
;ya, siapkan A
dengan FFh
|
|
SJMP LED
|
;lompat ke label
LED
|
|
Tidaksama:
|
MOV A, #00
|
;tidak, siapkan
A dengan 0
|
LED:
|
MOV P1,A
|
;nyalakan led
dengan nilai A
|
SJMP loop
|
;ulangi
proses terus menerus
|
Program 3.
ORG 0000h
|
||
Mov A,#1
|
; nilai awal
|
|
Loop:
|
Mov p1,A
|
; nyalakan LED pada posisi A
|
Baca:
|
Mov C,P2.0
|
; baca tombol bit ke-0
|
JC Baca
|
: ulangi sampai saklar ditekan
|
|
Tambah:
|
INC A
|
; increment acumulator
|
SJMP loop
|
; ulang menyalakan LED
|
Program 4.
ORG 0000h
|
||
MOV A,#1
|
; NILAI AWAL
|
|
LOOP:
|
MOV P1,A
|
; NYALAKAN LED PADA POSISI
|
TEKAN:
|
MOV C,P2.0
|
; BACA TOMBOL BIT KE-0
|
JC TEKAN
|
; ULANGI SAMPAI TOMBOL DITEKAN
|
|
LEPAS:
|
MOV C,P2.0
|
; BACA TOMBOL BIT KE-0
|
JNC LEPAS
|
; ULANGI SAMPAI SAKLAR
DI LEPAS
|
|
TAMBAH:
|
INC A
|
; increment acumulator
|
SJMP LOOP
|
; ulang menyalakan LED
|
2.7
Langkah Percobaan
- Hubungkan LED ke port 1 dan saklar ke port 2 seperti pada Gambar 2.5.
- Buat program untuk algoritma pada Gambar 2.6, seperti pada program 1 dan kompile serta jalankan program tersebut. Program ini akan membaca nilai saklar dan menampilkannya ke LED.
- Catat penunjukkan indikator LED untuk setiap penekanan tombol tekan pada Tabel 2.1
- Buat program untuk algoritma pada Gambar 2.7, seperti pada program 2 dan kompile serta jalankan program tersebut.
- Catat penunjukkan indikator LED untuk setiap penekanan tombol tekan pada Tabel 2.2
- Buat program untuk algoritma pada Gambar 2.8, seperti pada program 3 dan kompile serta jalankan program tersebut.
- Catat penunjukkan indikator LED untuk setiap penekanan tombol tekan pada Tabel 2.3
- Buat program untuk algoritma pada Gambar 2.9, seperti pada program 4 dan kompile serta jalankan program tersebut.
- Catat penunjukkan indikator LED untuk setiap penekanan tombol tekan pada Tabel 2.4
2.8 Data
Tabel. 2.1
Hasil Program 1
Penekanan Tombol
|
Tampilan LED
|
|||||||
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
0
|
||||||||
1
|
||||||||
2
|
||||||||
3
|
||||||||
4
|
||||||||
5
|
||||||||
6
|
||||||||
7
|
Tabel. 2.2 Hasil Program 2
Penekanan
Tombol
|
Tampilan LED
|
|||||||
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
0
|
||||||||
1
|
||||||||
2
|
||||||||
3
|
||||||||
4
|
||||||||
5
|
||||||||
6
|
||||||||
7
|
Tabel. 2.3
Hasil Percobaan 3
Penekanan Tombol
|
Tampilan LED
|
|||||||
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
1
|
||||||||
2
|
||||||||
3
|
||||||||
4
|
||||||||
5
|
||||||||
6
|
||||||||
7
|
Tabel. 2.4
Hasil Program 4
Penekanan Tombol
|
Tampilan LED
|
|||||||
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
0
|
||||||||
1
|
||||||||
2
|
||||||||
3
|
||||||||
4
|
||||||||
5
|
||||||||
6
|
||||||||
7
|
2.9 Pertanyaan
- Lakukan analisis terhadap hasil percobaan
- Buatlah kesimpulan terhadap hasil analisis yang telah dilakukan
- Perhatikan apa saja perbedaan pada program 4 dengan program 3 terhadap hasilnya
- Bagaimana alternatif lain yang dapat digunakan pada program 3 agar hasilnya dapat serupa dengan hasil program 4
- Buat konfigurasi nyala LED dalam bentuk berbeda untuk setiap penekanan masing-masing tombol
Tidak ada komentar:
Posting Komentar
Terima kasih sudah membaca blog saya, silahkan tinggalkan komentar anda