Pada artikel kali ini, akan saya bahas mengenai pemahaman posisi bit pada mikrokontroler, sederhana sih, dan dasar sekali. Namun untuk yang baru belajar juga mungkin masih ada yang belum paham, atau sulit memahaminya, biasanya yang belajarnya otodidak (kaya saya :p )

Saya sendiri kurang tahu rata - rata berapa jumlah port yang tersedia dari mikrokontroler, tapi kalau saya ambil contoh dari yang banyak digunakan seperti ATMEGA16. Strukturnya terdapat 4 PORT yaitu PORTA, PORTB, PORTC, PORTD. Dan setiap port memiliki 8 register bit (I/O Port), Untuk pemahamannya dalam penggunaannya bisa melihat script dibawah 

/*
 * Belajar_Output_UC.cpp
 *
 * Created: 07/01/2016 14:46:34
 *  Author: Diaz
 */


#include <avr/io.h>

int main(void)
{
    DDRA=0xff; //PORTA Diatur sebagai output
    DDRB=0xff; //PORTB Diatur sebagai output
    DDRC=0xff;
    DDRD=0xff;
   
    while(1)
    {
        PORTA=0xbb; //PORTA bernilai 10111011 (sama seperti portb)
        PORTB=0b10111011;
        PORTC=0b10101010;
        PORTD=0b111011;
    }
}

Dan dari script diatas, jika disimulasikan menggunakan proteus akan menghasilkan gambar seperti ini
Pemahaman posisi register bit mikrokontroler
Pemahaman posisi register bit mikrokontroler

Untuk pemahamannya adalah sebagai berikut
  • Sebelumnya perlu dipahami karna Led pada kutub anoda sudah diberi tegangan, maka setiap kutub katoda yang mendapat Ground atau Logika 0, maka LED akan menyala.
  • LED dari kiri kekanan dihubungkan ke mikrokontroler register bit 0 sampai 7 (bit 0 paling kiri, dan bit 7 paling kanan)
  • Pembacaan posisi bit pada script adalah bit 0 dimulai dari sebelah kanan.
  • Pembacaan posisi bit pada Led adalah bit 0 dimulai dari sebelah kiri karna paling kiri dihubungkan ke register bit 0
  • Sebagai contoh jika kita lihat PORTB, jika membaca nilai bit 0 pada script dari kanan, yaitu 10111011 lalu kita samakan dengan LED dari sebelah kiri yang juga berarti bernilai 11011101. Dan led yang menyala hanya 2 yaitu yang berlogika 0, yaitu bit ke 2 dan 6
  • Contoh lain jika kita tulis seperti PORTD yang bernilai 111011. Berarti dari bit ke 0 adalah bernilai 110111. Dan led yang menyala hanya LED pada bit ke 2, namun karna posisi bit ke 6 dan 7 tidak diatur, maka defaultnya akan bernilai 0 sehingga LED yang menyala adalah posisi bit ke 0, 6, dan 7.
Sama seperti contoh sebelumnya, setiap pembuktian perintah menggunakan 1 PORT (8bit) sebagai pembuktiannya, dan script tersebut saya buat menggunakan Atmel Studio 6 + AVRGCC dan Proteus

Saya sarankan untuk menulis ulang semua script tersebut secara manual, agar kalian lebih cepat menghafal dan memahami script tersebut. Namun jika mendapat kesulitan, saya sediakan file script beserta file proteusnya yang dapat didownload di sini

Sayapun disini masih belajar sehingga belum tentu benar mengenai semua yang  saya jabarkan diatas, jika ada yang merasa janggal atau merasa ada kesalahan dalam penjabaran saya, bisa kita diskusikan dikomentar.

Good Luck!

Related Post :