Kali
ini, saya akan bahas dasar bahasa pemrograman C dengan topik operasi
bitwise. Dimana operasi bitwise adalah operasi yang berfungsi untuk
memanipulasi bit yang ada. Didalam bahasa C, terdapat 6 jenis operasi
bitwise, yaitu :
- >> (Geser ke kanan)
- << (Geser ke kiri)
- ~ (NOT)
- & (Logika AND)
- | (Logika OR)
- ^ (Logika XOR)
Pada part kedua mengenai operasi bitwise, akan saya bahas untuk operasi bitwise not, langsung saja kita lihat script berikut
/*
* Bitwise_NOT.cpp
*
* Created: 07/01/2016 17:14:35
* Author: Diaz
*/
#include <avr/io.h>
int main(void)
{
DDRA=0xff; // Menjadikan PORTA sebagai output
PORTA=0xff; // Menjadikan PORTA sebagai output dengan default berlogika 1
DDRB=0xff; // Menjadikan PORTB sebagai output
PORTB=0xff; // Menjadikan PORTB sebagai output dengan default berlogika 1
DDRC=0xff; // Menjadikan PORTC sebagai output
PORTC=0xff; // Menjadikan PORTC sebagai output dengan default berlogika 1
DDRD=0xff; // Menjadikan PORTD sebagai output
PORTD=0xff; // Menjadikan PORTD sebagai output dengan default berlogika 1
unsigned char a; // Membuat Variabel global a
a=0b00001111; // a bernilai 00001111
while(1)
{
PORTA=a;
PORTB=~a;
}
}
Dari script diatas akan membentuk gambar seperti berikut
Contoh Operasi Bitwise NOT Bahasa C
Untuk operasi Not ini sangat mudah, karna output dari NOT hanyalah kebalikan dari input. Dari script diatas saya buat PORTA dan B sesuai variabel a yaitu 00001111. Namun untuk PORTB saya beri tanda ~ (Not) sehingga hasilnya akan menjadi kebalikan dari PORTA.
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.
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!