Bismillahirrohmaaanirrohiim..
Posting ini untuk menjawab request dari mas Haleem pada posting Tentang LCD. Sebelumnya, saya ucapkan terimakasih sebesar-besarnya atas sharing ilmunya dari mas Dhani di blog nya. Mari kita coba memrogram LCD 16x2 dengan menggunakan AVR GCC. Sebelumnya harap install dulu AVR Studio 4 dan WinAVR. Kita masih menggunakan rangkaian LCD pada posting sebelumnya tapi beda listing programnya..
Pertama tama buka aplikasi AVR Studio 4, pilih "New Project", Klik AVR GCC, beri nama project anda, kemudian klik finish. download listing programnya link ini, kemudian copy ke project anda (.c).Oiya, sebelumnya sesuaikan dulu jenis mikrokontroller yang kita gunakan. Langkahnya :
1. Buka menu Project > Configuration Options
2. Ganti Mikrokontroler yang sesuai pada "device" (ATMEGA8535) kemudian klik OK.
Setelah itu Build project anda (atau tekan F7). Buka design rangkaiannya di proteus, download file .Hex hasil kompilasi pada folder "default" ke mikrokontroler pada Proteus, kemudian Run. Seharusnya seperti ini tampilannya :
Sedikit Penjelasan...
Pemilihan port dapat dilakukan pada penggalan listing ini:
#define LCD_RS_HI PORTB|=(1<<0)
#define LCD_RS_LO PORTB&=~(1<<0)
#define LCD_EN_HI PORTB|=(1<<1)
#define LCD_EN_LO PORTB&=~(1<<1)
#define LCD_D4_HI PORTB|=(1<<2)
#define LCD_D4_LO PORTB&=~(1<<2)
#define LCD_D5_HI PORTB|=(1<<3)
#define LCD_D5_LO PORTB&=~(1<<3)
#define LCD_D6_HI PORTB|=(1<<4)
#define LCD_D6_LO PORTB&=~(1<<4)
#define LCD_D7_HI PORTB|=(1<<5)
#define LCD_D7_LO PORTB&=~(1<<5)
Di rangkaian, kita gunakan portB.0 sampai portB.5. Kemudian pada penggalan program ini
int main()
{
_delay_ms(100); //delay 100ms
init_devices(); //inisialisasi chip
init_lcd(); //inisialisasi LCD
hitung=0; //reset nilai hitung (=0)
lcd_goto(line1+0); //LCD baris 1 kolom 1
lcd_puts(" -= BLACKBOX =- "); //tampilkan string
for(;;)
{
hitung++; //hitung=hitung+1
lcd_goto(line2+7); // LCD baris 2 kolom 8
lcdbyte(hitung); //tampilkan nilai hitung
_delay_ms(1000); //delay 1000ms
}
}
Merupakan program utama yang di looping terus menerus. Listing yang dieksekusi yang dieksekusi ada pada listing setelah kalang for(;;) yang intinya membuat hitungan yang meng-increament variabel hitung kemudian tampilkan ke LCD.
Program dan design proteus bisa di download di sini.
Demikian.. Semoga bermanfaat dan bisa dijadikan Referensi. ditunggu komentarnya.. :)
berhasil mas primzz. siphh
ReplyDeletenganu klo cara buat librari lcd bs ga mas bro ?panjang banget e programe.he2
request
siiip..
ReplyDeletewaaah masih dalam tahap belajar ni bro..tar klo udah bisa ta kabari..hehe
Mas. saya mau nanya gmn komunikasi serial 2 avr.. saya mau menampilkan data dari keypad.. mohon bantuannya ya mas.. salam .. thanks b4
ReplyDeleteboleh mas ditunggu saja posting selanjutnya.. :)
Delete