Display LCD Menggunakan Button Switch Berbasis Mikrokontroller AT Mega 32
LCD (Liquid Crystal Display)
Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.
Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display). Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori dan register. Memori yang digunakan microcontroler internal LCD adalah :
- DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada.
- CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan.
- CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM.
Button Switch
Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik. Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0).
AT Mega 32
AVR Atmega32 merupakan sebuah mikrokontroler low power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini memiliki karakteristik sebagai berikut.
· Menggunakan arsitektur AVR RISC
- 131 perintah dengan satu clock cycle
- 32 x 8 register umum
· Data dan program memori
- 32 Kb In-System Programmable Flash
- 2 Kb SRAM
- 1 Kb In- System EEPROM
· 8 Channel 10-bit ADC
· Two Wire Interface
· USART Serial Communication
· Master/Slave SPI Serial Interface
· On-Chip Oscillator
· Watch-dog Timer
· 32 Bi-directional I/O
· Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32 register umum. Semua register tersebut langsung terhubung dengan Arithmetic Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC biasa.
Pada postingan kali ini saya akan menampilkan percobaan display LCD dengan menggunakan button. Komponen penting yang terdapat pada percobaan ini diantaranya LCD sebagai output, beberapa button sebagai input dan AT Mega sebagai mikrokontrollernya. Untuk compiler, saya menggunakan CodeVision AVR.
Pada rangkaian terdapat 8 button yang terhubung ke seluruh pin yang ada di PORT C. Button berfungsi untuk memasukkan input yang nanti outputnya akan ditampilkan pada LCD. LCD akan menampilkan output jika kita mengaktifkan beberapa button yang ditentukan pada listing program. Contohnya, pada rangkaian ini jika button 1 (Pin 0 Port C) dan button 8 (Pin 7 Port C) diaktifkan, maka LCD akan menampilkan tulisan "Mikrokontroller 2017".
Untuk lebih jelasnya, mari kita perhatikan listing program yang digunakan.
Listing Program
[kembali]Listing Program
#include <mega32.h> //mendeklarasikan penggunaan AT Mega 32
#include <mega32_bits.h> //mendeklarasikan penggunaan AT Mega 32
#include <alcd.h> //mendeklarasikan penggunaan LCD
#include <delay.h> //mendeklarasikan fungsi delay
char kolom=0; //mendeklarasikan fungsi char
void main(void) //fungsi utama
{
PORTA=0x00;DDRA=0xff; //menentukan PORT A sebagai output
PORTC=0x00;DDRC=0xff; //menentukan PORT C sebagai input
lcd_init(16); //menentukan LCD yang digunakan (2x16)
while(1) //fungsi while
{
for (kolom=0;kolom<=15;kolom++) //fungsi for, char kolom=0 (kolom 0-15)
{
lcd_clear(); //tampilan LCD dikosongkan
if (PINC.07==1) //fungsi if, jika Button 1 dan 8 aktif/Pin C 07(binary) high
{
lcd_gotoxy(1,0); //penulisan LCD dimulai dari kolom 1 baris 0
lcd_putsf("MICROCONTROLLER"); //karakter yang ditampilkan LCD
lcd_gotoxy(kolom,1); //penulisan LCD dari kolom 0 (char kolom) baris 1
lcd_putsf("2017"); //karakter yang ditampilkan LCD
delay_ms(100); //waktu delay (100 ms)
}
if (PINC.05==1) //fungsi if, jika Button 1 dan 6 aktif/Pin C 05(binary) high
{
lcd_gotoxy(3,0); //penulisan LCD dimulai dari kolom 3 baris 0
lcd_putsf("AGUNG ISWAR"); //karakter yang ditampilkan LCD
lcd_gotoxy(kolom,1); //penulisan LCD dari kolom 0 (char kolom) baris 1
lcd_putsf("1310952041"); //karakter yang ditampilkan LCD
delay_ms(100); //waktu delay (100 ms)
}
}
}
}
Video
Anda juga dapat menyaksikan simulasi percobaan diatas melalui video berikut.
Link Download
[kembali]
Jika anda ingin mempelajari lebih lanjut tentang topik ini, anda dapat mendownload rangkaian dan listing programnya melalui link dibawah.
Semoga bermanfaat! ;)
Tidak ada komentar:
Posting Komentar