Simulasi LED 7-Segmen dan ATMEGA128 Menggunakan Codevision AVR dan ISIS Proteus
Selamat pagi teman-teman semua, berjumpa kembali bersama mimin +Hardiyan Kesuma Ramadhan, kali ini kita akan belajar Mikrokontroller selanjutnya setelah kemarin kita sudah belajar arduino, kali ini kita akan belajar tentang ATMega. Nah, ATMega sendiri masuk kedalam keluarga AVR.
AVR adalah salah satu contoh keluarga mikrokontroler yang berarsitektur RISC. Ada banyak tipe mikrokontroler yang termasuk keluarga AVR. Tetapi yang banyak dipakai adalah jenis ATMega, misalnya ATMEga32. ATMega memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program.
Nah, untuk memberikan program atau instruksi ke ATMega kita membutuhkan sebuah software, sama halnya seperti Arduino kita menggunakan Arduino IDE. Pada ATMega kita bisa menggunakan Codevision AVR. Sebelum kita lanjut ke praktek pastikan teman-teman semua sudah download Codevision AVR.
1. Pada praktek yang pertama kita akan membuat program yang menampilkan angka 0 s.d 7 secara berurutan pada digit 1 hingga digit 8. Seperti ini desain proteusnya.
List programnya seperti ini ...
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
#define data PORTE
#define kendali PORTF
void main(void){
DDRF=0xFF;
DDRE=0xFF;
while(1){
kendali=0x1;
data=0xC0;
delay_ms(100);
kendali=0x2;
data=0xF9;
delay_ms(100);
kendali=0x4;
data=0xA4;
delay_ms(100);
kendali=0x8;
data=0xB0;
delay_ms(100);
kendali=0x10;
data=0x99;
delay_ms(100);
kendali=0x20;
data=0x92;
delay_ms(100);
kendali=0x40;
data=0x82;
delay_ms(100);
kendali=0x80;
data=0xF8;
delay_ms(100);
}
}
Compile dan Build program diatas via Codevision AVR lalu upload file .hex nya ke ATMega di proteus.
2. Selanjutnya kita akan membuat program yang menampilkan angka 98765432 dalam display secara bersamaan.
List programnya seperti ini ...
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
#define data PORTE
#define kendali PORTF
void main(void){
DDRF=0xFF;
DDRE=0xFF;
while(1){
kendali=0x1;
data=0x90;
delay_us(100);
kendali=0x2;
data=0x80;
delay_us(100);
kendali=0x4;
data=0xF8;
delay_us(100);
kendali=0x8;
data=0x82;
delay_us(100);
kendali=0x10;
data=0x92;
delay_us(100);
kendali=0x20;
data=0x99;
delay_us(100);
kendali=0x40;
data=0xB0;
delay_us(100);
kendali=0x80;
data=0xA4;
delay_us(100);
}
}
3. Yang ketiga kita akan membuat LED 7-Segment untuk menampilkan stopwatch
List programnya seperti ini ...
#include <mega128.h>#include <delay.h>#include <stdio.h>#define data PORTE#define kendali PORTFflash unsigned char segment (unsigned char c){char tab[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF}; //tabel data untuk seven segmenreturn tab[c];}//Declare your global variables herevoid tampil_seg(unsigned char jam, unsigned char menit, unsigned char detik){unsigned char h,j,k,l,m,n;h=jam/10;j=jam%10;k=menit/10;l=menit%10;m=detik/10;n=detik%10;kendali=0x80;data=segment(n);delay_us(100);kendali=0x40;data=segment(m);delay_us(100);kendali=0x20;data=segment(10);delay_us(100);kendali=0x10;data=segment(l);delay_us(100);kendali=0x8;data=segment(k);delay_us(100);kendali=0x4;data=segment(10);delay_us(100);kendali=0x2;data=segment(j);delay_us(100);kendali=0x1;data=segment(h);delay_us(100);}void main(void){unsigned char h,m,s;int i,ulang;int k;int j;DDRF=0xFF;DDRE=0xFF;while(1){h=00;for (k=1;k<=24;k++){m=00;for(j=1;j<=60;j++){s=00;for(i=1;i<=60;i++){for(ulang=1;ulang<=50;ulang++){tampil_seg(h,m,s);}s=s++;}m=m++;}h=h++;}}}
Note:
Settingan pada Codevision AVR misal pada proteus menggunakan ATMega128 maka Codevision AVR pilih chip ATMega128.
Nah, itu dulu ya teman-teman jurnal saya hari ini tentang "Simulasi LED 7-Segmen dan ATMega128 Menggunakan Codevision AVR dan ISIS Proteus". Semoga bisa bermanfaat untuk teman-teman semua ya, sampai jumpa di postingan berikutnya ...
2 komentar
Mantabs gan
sama-sama mas gan (y)
EmoticonEmoticon