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 ();
}
}
}
Filed under: AVR Project








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,,,
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.
kalo rangkaiannya kya gmn ya?trims
bagaimana dengan datanya? kalau boleh tahu rangkaian 7segmennya bagaimana, soalnya data untuk data dan scannya.terimakasih
Sip mas,…
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
tinggal tambah untuk tampilan ke LCD aja mas