Tampilkan postingan dengan label CVAVR. Tampilkan semua postingan
Tampilkan postingan dengan label CVAVR. Tampilkan semua postingan

Senin, 14 Februari 2011

Aplikasi Seven Segmen ATMega16 dengan CVAVR

Seperti kita ketahui Seven segmen adalah suatu komponen elektronika yang digunakan untuk penampil angka. Dalam Post sebelumnya sudah dijelaskan cara menampilkan seven segmen dengan menggunakanBahasa Basic Compiler atau BasCom AVR. Dalam Post ini akan dijelaskan cara menampilkan seven segmen tetapi dengan bahasa pemrograman yang berbeda yaitu dengan menggunakan bahasa pemrograman CVAVR atau Code Vision AVR.

Hardware
Hardware penampil seven segmen adalah sebagai berikut.

Program CodeVisionAVR

#include (mega16.h)
#include (delay.h)
void main(void)
{
unsigned char seven[10]={0b11000000,0b11001111,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000};
unsigned int n=0;

DDRC=0xFF;


while (1)
      {
      PORTC=seven[n];
      delay_ms(100);
      n=n+1;
      if (n>9){
      n=0;
      }; 
      };
}

Penjelasan

Program diatas menggunakan dua macam librari yaitu
#include (mega16.h) dan #include (delay.h) . Librari mega16.h untuk menunjukkan pada program bahwa menggunakan mikrokontroler ATMega16 sedangkan librari delay.h digunakan untuk mengakses fungsi delay. Program ini menggunakan dua macam variabel yaitu  Seven[10] yang bertipe unsigned char dan  n yang bertipe unsigned integer. Pada variable Seven[10] berisi 10 macam data yang nantinya data data ini digunakan untuk menampilkan angka 0  sampai 9 pada seven segmen. Setelah mendeklarasikan variable terdapat sintak DDRC=0xFF yang artinya menjadikan Portc semuanya sebagai output. Pada program utamanya terdapat sintak

PORTC=seven[n];
      delay_ms(100);
      n=n+1;
      if (n>9){
      n=0;

Maksud dari sintak terssebut  adalah mengeluarkan data yang terdapat pada variabel "seven" melalui portc . Nah data pada variabel seven dapat berubah ubah sesuai nilai variabel "n" jadi variabel n disini berfungsi sebagai pointer. Supaya nilai pada variabel seven dapat berubah ubah maka variabel n di-incremen-kan hingga nilai n menunjukkan nilai 9. dengan demikian maka angka yang ditampilkan pada seven segmen adalah angka 0 dampai 9.

Berikut merupakan simulasi dan program CVAVR nya
Download Simulasi klik disini
Download Program CVAVR klik disini

NB: Pada #include tanda "(" diganti tanda "lebih besar" sedangkan tanda ")" diganti tanda "lebih kecil"
wasalam

Kamis, 09 Desember 2010

Aplikasi keypad pada ATMEGA16 dengan CVAVR

Konfigurasi hardware:
1. keypad 4x3
2. atmega32
3. LCD 16*2

berikut rangkaiannya (proteus)

Untuk programnya digunakan bahasa pemrograman CVAVR, source codenya dapat di download disini


Penjelasan:
Pada dasarnya membaca input dari keypad adalah dengan melakukan proses "scan" pada setiap kolom. Maksud proses "scan" disini adalah memberikan logika 1 pada semua pin dan hanya pada kolom A saja yang diberikan logika 0

dengan keadaan seperti diatas maka akan dapat diketahui apakah tombol a1, a2, a3 atau a4 yang ditekan. potongan programnya adalah sebagai berikut:

DDRD = 0b00000111;
PORTD = 0b11111110;
delay_us(1);
if (PIND==0b11110110) {
lcd_gotoxy (0,0);
lcd_putsf ("1");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
}
else if (PIND==0b11101110)
{

lcd_gotoxy (0,0);

lcd_putsf ("4");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");

}
else if (PIND==0b11011110){
lcd_gotoxy (0,0);
lcd_putsf ("7");

delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
}
else if (PIND==0b10111110){
lcd_gotoxy (0,0);

lcd_putsf ("*");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
};

kemudian untuk proses scan yang kedua sama seperti proses scan yang pertama hanya saja dilakukan pada kolom B


dengan kondisi seperti diatas maka dapat diketahui apakah tombol b1, b2, b3 atau b4 yang sedang ditekan. Berikut merupakan potongan programnya:

DDRD = 0b00000111;
PORTD = 0b11111101;

delay_us(1);

if (PIND==0b11110101) {

lcd_gotoxy (0,0);

lcd_putsf ("2");

delay_ms(100);

lcd_gotoxy (0,0);

lcd_putsf(" ");
}
else if (PIND==0b11101101){
lcd_gotoxy (0,0);
lcd_putsf ("5");
delay_ms(100);
lcd_gotoxy (0,0);

lcd_putsf(" ");
}
else if (PIND==0b11011101){
lcd_gotoxy (0,0);
lcd_putsf ("8");

delay_ms(100);
lcd_gotoxy (0,0);

lcd_putsf(" ");
}
else if (PIND==0b10111101){
lcd_gotoxy (0,0);
lcd_putsf ("0");

delay_ms(100);
lcd_gotoxy (0,0);

lcd_putsf(" ");

};

kemudian untuk proses scan yang ketiga sama seperti proses scan yang pertama hanya saja dilakukan pada kolom C
dengan kondisi seperti diatas maka dapat diketahui apakah tombol c1, c2, c3 atau c4 yang ditekan. berikut merupakan potongan programnya:

DDRD = 0b00000111;
PORTD = 0b11111011;
delay_us(1);
if (PIND==0b11110011) {
lcd_gotoxy (0,0);
lcd_putsf ("3");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
}
else if (PIND==0b11101011){
lcd_gotoxy (0,0);
lcd_putsf ("6");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
}
else if (PIND==0b11011011){
lcd_gotoxy (0,0);
lcd_putsf ("9");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
}
else if (PIND==0b10111011){
lcd_gotoxy (0,0);
lcd_putsf ("#");
delay_ms(100);
lcd_gotoxy (0,0);
lcd_putsf(" ");
};

ketiga proses scan tersebut harus dilakukan secara cepat dengan proses looping, semakin cepat proses loopingnya maka semakin cepat pula respon dari keypad.

download:
simulator (proteus) klik disini
program(CVAVR) klik disini

wasalam

Senin, 28 Juni 2010

Aplikasi LCD ATMega16 dengan CodeVisionAVR

CodeVisionAVR atau sering disingkat menjadi CVAVR merupakan salah satu bahasa pemrograman mikrokontroler yang berbasis bahasa C. CVAVR ini menawarkan beberapa kemudahan bagi para penggunanya salah satunya yaitu mengakses fungsi LCD 16*2 karakter. Pertama ketika membuka CVAVR akan tertampil jendela seperti ini:


pilih port mikrokontroler yang digunakan untuk interface dengan LCD (disesuaikan dengan hardware kita)

setelah itu klik file => generate, save and exit
simpan deh tu semua file dengan nama suka suka kita.

maka pada jendela utama akan tampil listing program yang panjang. Sebenarnya inti programnya hanya sedikit, seperti contoh program yang saya buat.




















Supaya program dapat melakukan waktu tunda atau delay, jangan lupa mencantumkan library delay.h dengan sintak

include

kemudian setelah itu program di-build dengan menekan shift+f9 atau klik project => build. Setelah itu download program file *hex-nya ke mikrokontroler, jadi deh.

wasalam