Membuat counter 00 – 99 ATmega8535 dengan bahasa C Avrstudio

Membuat program untuk mikrokontroller avr atmega8535 tidak sulit yang dibayangkan, apa lagi jika yang digunakan adalah bahasa C. Selain mudah dimengerti juga mudah untuk dipahami dibandingkan dengan bahasa assembly. Kekurangan yang terdapat pada bahasa C ini hanya pada saat di compile kapasitasnya akan lebih besar dibandingkan dengan assembly dengan programan yang sama. Software yang dapat digunakan untuk pemrograman C salah satunya adalah AVRstudio, software ini dikeluarkan verdor ATMEL secara freeware. Memang untuk versi yang lama hanya bisa digunakan untuk bahasa assembly, kecuali versi terbaru yaitu versi 4.12 atau versi 4.13 dapat digunakan untuk bahasa C.  Berikut ini contoh penggunaan bahasa C dengan menggunakan AVRstudio 4.13 untuk pembuatan counter 00 – 99.

Tombol = Port A.0

Seven Segment common anode = Port B

Scan = Port C.7 & Port C.6

 

#include <avr/io.h>
#include <util/delay.h>

unsigned char hitung,seg1,seg2;
unsigned char kodeangka[]={0xC0,0xF9,0xA4,0xB0,0×99,0×92,0×82,0xF8,0×80,0×90};

void display (void)
 {
    seg1=hitung;
  seg1%=0x0A;
  PORTB=kodeangka[seg1];
  PORTC&=~(1<<7);
  _delay_ms(20);
  PORTC|=(1<<7);
  seg2=hitung;
  seg2/=0x0A;
  PORTB=kodeangka[seg2];
  PORTC&=~(1<<6);
  _delay_ms(20);
  PORTC|=(1<<6);
  if (hitung == 100)
  hitung = 0×00;
  else 
  return;
  }
int main (void)
{
 DDRB = 0xFF; //PORTB=output
 DDRC = 0xFF; //PORTC=output
 PORTA= 0xFF; //enable all pull up
 PINA = 0xFF;
 DDRA = 0×00; //PORTA=input
 hitung = 0×00;

 while (1)
 { 
 char tombol;
 tombol=PINA;
 switch(tombol)
  {
   case 254://11111110
   hitung++; display ();PINA=0xFF;
   break;
   case 255://11111111
   display ();
   break;
   default:display ();
   }
  }
}

Advertisement

7 Responses

  1. bisa nanya ga’ mas,,,
    saya mau membuat counter 2 digit 7-segment.(at8535)
    7-segment nya ada di port 3 dan port 4.
    sebagai input adalah LDR. artinya setiap LDR mengeluarkan tegangan yang memberi logic 1, counter akan tambah 1 dan begitu seterusnya sampai 99.
    kira-kira program bah. C nya gmn ya,,,

  2. bisa aja caranya buat buffer dan tabel untuk seven segment, lalu buat counter manual hasilnya di konversikan dengan tabel seven segment yang kita buat. semoga bermanfaat.

  3. kalo rangkaiannya kya gmn ya?trims

  4. bagaimana dengan datanya? kalau boleh tahu rangkaian 7segmennya bagaimana, soalnya data untuk data dan scannya.terimakasih

  5. Sip mas,…

  6. mas mw nanya,,
    klo mw buat counter kyk yg di atas, tp nampilinnya pke LCD, code yng di atas yg perlu disesuaikan apa aja??
    sya jg pke avr studio. thanks

  7. tinggal tambah untuk tampilan ke LCD aja mas

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.