Keypad Matrix untuk pengendali 7segmen

Keypad matrix adalah kumpulan push button yang dibuat dalam bentuk matriks. Keypad matrix digunakan untuk mensiasati keterbatasan alokasi PORT pada perangkat elektronik sementara untuk keperluan inputnya membutuhkan jumlah yang banyak. Penggunaan satu pin untuk satu tombol akan mengakibatkan kekurangan ketersediaan port, sehingga dibuatlah skema keypad matriks.

Seperti halnya penggunaan dot matrix yang digunakan sebagai output, keypad matriks bekerja berdasarkan aturan yang sama, perbedaannya hanya dari arah komunikasi data, keypad digunakan sebagai input dan dot untuk keperluan output.

Hampir semua perangkat key based berbasis keypad matriks, entah keypad hp maupun keyboard PC. itulah mengapa jumlah tombol keyboard mencapai puluhan tetapi konektornya cukup USB/ PS2. Hal itu terjadi karena penggunaan algoritma matriks yang kemudian dikirimkan dalam komunikasi serial.

Pada postingan kali ini akan membahas penggunaan keypad matriks untuk mengendalikan output 7segmen. Nilai pada 7 segmen akan berubah sesuai dengan tombol yang ditekan pengguna. Matriks yang digunakan adalah 3×4 setara dengan keypad handphone lama. Dari 12 tombol yang ada 2 tombol sisi kanan dan kiri bagian bawah tidak digunakan, karena hanya untuk simulasi penekanan angka 0-9 saja.

Listing code menggunakan Codevision 2.03 standar, nilai 7segmen dikendalikan variabel bertipe array.

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.0 Standard
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : Keypad Matriks untuk kendali 7segmen
Version : 1
Date    : 03/06/2013
Author  : Priyo Harjiyono
Company : http://anotherorion.com
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>

unsigned char bil[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main (void)
{
DDRB=0x00;
DDRA=0x0f;
DDRC=0xff;
PORTC=0xff;

while(1)
{
 PORTA=0x01;   //baris 1
 delay_ms(1);
 if(PINB.0==1)
 {

 PORTC=bil[3];
 }
 else if(PINB.1==1)
 {
 PORTC=bil[2];
 }
 else if(PINB.2==1)
 {
 PORTC=bil[1];
 }
 PORTA=0x02;      //baris 2
  delay_ms(1);
 if(PINB.0==1)
 {
 PORTC=bil[6];
 }
 else if(PINB.1==1)
 {
 PORTC=bil[5];
 }
 else if(PINB.2==1)
 {
 PORTC=bil[4];
 }
PORTA=0x04;        //baris 3
 delay_ms(1);
 if(PINB.0==1)
 {

 PORTC=bil[9];
 }
 else if(PINB.1==1)
 {
 PORTC=bil[8];
 }
 else if(PINB.2==1)
 {
 PORTC=bil[7];
 }
 PORTA=0x08;      //baris 4
  delay_ms(1);
 if(PINB.0==1)
 {
 PORTC=0xff;
 }
 else if(PINB.1==1)
 {
 PORTC=bil[0];
 }
 else if(PINB.2==1)
 {
 PORTC=0xff;
 } 
}
}

Output seven segment menggunakan jenis common anoda, rangkaian proteus skematiknya dapat digambarkan sebagai berikut

BACA JUGA:   Menggunakan DotMatriks ATMega dengan codevision (I)

keypad-matrix-kendali-7segmen Keypad Matrix untuk pengendali 7segmen  wallpaper

pengendalI seven segment

anotherorion

Priyo Harjiyono, blogger kelahiran Cilacap yang kini menjadi warga Ngayogyakarta Hadiningrat, baginya blog adalah dunia untuk menciptakan mimpi2nya. Saat ini masih disibukkan sebagai pembelajar dalam dunia pendidikan.

4 tanggapan untuk “Keypad Matrix untuk pengendali 7segmen

  • November 13, 2014 pada 1:11 pm
    Permalink

    ngak bisa download file nya pak… :'(

    Balas
    • November 13, 2014 pada 1:41 pm
      Permalink

      gak bisa download tapi bisa ngetik… alhamdulillah RUNNING……

      Balas
    • Juni 6, 2013 pada 11:50 am
      Permalink

      via FB atau networked blog aja mbak, klo gak isi manual di dashboard WP/BS e mbak sarah

      Balas

Berikan tanggapan anda

%d blogger menyukai ini: