Postingan kali ini akan membahas program kombinasi antara LCD, Keypad 4×4 dan Mikrokontroller ATMEGA 8535. Program ini dibuat untuk menampilkan :
- Tulisan tampilan penuh secara Left Justified pada LCD ketika tombol Keypad no 1 dipencet.
- Tulisan bergerak dari kiri ke kanan, kemudian kembali lagi ke kiri
Sebelum membuat Programnya. terlebih dahulu akan saya tampilan rangkaian dari LCD, Keypad dan Mikrokontroller ATMEGA 8535
Pada rangkaian diatas PORTA.0-PORTA.3 sebagai output dengan kondisi awal berlogika HIGH dan PORTA.4-PORTA.7 sebagai input dengan pull up (DDRB=0fH dan PORTA=FFH) serta PORTB sebagai output dengan kondisi awal LOW (DDRC=FFH dan PORTB=00H). Selanjutnya adalah melakukan set chip dan clock, set juga pada bagian LCD seperti gambar dibawah ini dan simpan file tersebut
jangan lupa melakukan inisialisasi LCD dengan memasukkan script dibawah ini, lcd_init dibuat 41 agar jalannya tulisan pada LCD mempunyai rentang yang panjang dan tulisan pada baris ke-1 tidak muncul di baris ke-2
// LCD module initialization
lcd_init(41);
Kemudian tuliskan blok instruksi berikut ini untuk mendeklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai bilangan integer
// Declare your global variables here
unsigned char keypad ();
Tuliskan script berikut ini dalam program utama
while (1)
{
PORTB=keypad();
Tambahkan fungsi untuk mengaktifkan keypad berikut dibawah program utama :
unsigned char keypad()
{
PORTA = 0b11111110; // aktifkan baris 1
delay_ms(100);
if(PINA.7==0) return (10);
if(PINA.6==0) return (3);
if(PINA.5==0) return (2);
if(PINA.4==0) return (1);
//========================
PORTA = 0b11111101; //aktifkan baris 2
delay_ms(100);
if(PINA.7==0) return (11);
if(PINA.6==0) return (6);
if(PINA.5==0) return (5);
if(PINA.4==0) return (4);
//========================
PORTA = 0b11111011; //aktifkan baris3
delay_ms(100);
if(PINA.7==0) return (12);
if(PINA.6==0) return (9);
if(PINA.5==0) return (8);
if(PINA.4==0) return (7);
//========================
PORTA = 0b11110111; //aktifkan baris4
delay_ms(100);
if(PINA.7==0) return (13);
if(PINA.6==0) return (15);
if(PINA.5==0) return (0);
if(PINA.4==0) return (14);
}
source informasi dari www.mutiarezah.co.cc
lcd_init(41);
warning Error: declaration syntax error