MODUL
PRAKTIKUM
MIKROPROSESOR (LAB PTE 03)
DYAH LESTARI
LABORATORIUM DIGITAL DAN MIKROPROSESSOR
JURUSAN
TEKNIK ELEKTRO
FAKULTAS
TEKNIK
UNIVERSITAS NEGERI
MALANG
2015
MODUL
IV
ANTARMUKA
MIKROKONTROLER DENGAN KEYPAD
- Mengetahui
dan memahami cara mengantarmukakan mikrokontroler dengan keypad.
- Mengetahui
dan memahami bagaimana memrogram mikrokontroler untuk membaca masukan dari
keypad.
Gambar 4.1 Keypad 4x4
Dalam modul I/O yang di Dalam gambar
4.2 keypad dihubungkan ke PORTB mikrokontroler dengan posisi baris (b1-b4)
terhubung ke PORTB.0-PORTB.3 dan posisi kolom (c1-c4) terhubung ke
PORTB.4-PORTB.7. Sedangkan untuk mengetahui tombol apa yang ditekan oleh user,
8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.
Gambar 4.2
Rangkaian keypad dan LED
- 1
set PC/Laptop yang sudah berisi program Code Vision dan Khazama
- 1
buah catu daya DC +5V
- 1
buah multimeter
- 1
buah ISP Downloader AVR
- 1
buah sistem minimum AVR
- 1
buah modul I/O
- 1
buah keypad
- 1
buah kabel printer USB
- 2
buah kabel pita hitam
1.
Hubungkan soket
jumper PORTB pada minimum system dengan soket jumper KEYPAD dan soket jumper
PORTC pada minimum system dengan soket jumper OUTPUT pada I/O.
2.
Buka program Code Vision AVR
3.
Buatlah project
baru dengan inisialisasi PORTB.0-PORTB.3 sebagai output dengan kondisi awal
berlogika HIGH dan PORTB.4-PORTB.7 sebagai input dengan pull-up (DDRB = 0FH dan
PORTB=FFH), serta PORTC sebagai output dan kondisi awal LOW (DDRC = FFH dan
PORTC=00H), sehingga pada program bagian inisialisasi PORTB dan PORTC terlihat
sebagai berikut:
PORTB=0xff; //0b11111111
DDRB=0x0f; //PORTB
sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff; //PORTC sebagai
output
4.
Deklarasikan
fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai
bilangan integer pada global variabel.
unsigned
char keypad();
5.
Tuliskan script
berikut dalam program utama:
while (1)
{
PORTC=keypad();
//menampilkan hasil yang dikembalikan oleh fungsi
ke LED
}
6.
Tambahkan
fungsi berikut di bawah program utama (di luar fungsi void) :
unsigned
char keypad()
{
PORTB = 0b11111110; //aktifkan baris1 (memberi
logika 0 ke baris1)
delay_ms(100);
if(PINB.7==0) return (10);
if(PINB.6==0) return (3);
if(PINB.5==0) return (2);
if(PINB.4==0) return (1);
//========================
PORTB = 0b11111101; //aktifkan baris2
delay_ms(100);
if(PINB.7==0) return (11);
if(PINB.6==0) return (6);
if(PINB.5==0) return (5);
if(PINB.4==0) return (4);
//========================
PORTB = 0b11111011; //aktifkan baris3
delay_ms(100);
if(PINB.7==0) return (12);
if(PINB.6==0) return (9);
if(PINB.5==0) return (8);
if(PINB.4==0) return (7);
//========================
PORTB = 0b11110111; //aktifkan baris4
delay_ms(100);
if(PINB.7==0) return (13);
if(PINB.6==0) return (15);
if(PINB.5==0) return (0);
if(PINB.4==0) return (14);
}
7.
Tekan tombol
keypad, amati nyala LED dan isi Tabel 4.1.
8.
Ubah program
utama untuk algoritma berikut:
a.
Jika tombol 0 ditekan semua LED mati.
b.
Jika tombol 1 ditekan semua LED menyala.
9.
Buatlah satu
program dengan algoritma sebagai berikut:
a.
Jika tombol 0 ditekan LED bit 0 menyala.
b.
Jika tombol 1 ditekan LED bit 1 menyala.
c.
Jika tombol 2 ditekan LED bit 2 menyala.
d.
Jika tombol 3 ditekan LED bit 3 menyala.
e.
Jika tombol 4 ditekan LED bit 4 menyala.
f.
Jika tombol 5 ditekan LED bit 5 menyala.
g.
Jika tombol 6 ditekan LED bit 6 menyala.
h.
Jika tombol 7 ditekan LED bit 7 menyala.
i. Jika tombol 8 ditekan LED menyala berurutan dari atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
j. Jika tombol 9 ditekan LED menyala berurutan dari atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
i. Jika tombol 8 ditekan LED menyala berurutan dari atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
j. Jika tombol 9 ditekan LED menyala berurutan dari atas kebawah dengan delay 1 detik. (Gunakan perulangan for ...)
l.
Jika tombol B ditekan LED bit 0,2,4,6, mati dan bit 1,3,5,7
menyala.
m.
Jika tombol C ditekan ditekan algoritma k dan l dilaksanakan
bergantian dengan delay 1 detik.
n.
Jika tombol D ditekan ditekan maka LED menyala menunjukkan
nilai biner dua digit terakhir NIM anda.
o.
Jika tombol * semua LED mati.
p.
Jika tombol # semua LED menyala.
DATA HASIL PERCOBAAN
1.
Tabel 4.1
No
|
Tombol keypad yang
ditekan
|
Tampilan LED
|
Nilai tampilan LED
(dalam desimal)
|
1
|
0
|
||
2
|
1
|
||
3
|
2
|
||
4
|
3
|
||
5
|
4
|
||
6
|
5
|
||
7
|
6
|
||
8
|
7
|
||
9
|
8
|
||
10
|
9
|
||
11
|
A
|
||
12
|
B
|
||
13
|
C
|
||
14
|
D
|
||
15
|
*
|
||
16
|
#
|
2. Source code program pada langkah percobaan nomor 8
3.
Source code program pada langkah percobaan nomor 9
1.
Analisa hasil percobaan pada tabel 4.1!
2.
Instruksi apa yang digunakan untuk mebaca tombol keypad yang
ditekan?
3.
Instruksi yang digunakan untuk menyalakan LED sesuai keypad
yang ditekan?
4.
Buatlah flowchart instruksi pada nomor 3 dan jelaskan
algoritmanya!
0 komentar:
Posting Komentar