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 mikrokontroler atmega codevision avr

butuh source code codevision + rangkaian ISIS proteus?

BACA JUGA:   Papan skor dengan atmega8

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


coding arduino hitung mundur seven segment menggunakan button (2)

Post You May Also Like

Post Author: 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 thoughts on “Membuat Digital Counter Up and Down menggunakan Tombol

    fafa

    (April 16, 2017 - 11:00 pm)

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

      anotherorion

      (April 17, 2017 - 10:06 am)

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

Berikan tanggapan anda