You are on page 1of 8

BINARY CODED DECIMAL

1. PENGERTIAN BCD
Seperti telah kita ketahui, dalam peralatan elektronik yang menggunakan Digital sistem
operasinya berdasarkan cara kerja saklar yang diwujudkan dalam bentuk bilangan Biner yang
menggunakan logika 1 dan 0, sedangkan dalam kehidupan sehari-hari kita
berkomunikasi dengan menggunakan sistem informasi yang berdasarkan angka-angka dan
huruf-huruf (alfanumeric). Angka-angka tersebut berupa kombinasi dari angka Desimal 0
sampai 9 dan huruf-huruf A samapai Z (26 huruf).

Maka dari itu untuk dapat menghubungkan antara perhitungan yang dilakukan oleh
manusia dengan perhitungan yang dilakukan oleh sistem Digital perlu adanya suatu sistem
yang dapat melakukan perubahan (Konversi) dari bentuk Desimal ke dalam bentuk Biner.
Perubahan tersebut dapat dilakukan dengan menggunakan SISTEM SANDI atau KODE.
Salah satu sistem sandi yang dipergunakan untuk mengadakan perubahan (menyandi) dari
bilangan Desimal menjadi bilangan Biner disebut kode BCD atau Binary Coded Decimal.
Untuk menyandi bilangan-bilangan Desimal dapat dilakukan dengan menggunakan
menggunakan angka Biner 4 Bit (Binary Digit) sehingga akan diperoleh 16 kemungkinan
kombinasi 4 Bit bilangan Biner.

Table 4.1 Konversi Binary, Decimal, dan Hexadecimal
Binary Hexadecimal Decimal X1 X16
0000 0 0 0 0
0001 1 1 1 16
0010 2 2 2 32
0011 3 3 3 48
0100 4 4 4 64
0101 5 5 5 80
0110 6 6 6 96
0111 7 7 7 112
1000 8 8 8 128
1001 9 9 9 144
1010 A 10 10 160
1011 B 11 11 176
1100 C 12 12 192
1101 D 13 13 208
1110 E 14 14 224
1111 F 15 15 240

Penyandian yang sering digunakan dikenal sebagai kode 8421BCD dan 2421BCD.

A. KODE BCD 8421
Pada umumnya untuk merubah bilangan Biner yang terdiri dari banyak digit ke
dalam bilangan Desimal akan menyulitkan dan memakan waktu lama. Sebagai contoh
misalnya bilangan Biner (110101110011)
2,
kalau kita hitung dengan menggunakan
harga jelas ini akan memakan waktu yang cukup lama.

Dengan bantuan kode BCD semuanya akan menjadi mudah. Pengertian dari kode
BCD ini adalah mngelompokkan bilangan Biner yang tiap kelompoknya terdiri dari 4
Bit bilangan Biner yang dapat menggantikan setiap digit dari bilangan Desimal dengan
urutan yang berdasarkan harga tempat seperti 8, 4, 2, 1. Dengan demikian kode tersebut
dinamakan kode BCD 8421.

Urutan dari bilangan kode BCD 8421 dapat bertambah dan berkembang terus,
misalnya bilangan Desimal puluhan dapat bertambah dengan kelipatan 10
1
(80, 40, 20,
10), bilangan Desimal ratusan dengan kelipatan 10
2
(800, 400, 200, 100) dan begitulah
seterusnya. Sebagai contoh misalnya:

a) Buatlah kode BCD 8421 dari bilangan Desimal 1995
Penyelesaian:
1995 = 0001 1001 1001 0101
1 9 9 5
Jadi (1995)
10
= (0001011001100101)
BCD 8421
atau
= (11001110010101)
BCD 8421

b) Rubahlah kode BCD 8421 (110010100010) menjadi bilangan Desimal
Penyelesaian:
110010100010 = 0001 1001 0100 0101
1 9 4 5
Jadi sandi BCD 8421 (110010100010) = (1945)
10


B. KODE BCD 2421
Seperti halnya pada kode BCD 8421, maka pada kode BCD 2421 bilangan 2421
menunjukkan urutan bobot bilangan atau harga tempat dari digit bilangan Biner. Dalam
membuat kode BCD 2421 kita dapat membuat beberapa kemungkinan penulisan 4 Bit
bilangan Biner. Sebagai contoh :

angka Desimal 2 dapat ditulis 0010 atau 1000
angka Desimal 4 dapat ditulis 0100 atau 1010

Dari uraian diatas maka dapat ditarik kesimpulan bahwa dengan menggunakan 4
Bit bilangan Biner yang dipakai sebagai pengganti bilangan Desimal, maka akan
dihasilkan banyak sekali kode BCD. Hal ini disebabkan karena tiap-tiap Bit dapat
diubah berdasarkan bobot tertentu. Sebagai contoh misalnya: BCD 8421, BCD 2421
dan lain-lain. Contoh membuat kode 2421

Buatlah kode 2421 dari bilangan Desimal 1945
Penyelesaian:
(1945)
10
= 0001 1111 0100 0101
1 9 4 5
= (1111101001010)
BCD 2421

Atau = 0001 1111 1010 1011
1 9 4 5
Dalam rangkaian elektronika kita mengenal sebuah seven segmen. Seven segmen
merupakan rangkaian pendisplay angka yang terdiri dari beberapa dioda cahaya (LED)
yaitu LED untuk pembentukan angka dan satu LED sebagai titik. Ada dua jenis LED
untuk berdasarkan kaki yang di pakai bersama-sama (common), yaitu common anoda
dan common katoda.Untuk memudahkan dalam menyalakan seven segmen, maka di
butuhkan decoder khusus untuk mengkodekan dari kode Biner menjadi kode-kode
Biner yang sesuai untuk membentuk display angka. Ada dua driver umum yang di
pakai sebagai decoder ke seven segmen (BCD to seven segmen), antara lain IC 7447
untuk seven segmen ke dua. BCD to seven segmen adalah pengubah kode BCD ke
kode seven segment.

Gambar 4.1 IC decoder biner ke decimal

Table 5.1 Konversi biner ke desimal
Input Output
Desimal
A B C D a b c d e f g
0 0 0 0 1 1 1 1 1 1 0 0
0 0 0 1 0 1 1 0 0 0 0 1
0 0 1 0 1 1 0 1 1 0 1 2
0 0 1 1 1 1 1 1 0 0 1 3
0 1 0 0 0 1 1 0 0 1 1 4
0 1 0 1 1 0 1 1 0 1 1 5
0 1 1 0 0 0 1 1 1 1 1 6
0 1 1 1 1 1 1 0 0 0 0 7
1 0 0 0 1 1 1 1 1 1 1 8
1 0 0 1 1 1 1 0 0 1 1 9








2. IMPLEMENTASI BCD

BCD to seven segmen adalah pengubah kode BCD ke kode seven segmen. banyak
aplikasi yang menggunakan seven segmen contohnya adalah kalkulator digital, jam digital,
rambu-rambu lalulintas dan masih banyak lagi. Seven segmen terdiri dari beberapa dioda
cahaya (LED), LED untuk pembentuk angka dan 1 LED sebagai titik. Pembentukan LED
dapat menggunakan rangkaian logika dan IC 7447 untuk seven segmen common kedua.


Gambar 5.1 IC 7447 ke seven segment

Penggunaan Switch BCD
Switch BCD bisa kita gunakan untuk menginput data ke microcontroller
dengan tampilan angka desimal yg lebih user friendly. 1 buah Switch BCD terdiri
dari 4 bit bilangan BCD , artinya data input antara 0~9 desimal atau 000 ~ 1001
biner. Untuk input data lebih dari 9, BCD switch bisa ditambahkan (di seri) sbb:

Dengan 2 bcd switch kita bisa mendapatkan input maximum 99


74LS47
Rangkaian switch BCD



Contoh Code program membaca switch BCD :






// LCD display di PORTC
//2 switch BCD di PORTB
//compiler= codevision
// program by
pccontrol.wordpress.com

#include <mega8535.h>
#include <bcd.h>
// Alphanumeric LCD Module
functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <stdio.h>
#include <delay.h>

unsigned char bcd;
unsigned int output;
char tampung[10];

void main(void)
{

PORTB=0x00;
DDRB= 0x00;

lcd_init(16);

lcd_gotoxy(0,0);
lcd_putsf("terbaca:");

// Global enable interrupts
#asm("sei")

while (1)
{
bcd = PINB; //baca BCD switch
output= bcd2bin(bcd); //konversi
BCD ke desimal /integer
//==========================
//menampilkan data ke LCD 2x16
//============================
sprintf(tampung,"%i ",output);
lcd_gotoxy(10,0);
lcd_puts(tampung);

};
}

Untuk pengiriman ke serial rs232 (kode
ascii) gunakan kode berikut:
putchar(output/10 %10 + 0x30);
//digit ke 2
putchar(output %10 + 0x30);
//digit ke 1





Konfigurasi Switch BCD secara Paralel
sUntuk Menghemat pin Port I/O jika kita menggunkan lebih dari 4 sitch BCD kita
bisa memasang dengan formasi paralel seperti tampak pada gambar berikut:





Cara membacanya secara bergantian dengan memberi logika 1 pada switch yang
akan dibaca lewat PORTB.4~PORTB.7 dan data ynag akan dibaca pada
PORTB.0~PORTB.3.
flow nya spt ini:
1. PORTB.7~PORTB.4 diset sebagai output
2. PORTB.3~PORTB.0 diset sebagai input
3. set PORTB.7~PORTB.4 = 0001 // pembacaan 1 buah BCD
4. data = pinb
5. data = data & 0xF (bit 7~4 di nolkan karena data ada di bit 3~0)
6. konversi data ke desimal, bcd2bin(data)
7. jika pembacaan ke 2 dikali 10, ke 3 dikali 100 , ke-4 dikali 1000.
8. hasil pembacaan pertama sampai ke 4 dijumlah.

You might also like