Membuat Papan Skor Counter Up
Membuat Papan Skor Counter Up
Pada postingan kali ini saya ingin Berbagi sedikit Tutorial Buat temen-temen yang pengen
belajar CodeVision AVR Atau Buat lagi buat project, berikut adalah tutorial Membuat Papan
Skor dengan CodevisionAVR, Papan ini digunakan untuk menampilkan skor pertandingan dua
tim dengan range skor setiap tim 0-99.
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:D 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. Perlu diperhatikan untuk pemberian input berupa
tombol kita harus mengatur statenya menjadi input semua dan nilai PORTnya menjadi 1, ini
dimaksudkan untuk memberi Pull-Up, karena untuk tombol Biasa kita gunakan Pull-Up internal.
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) setelah pernyataan if (!PINB.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.
bagi yang belum paham cara membuat project baru pada CV-AVR silahkan kunjungi laman:
Cara membuat project baru pada CV-AVR
/*****************************************************
http://www.hpinfotech.com
Version : V0.1
Date : 04/2/2015
Company : RELiF.Inc
Comments:———————
*****************************************************/
#include <mega16.h>
#include <delay.h>
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char ribu=0;
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 run()
tampil();
if(!PINB.0)
{
while(!PINB.0){tampil();}
{ratus=0; ribu=0;}
else{
ratus–;
if(ratus<0)
ribu–;
ratus=9;
}}}
else if(!PINB.1)
while(!PINB.1){ tampil();}
ratus++;
if(ratus>9)
ratus=0;
ribu++;
}}
else if(!PINB.2)
while(!PINB.2){tampil();}
else{
satu–;
if(satu<0)
puluh–;
satu=9;
}}}
else if(!PINB.3)
while(!PINB.3){ tampil();}
satu++;
if(satu>9)
satu=0;
puluh++;
}}
else
{}}}
void main(void)
PORTA=0x00;
DDRA=0x00;
PORTB=0x0F;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x0F;
while (1)
run();