Kelas : 2B
No/Nama Modul
: SEVEN SEGMENT DISPLAY
Percobaan
2. Landasan Teori
AVR adalah salah satu 8-bit mikrokontroller berarsitektur RISC buatan ATMEL/
MICROCHIP. AVR memiliki kecepatan eksekusi instruksi sekitar 1 MIPS perMHz.
Sevent segment adalah display yang terdiri dari 8 buah led. Jika Anodanya digabungkan
disebut common anoda dan jika Katodanya yang digabung disebut common
catoda.
4. Langkah-langah percobaan
10) Click kanan IC ATmega32, load firmware, pilih file.hex dari project tadi yang
telah di-compile dan di build pada langkah 7 dan 8.
Gambar 5
11) Click open jika sudah menemukan file yang dimaksud pada langkah no.10
Gambar 6
12) Aktifkan simulator dengan mengklik “power circuit”, amati outputnya.
13) Jika ada perubahandi program setelah dicompile dan dibuild ulang, kemudian di load
firmware atau reload firmware
14) Pada codevision, buat project baru dan ikuti langkah 1 sampai 13 untuk program berikut
void main (void)
{ unsigned char lookup[20]={ 63,6,91};
DDRA= 0xff;
while (1)
{
PORTA = lookup[0];
delay_ms(500);
PORTA = lookup[1];
_delay_ms(500);
PORTA = lookup[2];
_delay_ms(500);
}
}
15) Modifikasi program diatas untuk menampilkan angka 0 sampai 9 dengan
menggunakan looping
16) Buat project baru ikuti langkah 1 sampai 13 untuk gambar rangkaian gambar 7 dan
program dibawah ini
void main (void){
unsigned char lookup[20]={63,6,91} Gambar 7
DDRA=0xff;
DDRC=0xff;
While(1){
PORTA=lookup[0];
PORTC=0x7f
Delay_ms(500);
PORTA=lookup[1];
PORTC=0xbf;
Delay_ms(500);}}
5. Hasil Pengamatan
Seluruh bagian dari 7 Segment akan menyala mulai dari A hingga COM dengan delay 1
detik dalam setiap perpindahannya setelah itu akan mati.
7 Segment menyala dan menampilkan angka mulai dari 0 sampai 2 dengan deay
perpindahan 500ms,setelah sampai 2 kemudian program akan mengulang kembali
dari 0 sampai 2
7 Segment menyala dan menampilkan angka mulai dari 0 sampai 9 dengan delay
perpindahan 1 detik,setelah sampai 9 kemudian program akan mengulang kembali
dari 0 sampai 9
Kedua 7 Segment menyala menampilkan masing masing angka 0 dan angka 1.Sekila
keduanya seperti menyala bersamaan namun pada kenyataannya kedua 7 segment
tersebut menyala dengan sangat cepat karena diberi delay 1ms sehingga akan terihat
seperti menyala secara bersamaan
while (1)
{
int a;
for (a=0;a<1000;a++) {
PORTA=lookup[0];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[0];
PORTC=0xbf;
delay_ms(1);
}
for (a=0;a<1000;a++) {
PORTA=lookup[1];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[2];
PORTC=0xbf;
delay_ms(1);
}
for (a=0;a<1000;a++) {
PORTA=lookup[3];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[4];
PORTC=0xbf;
delay_ms(1);
}
for (a=0;a<1000;a++) {
PORTA=lookup[5];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[6];
PORTC=0xbf;
delay_ms(1);
}
for (a=0;a<1000;a++) {
PORTA=lookup[7];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[8];
PORTC=0xbf;
delay_ms(1);
}
for (a=0;a<1000;a++) {
PORTA=lookup[9];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[9];
PORTC=0xbf;
delay_ms(1);
}
}
}
b. Output
7 Segment akan menampilkan angka masing masing 7 segment menyala dengan
keadaan yang bawah bernilai 0 dan atas 0,kemdian 1 dan 2,3 dan 4,5 dan 6,7 dan 8,9
dan 9 dengan delay perpindahan 1 detik,Setelah itu akan kembali mengulang.
void main(void)
{
int a,b;
int tunggu;
unsigned char lookup[20]={63,6,91,79,102,109,125,7,127,111};
DDRA=0xff;
DDRC=0xff;
while (1)
{
for (a=0;a<10;a++)
{
for (b=0;b<10;b++)
{
for (tunggu=0;tunggu<1000;tunggu++)
{
PORTA=lookup[a];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[b];
PORTC=0xbf;
delay_ms(1);
}
}
}
}
}
b. Output
7 segment akan menjadi counter up yang akan menghitung mulai dari 00 sampai 99
dengan delay perpindahan selama 1 detik kemudian akan mengulang kembali setelah
mencapai 99
void main(void)
{
int a,b;
int tunggu;
unsigned char lookup[20]={63,6,91,79,102,109,125,7,127,111};
DDRA=0xff;
DDRC=0xff;
while (1)
{
for (a=10;a>0;a--)
{
for (b=10;b>0;b--)
{
for (tunggu=0;tunggu<1000;tunggu++)
{
PORTA=lookup[a];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[b];
PORTC=0xbf;
delay_ms(1);
}
}
}
}
}
b. Output
7 segment akan menjadi counter down yang akan menghitung mulai dari 99 sampai
00 dengan delay perpindahan selama 1 detik kemudian akan mengulang kembali
setelah mencapai 00
#include <mega32.h>
#include <delay.h>
void main(void)
{
int a,b;
int tunggu;
unsigned char lookup[20]={63,6,91,79,102,109,125,7,127,111};
DDRA=0xff;
DDRC=0xff;
while (1)
{
for (a=0;a<10;a++)
{
for (b=0;b<10;b++)
{
for (tunggu=0;tunggu<1000;tunggu++)
{
PORTA=lookup[a];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[b];
PORTC=0xbf;
delay_ms(1);
}
}
}
for (a=9;a>=0;a--)
{
for (b=9;b>=0;b--)
{
for (tunggu=0;tunggu<1000;tunggu++)
{
PORTA=lookup[a];
PORTC=0x7f;
delay_ms(1);
PORTA=lookup[b];
PORTC=0xbf;
delay_ms(1);
}
}
}
}
}
b. Output
7 Segment menyala dengan menjadi counter up mulai dari 00 hingga 99 setelah itu
berubah menjadi counter down mulai dari 99 hingga 00 dan kembali lagi menjadi
counter up begitupun seterusnya adapun erpindahnnya delay selama 1 detik
6. Kesimpulan
Dari praktikum kali ini dapat disimpulkan bahwa
1. Codevision dan Simulide dapat digunakan untuk memprogram ATMega 32 untuk mengatur
jalannya rangkaian 7 segment
2. Codevision dan Simulide dapat digunakan untuk membuat counter up dan down