Pada percobaan ini menggunakan saklar toggle
sebagai input ke dalam mikrokontroller. Kemudian data yang diinputkan diolah
menjadi beberapa program untuk menghidupkan LED.
Ø
Saklar Toggle
Saklar toggle adalah salah
satu saklar elektrik yang digerakkan secara manual oleh batang mekanik. Saklar
toggle tersedia dalam berbagai bentuk dan ukuran, serta digunakan dalam
berbagai aplikasi.
Ø
Perintah dasar membaca data
Sebelum
membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan. Data
bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal pada main
program.
unsigned char data_in;
Untuk membaca data byte ke PORTX
(X=A, B, C, D) digunakan statement
data_in = PINX;
Untuk membaca data bit ke PORTX.Y
(X=A, B, C, D dan Y=0, 1, 2 , 3, 4, 5, 6, 7) digunakan statement
data_in = PINX.Y;
a.
Alat dan Bahan
Ø
1 set
laptop / PC 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 I/O
Ø
1
buah kabel printer USB
Ø
2
buah kabel pita hitam
b.
Prosedur Percobaan
1.
Hubungkan
PORTB pada minimum sistem dengan soket jumper OUTPUT pada I/O dan soket jumper
PORTC pada minimum sistem dengan soket jumper INPUT pada I/O
2.
Buka
progam Code Vision AVR
3.
Buatlah
project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan ouput
value = 0 (PORTB=00H), dan PORTC sebagai input (DDRC = 00H) dan resistor pull
up dihubungkan (PORTC = FFH) sehingga padaprogram bagian inisialisasi PORTB dan
PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff;
//portb sebagai output, 0b11111111, nilai awal 0
PORTC=0xff;
DDRC=0x00;
// portc sebagai input, 0b00000000, pull up
4.
Tambahkan
deklarasi variabel
unsigned char data_in;
5.
Tuliskan
dalam program utama sebagai berikut:
// Program Saklar 1
data_in=PINC; // baca saklar di PORTC
PORTB=data_in; // tampilkan logika saklar ke LED
di PORTB
6.
Pindakan
saklar sesuai tabel, amati dan catat nyala LED
7.
Ulangi
langkah 3-4 untuk program berikut:
// Program Saklar 2
data_in=PINC.0; // baca saklar bit ke 0
PORTB.7=data_in; // tampilkan logika saklar pada
LED bit ke 7
8.
Pindahkan
saklar sesuai tabel, amati dan catat nyala LED
Ø
Hasil percobaan 1
No.
|
Saklar
76543210
|
LED
76543210
|
1
2
3
4
5
6
7
8
9
|
00000001
00000011
00000101
00001001
00010001
00100001
01000001
10000001
11111111
|
00000001
00000011
00000101
00001001
00010001
00100001
01000001
10000001
11111111
|
Analisa:
Pada saat PORTC difungsikan sebagai
input dan dalam program tertulis data_in=PINC; maka toggle switch berfungsi
sebagai saklar untuk menginputkan data ke mikrokontroller dan data itu
dimasukkan ke variable data_in. Karena yang dituliskan PINC, maka yang
digunakan sebagai input adalah data byte atau semua bit digunakan untuk
menginputkan data ke mikrokontroller. Kemudian ketika dalam program tertuliskan
PORTB=data_in; maka PORTB digunakan untuk mengeluarkan data yang masuk ke
variable data_in dengan LED sebagai media outputnya. Dan pada program yang
dituliskan adalah PORTB jadi yang dikeluarkan adalah data byte atau semua bit
digunakan.
Ø
Hasil percobaan 2
No.
|
Saklar
76543210
|
LED
76543210
|
1
2
3
4
5
6
7
|
00000001
00000011
00000100
00001001
00010000
00100001
01000000
|
10000000
10000000
00000000
10000000
00000000
10000000
00000000
|
Analisa:
Pada percobaan 2 pada program utama
tertulis data_in=PINC.0; jadi script tersebut digunakan untuk menginputkan data
bit yaitu bit ke 0. Maka data yang masuk ke PINC bit 0 akan dimasukkan ke
variable data_in. Pada program juga dituliskan PORTB.7=data_in; maka data yang
masuk ke variable data_in akan dikeluarkan pada PORTB bit 7. Script PORTB bit 7
juga berarti data yang dikeluarkan adalah data bit.
Pada percobaan 2 ini didapatkan hasil
LED yang menyala hanya pada PORTB bit 7 dan itu menyala jika pada saklar bit 0
berlogika 1. Hal ini dikarenakan pada program utama dituliskan PINC.0, jadi
yang diprogram sebagai input hanya PORTC bit 0.
0 komentar: