Membuat Digital Counter Up and Down menggunakan Tombol

Digital Counter adalah sebuah pencacah berbasis digital yang dapat melakukan perhitungan counting down maupun counting up. Prinsip kerja digital counter hanyalah melakukan penambahan atau pengurangan nilai sehingga diperoleh nilai berikutnya. Program counting down akan bekerja mengurangi nilai, sedangkan counting up berfungsi menambah nilai satu persatu.

Oke untuk prinsip dasar perhitungan semacam itu mungkin tidak akan terlalu susah. Tapi bagaimana jika menerjemahkannya dalam bentuk program digital counter menggunakan mikrokontroler, misalnya AVR Atmega? Menggunakan sistem komputer tentu saja berbeda dengan hanya melakukan counting secara manual, apalagi jika kita menggunakan pemrograman perangkat keras seperti mikroprosessor dan mikrokontroler, tentu harus bisa menerjemahkan setiap step dengan detail. Misal bagaimana melakukan counting, mentransfer ke display dan harus diperhatikan pada saat terjadi limpahan carry agar nilai yang didapat tetap sesuai dengan perhitungan.

Program decade counter berikut ini berfungsi melakukan pencacahan naik dari 0 ke 99, akan tetapi, dia bisa berubah menjadi counting down jika tombol pada PINA.0 ditekan. Counting down akan dimulai dari nilai terakhir angka yang tampil. Lalu jika tombol pada PINA.0 dilepas, program akan kembali melakukan counting up berdasar nilai terakhir.

#include <mega16.h>
#include <delay.h>
unsigned char bil[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

char puluh=0;
unsigned char satu=0; //nilai awal =99

void tampil (void)
{
char i,j;
for(i=0;i<10;i++)
{
for(j=0;j<50;j++)
{
PORTD=0x01;
PORTC=bil[puluh] ;
delay_us(200);
PORTD=0x02;
PORTC=bil[satu] ;
delay_us(200);
}} }

void main(void)
{

DDRA=0x00;
DDRC=0xff;
DDRD=0xff;
PORTC=0xc0;
PORTD=0xff;
delay_ms(2);
while(1)
{
tampil();
if(PINA==0)
{

if(satu==0)
{
if(puluh==0)
{
satu=9; puluh=9;
}
else if(puluh>=1)
{
satu=9;
puluh=puluh-1;
}
}
else if(satu>=1)
{
satu=satu-1;
}
}
else
{

if(satu==9)
{
if(puluh==9)
{
satu=0;puluh=0;
}
else if(puluh>=0)
{
satu=0;
puluh=puluh+1;
}
}
else if(satu>=0)
{
satu=satu+1;
}
}
}
}

program-decade-counter-up-down Membuat Digital Counter Up and Down menggunakan Tombol  wallpaper

butuh source code codevision + rangkaian ISIS proteus?

BACA JUGA:   Mau belajar mikrokontroler secara otodidak?

baca juga puluhan artikel lain tentang belajar mikrokontroler atmega gratis di anotherorion.com

counter up menggunakan tombol, program avr sensor cahaya ke sevent segment, skema seven segment dengan atmega 328, push button untuk menambah angka pada 7 segment avr, counter atmega8535 dengan tombol, cara menggunakan seven segment 2 digit, program 7 segment counter up down, membuat counter dengan program baca tombol avr, program avr counter manual dengan tombol, cara counter push button avr

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.

2 tanggapan untuk “Membuat Digital Counter Up and Down menggunakan Tombol

  • April 16, 2017 pada 11:00 pm
    Permalink

    makasih gan, tapi kok masih mulai di angka 99 ya, yg diganti sebelah mana ya?

    Balas
    • April 17, 2017 pada 10:06 am
      Permalink

      Bagian deklarasi variabel satuan dan puluhan diganti dr 9 ke 0 mbak

      Balas

Berikan tanggapan anda

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: