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
Tampilkan postingan dengan label CVAVR. Tampilkan semua postingan
Tampilkan postingan dengan label CVAVR. Tampilkan semua postingan
Senin, 14 Februari 2011
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
1. keypad 4x3
2. atmega32
3. LCD 16*2
berikut rangkaiannya (proteus)
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
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
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(" ");
};
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
Langganan:
Postingan (Atom)