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 swich kita bisa mendapatkan input maximum 99

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 

Untuk 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 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.




About these ads

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 20 June 2011, in Tips & Trik. Bookmark the permalink. Leave a comment.

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 67 other followers

%d bloggers like this: