DASAR PEMROGRAMAN DAN APLIKASI MICRO CONTROLLER
INPUT/OUTPUT
Masukan/Luaran (I/O) pada Mikrokontroler AVR
Mohon silahkan melihat kembali
berbagai macam fitur ATMega16 (sebagai contoh mikrokontroler
AVR) pada halaman-halaman sebelum
ini. Salah satunya adalah memiliki 4 x 8 saluran masukan dan
luaran digital (berlogika 0 atau
1), totalnya 32 bit atau 32 pin! Masing-masing diberi nama A, B, C
dan D (masing-masing 8 pin atau 8
bit).
Kali ini kita akan membahas
tentang hal dasar berkaitan dengan konsep I/O atau masukan/luaran
pada mikrokontroler AVR:
Membaca
tingkat tegangan masukan, apakah berlogika 0 (tegangan disekitar 0 volt) atau 1
(tegangan
Mengeluarkan tingkat tegangan 0
(sekitar 0 volt) atau 1 (sekitar 5 volt);
5.1. Register DDRx
Digunakan untuk menentukan apakah
sebuah pin pada sebuat PORT (A, B, C atau D) sebagai
masukan atau luaran atau disebut
sebagai arah (direction) dari pin yang bersangkutan:
Berikan
logika 1 (satu) pada bit yang terkait agar dijadikan sebagai luaran atau
output.
Berikan
logika 0 (nol) pada bit yang terkait agar dijadikan sebagai masukan atau
input.
Misal PORTA semua bit akan
digunakan sebagai masukan, maka untuk mengaturnya kita gunakan
perintah...
DDRA= 0x00; //seluruh pin-pin pada Port A digunakan
sebagai input
Misalnya lagi, PORTA.0 akan
dijadikan masukan sedangkan PORTA.2 sampai PORTA.7 akan
digunakan sebagai luaran, maka
perintahnya...
DDRA= 0xFE;
Perhatikan 0xFE
(heksa) = 0b11111110 (biner), perhatikan baik-baik konversi biner ini, setiap
bit
nilai biner mewakili Pin-Pin pada PortA.
Register PORTx
Sebagaimana dijelaskan
sebelumnya, jika sebuah PORT, semua atau sebagian, dikonfigurasi sebagai
masukan, maka register ini
berfungsi sebagai penentu apakah kondisi pin yang terkait di-pullup atau
Floating. Begitu juga
jika dikonfigurasi sebagai luaran, maka register ini menentukan kondisi pin
yang terkait terbyang di maksud
dengan pullup. Saat tidak ada tegangan dari luar, PIN.1 akan
cenderung
berkondisi HIGH
(logika 1).
Sedangkan PIN.2 dibiarkan begitu saja sehingga kondisi logik dari
PIN.2 begitu rentan
terhadap pengaruh disekitarnya. PIN.2 bisa berlogika HIGH, bisa
juga
berlogika LOW, ini artinya
logika PIN.2 mengambang (floating).
Kondisi floating biasanya
diperlukan saat PIN sebuah mikrokontroler dihubungkan ke suatu sensor.
Karena jika di pullup,
dikhawatirkan kondisi logik PIN tersebut mengganggu kondisi logik pin-pin
sensor yang bersangkutan.aca HIGH atau
LOW. Untuk memahami hal ini, perhatikan Gambar 14.
Perhatikan contoh-contoh
berikut...
DDRA=0x00;
PORTA = 0xFF;
Ini berarti seluruh pin-pin pada
PORTA dijadikan sebagai masukan dan di-pullup, artinya pada
rangkaian yang terkait, jika
menggunakan tombol atau pushbutton, jika tidak ditekan akan terbaca
HIGH dan jika ditekan akan
terbaca LOW. Gunakan contoh rangkaian pada Gambar 15 dan
perhatikan tanda panah, pushbutton
satu ujung dihubungkan ke pin yang terkait sedangkan ujung
lainnya di-GND-kan. INGAT! Ini
bukan satu-satu-nya cara membuat rangkaian masukan dengan
pushbutton, tetapi ini
cara yang mudah dan murah meriah... he he he...
Contoh lainnya...
DDRB= 0x00;
PORTB=0x0F;
Ini artinya seluruh pin-pin PORTB
dijadikan masukan, dengan konfigurasi 0x0F (0b00001111) atau
PORTB.0 sampai PORTB.3 di-pullup,
sedangkan PORTB.4 sampai PORTB.7 dikonfigurasi
floating.
5.3. Register PINx
Digunakan untuk membaca masukan
pada pin yang bersangkutan, akan dijelaskan pada contoh
program di halaman-halaman berikutnya.
A. OUTPUT :
1) LED
1. FLIP FLOP
2. RUNNING LED
2) 7 SEGMENT
1. MANUAL :
A. PENGKODEAN
B. COUNTER UP
C. COUNTER DOWN
2. IC BCD
A. PENGKODEAN
B. COUNTER UP
C. COUNTER DOWN
3) DOT MATRIK
1. MANUAL :
A. PENGKODEAN
B. COUNTER UP
C. COUNTER DOWN
2. IC BCD
A. PENGKODEAN
B. COUNTER UP
C. COUNTER DOWN
4) LCD
MENAMPILKAN TEXT/KARAKTER
5) MOTOR STEPPER
MENJALANKAN MOTOR CW DAN CCW
6) MOTOR DC
MENJALANKAN MOTOR CW DAN CCW
7) MOTOR SERVO
MENJALANKAN MOTOR CW DAN CCW
8) BUZZER
MEMBUNYIKAN BUZZER
B. INPUT :
1) PUST BUTTON
TEKAN PUSH BUTTON LED NYALA/TAMPIL DI LCD
2) SWITCH
TEKAN SWITCH LED NYALA/TAMPIL DI LCD
3) KEYPAD
A. TEKAN TOMBOL MUNCUL DI LCD
B. PROGRAM KALKULATOR
4) SENSOR :
a) LDR
b) FHOTO DIODA
c) POTENSIO METER
d) LM 35
MENAMPILKAN HASIL PEMBACAAN SENSOR KE PERANGKAT OUTPUT
Tidak ada komentar:
Posting Komentar