- Mengetahui
dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian input
saklar toggle.
- Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca data input dari 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. Dalam modul I/O yang dipakai dalam praktikum, saklar toggle yang
digunakan diberi rangkaian tambahan berupa rangkaian LED untuk melihat secara
langsung logika yang ada pada saklar. Rangkaian LED sama dengan rangkaian dalam
Modul I. Kedelapan rangkaian saklar
tersebut dihubungkan ke sebuah soket jumper bernama INPUT.
- Sebelum
membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan.
Data bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal
pada main program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;
…
- Untuk
membaca data byte ke PORTX (X=A, B, C, D) digunakan statement
data_in = PINX;
contoh: data_in = PINB;
- 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;
contoh: data_in =
PINB.1;
- 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 I/O
- 1
buah kabel printer USB
- 2
buah kabel pita hitam
PROSEDUR
1.
Hubungkan soket jumper PORTB pada minimum system
dengan soket jumper OUTPUT pada I/O dan soket jumper PORTC pada minimum system
dengan soket jumper INPUT pada I/O
2.
Buka program Code Vision AVR
3.
Buatlah project baru dengan inisialisasi PORTB
sebagai output (DDRB = FFH) dan output value = 0 (PORTB=00H), dan PORTC sebagai input (DDRC = 00H) dan resistor
pullup dihubungkan (PORTC=FFH) sehingga
pada program 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 lokal dalam program
utama
unsigned char data_in;
5.
Tuliskan dalam program utama sebagai berikut:
// Program Saklar1
data_in=PINC; //baca saklar di PORTC
PORTB=data_in; //tampilkan logika saklar ke LED di PORTB
6.
Pindahkan saklar sesuai tabel 2.1 dibawah, amati
dan catat nyala LED.
7.
Ulangi langkah 3-4 untuk program berikut:
//Program Saklar2
data_in
= PINC.0; // baca saklar bit ke 0
PORTB.7
= data_in; // tampilkan logika saklar
pada LED bit ke 7
8.
Pindah saklar sesuai tabel 3.1 dibawah, Amati
dan catat nyala LED.
9.
Buat program untuk masing–masing algoritma
berikut dengan menggunakan if :
a)
Jika switch bit 0 berlogika 1 maka LED bit 4
menyala.
b)
Jika switch bit 1 berlogika 1 maka LED bit 7
menyala.
10. Buat
satu program untuk masing–masing algoritma berikut dengan menggunakan
if-else.
a)
Jika switch bit 0 berlogika 1 maka LED bit 4
menyala.
b)
Jika switch bit 1 berlogika 1 maka LED bit 7
menyala.
c)
Jika switch bit 2 berlogika 1 maka LED menyala
dengan konfigurasi
ON-OFF-ON-OFF-ON-OFF-ON-OFF (bit7-bit0).
d)
Jika switch bit 3 berlogika 1 maka LED menyala
dengan konfigurasi
OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-bit0).
e)
Jika switch bit 4 berlogika 1 maka LED menyala
semua.
f)
JIka switch bit 5 berlogika 1 maka LED mati
semua.
g)
Jika switch bit 6 berlogika 1 maka LED menyala
berurutan mulai dari bit0 ke bit7 lalu kembali lagi ke bit0 dengan delay 1
detik
h)
Jika switch bit 7 berlogika 1 maka LED akan
menyala dengan nilai sama dengan dua digit terakhir NIM anda.
1.
Tabel 2.1
No.
|
Saklar
|
LED
|
7
6 5 4
3 2 1
0
|
7
6 5 4
3 2 1
0
|
|
1
|
0
0 0 0
0 0 0
1
|
|
2
|
0
0 0 0
0 0 1
1
|
|
3
|
0
0 0 0
0 1 0 1
|
|
4
|
0
0 0
0 1 0
0 1
|
|
5
|
0
0 0 1
0 0 0 1
|
|
6
|
0
0 1 0 0 0 0 1
|
|
7
|
0 1 0 0 0 0 0 1
|
|
8
|
1 0 0 0
0 0 0
1
|
|
9
|
1 1 1 1 1 1 1 1
|
2.
Tabel 3.1
No.
|
Saklar
|
LED
|
7
6 5 4
3 2 1
0
|
7
6 5 4
3 2 1
0
|
|
1
|
0
0 0 0
0 0 0
1
|
|
2
|
0
0 0 0
0 0 1
1
|
|
3
|
0
0 0 0
0 1 0
0
|
|
4
|
0
0 0
0 1 0
0 1
|
|
5
|
0
0 0 1
0 0 0
0
|
|
6
|
0
0 1 0
0 0 0
1
|
|
7
|
0
1 0 0
0 0 0
0
|
3.
Source code program pada percobaan langkah 9
4.
Source code program pada percobaan langkah 10
File CV AVR dan Simulasi Proteus
Project File CVAVR | Mirror
Project Sim Proteus | Mirror
ANALISA DATA
File CV AVR dan Simulasi Proteus
Project File CVAVR | Mirror
Project Sim Proteus | Mirror
1.
Analisa Program Saklar1 dan Saklar2
2.
Instruksi apa yang digunakan untuk membaca data
input?
3.
Apakah perbedaan program yang menggunakan if dan
if-else?
A motivating discussion is definitely worth comment.
ReplyDeleteI believe that you should write more on this issue, it might not be a taboo subject but generally
folks don't discuss these topics. To the next!
Many thanks!!