Cara Membuat Papan skor dengan mikrokontrol atmega8

Membuat Papan Skor dengan CVAVR untuk atmega. Sudah beberapa x bikin postingan tentang papan skor menggunakan AVR atmega dan codevision, atmega yang aku pake seringnya atmega16 karena selain port ekspansinya banyak, harganya gak beda jauh dari atmega8 yang lebih murah.

Tapi klo memang pengen bikin papan skor manual dengan push button pake atmega8 sebenernya tinggal edit saja postinganku yang Cara membuat papan skor counter up down atmega (counting sampai 99, cocok untuk papan skor basket/badminton), atau yang Cara membuat papan skor menggunakan mikrokontrol atmega dan codevision avr (counting sampai 9, cocok untuk papan skor sepakbola/tenis lapangan yang skornya gak butuh banyak2) 

Untuk postingan yang counting up 99, beberapa yang diedit adalah posisi PORT dan PIN, mengingat untuk atmega8 PORTC.6 itu juga dipake buat reset, jadi mending tukeran PORT B jadi output seven segment, dan PORT C jadi input tombolnya. Setting clock kristalnya pake 8MHz

Programnya kek gini

#include <atmega8.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;
 PORTB=bil[ribu];
 delay_ms(2); 
 PORTD=0x02;
 PORTB=bil[ratus];
 delay_ms(2);
 PORTD=0x04;
 PORTB=bil[puluh] ;
 delay_ms(2);
 PORTD=0x08;
 PORTB=bil[satu] ;
 delay_ms(2);
}

void main(void)
{
DDRC=0x00;
PINC=0x00;
DDRB=0xff;
DDRD=0xff;
PORTB=0xc0;
PORTD=0xff;
delay_ms(2);
while(1)
{
 tampil();
{
if(PINC.0==0)
{
while(PINC.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(PINC.1==0) 
{ while(PINC.1==0)
{ tampil();}  
ratus=ratus+1;   if(ratus>9)
 {
 ratus=0;
 ribu=ribu+1;
 }}
else if(PINC.2==0)
{
while(PINC.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(PINC.3==0) 
{ while(PINC.3==0)
{ tampil();}  
satu=satu+1;  if(satu>9)
 {
 satu=0; 
 puluh=puluh+1;
 }}
 else
 {}}}}

Tampilan simulasi via ISIS proteusnya kek gini

papan skor atmega8 counter up down

download file source codevision AVR & isis proteus “Membuat Papan skor counting 99 dengan ATMega8” nya

Tinggalkan komentar