A. OUTPUT
seperti bahasan sebelumnya bahwa input-output pada mikrokontroler ini mengacu pada port yang disediakan oleh mikrokontroler,,,, yaitu jumlah kaki setiap port...
perlu diingat lagi bahwa dalam pemrograman:
PORT digunakan untuk mengisi nilai bit, misalkan low atau high, 1 untuk high atau 0 untuk low.
PIN ini digunakan intuk pemanggilan input saja. Jadi apabila di suatu program ingin mengambil nilai input maka pakai PIN.
DDR ini digunakan untuk menentukan data direction ( data direction register ) apakah sebuah PORT ingin dijadikan input atau output.
Sebuah DDR jika memiliki nilai bit satu ( 1 ) berarti dia sebagai OUTPUT dan jika memiliki nilai nol ( 0 ) maka dia sebagai INPUT
misal PORT A mempunyai 8 buah kaki jadi dapat didefinisikan PORT A adalah 8 bit data.
silahkan rangkailah rangkaian seperti ini, dengan proteus 7.2.
rangkaian ini adalah rangkaian dimana pada PORT A sebuah mikrokontroler dipasang 8 LED activ low ( menyala apabila PORT berlogika 0 / low )
jadi untuk mengeset semua output pada PORT A hidup adalah dengan cara:
mengeset PORT A sebagai output yaitu pada data direction register / DDR harus bernilai 1.
DDRA=0xFF; // all PORT A as output
langkah pemrograman:
1. buka codevisionAVR 1.59
2. buat project baru, klik file-> new dan tandai project lalu OK
3. muncul codewizard setting clock : 12Mhz dan chip : AtMega16->klik file lalu generate save and exit
4. simpan ditempat yang mudah dicari dan diingat, misal di My Document dengan nama file : output
5. hapus semua hasil dari generate yang ada sehingga jendela editor bersih. dan buat header chip yang dipakai...
jadi dah tau kan header tu apa,,,?
header tu kepala program yang disana gigunakan untuk menempatkan penggunaan Hardware
CHP yang dipakei jika AtMega16 maka : #include
LCD #include
PENUNDAAN : #include
PENAMPILAN VAR STRING utk LCD / studio LCD : #include
program utama harus dibuat dibawah header...
Void main(void){
...
}
sesudah ini set register dari PORTA sebagai output tadi dan diletakkan di dalam program utama
Void main(void){
DDRA=0xff;
...
...
}
dibawahnya kemudian buat perulangan untuk looping program...
Void main(void){
DDRA=0xff; // semua kaki port A sebagai output
while(1){ //perulangan
}}
nah ini program dimana PORT A disetting sebagai outtput... tetapi ini belum selesai karena nilai ouput belum ada atau terpasang disana. untuk meletakkan nilai output maka dipasang di dalam looping.
nah sekarang pasangkan nilai PORTA apabila diinginkan semua dari led tersebut ingin hidup semua. maka yang dibutuhkan adalah semua bernilai 0 jadi PORTA=0x00;
LED nyala semua
Void main(void){
DDRA=0xff; // semua kaki port A sebagai output
while(1){ //perulangan
PORTA=0x00;
}}
sekarang cobalah program ini:
#include
#include
Void main(void){
DDRA=0xff; // semua kaki port A sebagai output
while(1){ //perulangan
PORTA=0x00;
delay_ms(500);
PORTA=0xff;
delay_ms(500);
}}
Bagaimana hasilnya?
B. INPUT
jika output ini digunakan untuk mengeluarkan sebuah logika dari sebuah pin atau 8 bit pin dari kaki mikrontroller. maka ini berkebalikan dengan sebuah input bahwa input ini digunakan untuk membaca sebuah logika dari sistem luar atau input device. Input tersebut tentusaja dalam level logika 1 dan 0 antara 0-5 volt ( kecuali dari input ADC).
untuk membaca sebuah input maka pada kaki mikrokontroller yang diinginkan sebagai input didefinisikan PIN.
untuk mengeset sebuah PORT mikrokontroller manjadi input maka harus mengeset DDR dan PORT pada pemrograman mikrokontroller.
misal PORTA sebagai input semua maka :
DDRA=0x00;
dan set input bernilai 1 maka
PORTA=0xFF;
set input benilai 1 ini yang disebut dengan PULL UP. Input pull up ini seperti halnya memasang resistor pull-up secara sistem atau internal mikrokontroller.
sekarang kita coba mengkonfigurasikan input dan diaplikasikan ke output.
coba rangkaialah rangkaian seperti ini.
MEMBUAT ROBOT LINE FOLLOWER