Membuat Papan Skor Counter Up/Down Codevision

papan skor codevisionAVR

Membuat Papan Skor dengan CodevisionAVR, sebelumnya pernah aku ulas di salah satu postingan yang berjudul membuat  papan skor atmega16 dengan codevision avr. Papan ini digunakan untuk menampilkan skor pertandingan dua tim dengan range skor setiap tim 0-9. Dalam postingan tersebut terdapat dua buah tombol untuk menambah skor masing-masing tim.

Tutorial papan skor tersebut cocok untuk permainan sepakbola yang skornya jarang lebih dari satu digit, tetapi mungkin tidak akan berguna jika digunakan untuk menampilkan skor pertandingan badminton, bola voli apalagi bola basket. Dan karena ada request temen untuk membuat papan skor yang dapat menampilkan sampai puluhan, maka postingan ini aku buat.

Papan skor ini selain mampu menampilkan hasil pertandingan dalam dua digit, juga dilengkapi dengan tombol counter up dan counter down untuk setiap timnya, ya ini buat jaga2 aja kali aja official pertandingan kelewat girang mencet2 tombol skor malah skornya kelebihan kan mending dikasih counter down nya juga 😀

Nilai tampilan dalam seven segment diatur oleh PORTC sebagai output, sedangkan kendali seven segment ada di PORTD. PORTB berfungsi sebagai input dimana PINB.0 dan PINB.1 untuk counter down/up skor tim pertama, sementara PINB.2 dan PINB.3 untuk counter down/up tim kedua.

Untuk menghemat program seperti biasa aku hanya menggunakan satu variabel array yang berisi nilai tampilan seven segment. Dan mungkin jika ada pertanyaan kenapa harus menambahkan looping while (PINB.0==0) setelah pernyataan if (PINB.0==0) semata-mata agar selama tombol ditekan dan tidak dilepas, maka nilai hanya akan bertambah 1 kali saja setiap ditekan, berapapun lamanya. Ini mencegah bouncing dan penambahan nilai terlalu banyak karena terlalu lama ditekan. Penggunaan sub rutin tampil dimaksudkan agar kita tidak perlu menulis perintah agar ATMega menampilkan pergantian setiap nilai seven segment.

Listing lengkap programnya adalah sebagai berikut.

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Advanced

Project : papan skor puluhan
Version : 1.0
Date : 5/27/2013
Author : priyo harjiyono
Company : http://anotherorion.com
Comments: 
find more project at http://anotherorion.com or
follow at @anotherorion 

Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 4.001000 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};
char ribu=0;
signed char ratus=0;
char puluh=0;
signed char satu=0;

void tampil (void)
{
 PORTD=0x01;
 PORTC=bil[ribu];
 delay_ms(2); 
 PORTD=0x02;
 PORTC=bil[ratus];
 delay_ms(2);
 PORTD=0x04;
 PORTC=bil[puluh] ;
 delay_ms(2);
 PORTD=0x08;
 PORTC=bil[satu] ;
 delay_ms(2);
}

void main(void)
{
DDRB=0x00;
PINB=0x00;
DDRC=0xff;
DDRD=0xff;
PORTC=0xc0;
PORTD=0xff;
delay_ms(2);
while(1)
{
 tampil();
{
if(PINB.0==0)
{
while(PINB.0==0){tampil();}
if(ratus==0 & ribu==0)
{ratus=0; ribu=0;} 
else{
 ratus=ratus-1;
 if(ratus<0)
 {
 ribu=ribu-1;
 ratus=9;
 }}}
else if(PINB.1==0)
{
while(PINB.1==0){ tampil();}
 ratus=ratus+1; 
 if(ratus>9)
 {
 ratus=0;
 ribu=ribu+1;
 }}
else if(PINB.2==0)
{
while(PINB.2==0){tampil();}
if(satu==0 & puluh==0)
{satu=0; puluh=0;} 
else{
 satu=satu-1; 
 if(satu<0)
 {
 puluh=puluh-1;
 satu=9;
 }}}
 else if(PINB.3==0)
{
while(PINB.3==0){ tampil();}
 satu=satu+1;
 if(satu>9)
 {
 satu=0; 
 puluh=puluh+1;
 }}
 else
 {}}}}

rangkaian simulasi menggunakan ISIS proteus dapat dilihat dibawah ini.

papan skor codevisionAVR

cara membuat papan penggantian pemain manual, program counter up down lengkap, cara membuat papan skor digital, cara membuat papan pergantian pemain, rangkaian papan skor digital, cara membuat papan skor manual, papan skor bola voli, cara membuat papan skor futsal manual, rangkaian papan skor, membuat papan skor digital

23 Komentar

  1. Endrew Indriyanto Balas

    Sip Kari Nambahi Hardware penguat Arus . . .
    Duwe Downloader e ra lik ??? po skema sak programe

  2. Priyo Harjiyono Balas

    bisa mas, pada waktu pembuatan wizard di awal clocknya ganti aja pake 12 MHz, klo sudah terlanjur membuat program ganti settingnya di menu Project-Configure-C Compiler, setting clocknya tinggal disesuaikan cristalnya mas

  3. Priyo Harjiyono Balas

    cara copynya download as pdf dulu mas di kanan atas postingan, nanti bisa dicopas dari file PDF itu 🙂

  4. Tio Muyink Balas

    Priyo Harjiyono Hehehe… udah saya lakukan bang.
    BTW, aku mo buat kode tsb di atmega8 yg karna nganggur, bisakah abang butkan…hehe
    soale aku dah coba modif tapi masih banyak eror sana sini 🙁

  5. Priyo Harjiyono Balas

    Tio Muyink kirim file pembuatannya aja mas, source codevision+proteusnya ke email saya/fb insyaallah klo lagi senggang saya bantu

  6. Rahmat Balas

    Salam kenal mas Priyo, saya di Riau…
    Kalau boleh saya pesan 1 set komponen nya untuk Papan Score Bulutangkis sekaligus panduan merakitnya, untuk box atmega, saklar dll biar saya yang siapkan, jadi saya tinggal rangkai saja. Untuk Program mohon sekaligus diinstalkan saja. Jujur saya sangat awam di elektronika.
    Kalau permohonan saya diterima, mohon kita dapat komunikasikan kelanjutannya via email saya mas… Terimakasih Mas Priyo

    • anotherorion PenulisBalas

      salam kenal mas rahmat, terimakasih sudah berkunjung ke blog saya, untuk pembuatan papan score, mohon maaf saya belum bisa memenuhinya karena saat ini saya memiliki kesibukan lain di bidang pendidikan sehingga tidak memiliki waktu untuk membuat hardwarenya, sekali lagi saya mohon maaf mas rahmat

  7. Ramadhani Kosasih Balas

    gan boleh minta file proteusnya gak saya mau uji coba alatnya gan sebagai wawasan di mikrokontroler.

  8. Ramadhani Kosasih Balas

    gan boleh minta file proteusnya gak saya mau uji coba alatnya gan sebagai wawasan di mikrokontroler.

  9. Yhono Sj Balas

    maaf mas,, mohon bantuannya mas.. saya buat program untuk antrian menggunakan push button mas.. dengan tampilannya 7 segment..
    karna dalam 1 port saya gunakan dua 7segment… jadi saya pakek IC 7447.. itu cara mrogrammnya gimana mas… hihhhihihihi
    karna belum ada contohnya mas di blog mas ni,,,

    • anotherorion PenulisBalas

      Hallo mas Deddy, untuk pin H pada seven segment digunakan untuk menyalakan led Dot pada tampilan seven segment, jadi opsional saja karena tidak terlalu dibutuhkan untuk penampilan karakter

Berikan tanggapan anda

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