Lcd Dan Ddddd

17
 LCD DAN KEYPAD 13APR >>>KEYPAD<<< Pada dasarnya keypad yang ada dipasaran baik yang berukuran keypad 3×3, 3×4 atau 4×4, hanya tersusun dari beberapa push button yang dikonfigurasikan antara kolom dengan baris. Sehingga sering disebut juga keypad matriks nxm (n=kolom m=baris). Kolom dan baris ini nantinya yang digunakan untuk pendeteksian penekanan tombol. Berikut adalah konfigurasi dasar untuk keypad 4×4. B1, B2, B3 dan B4 merupakan baris ke 1 sampai baris ke 4, sedangkan C1, C2, C3 dan C4 merupakan kolom ke 1 sampa i kolom ke 4 keypad. Terlihat jelas betapa sederhananya rangkaian dasar keypad untuk ukuran keypad 4×4 yang terdiri dari 16 buah push button yang dikonfigurasikan seperti matriks. Saya sendiri membuat keypad menggunakan rangkaian diatas, dikarenakan mahalnya harga keypad. Dipasaran saja keypad 4×4 bisa seharga Rp. 50.000, sedangkan untuk membuatnya tidak sampai Rp. 10.000. Baiklah kembali lagi kemateri keypad. Sekarang saya punya pertanyaan? Kenapa kita tidak menggunakan push button saja yang disusun seperti biasa, kenapa harus menggunakan keypad matrik. Jawabannya mudah saja, kalo menggunakan susunan seperti biasa maka akan menghabiskan 16 pin mikrokontroler untuk 16 buah tombol. Sedangkan jika dikonfigurasikan seperti diatas hanya menghabiskan 8 pin saja. Jadi lebih ringkas dan irit dalam penggunaan pin mikrokontroler. Sekarang cara untuk mengakses keypad, tapi terlebih dahulu perhatikan gambar berikut.

Transcript of Lcd Dan Ddddd

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 1/17

 

LCD DAN KEYPAD

13APR

>>>KEYPAD<<<

Pada dasarnya keypad yang ada dipasaran baik yang berukuran keypad 3×3, 3×4 atau 4×4, hanya

tersusun dari beberapa push button yang dikonfigurasikan antara kolom dengan baris. Sehingga sering

disebut juga keypad matriks nxm (n=kolom m=baris). Kolom dan baris ini nantinya yang digunakan untuk

pendeteksian penekanan tombol. Berikut adalah konfigurasi dasar untuk keypad 4×4.

B1, B2, B3 dan B4 merupakan baris ke 1 sampai baris ke 4, sedangkan C1, C2, C3 dan C4 merupakan

kolom ke 1 sampai kolom ke 4 keypad. Terlihat jelas betapa sederhananya rangkaian dasar keypad untuk

ukuran keypad 4×4 yang terdiri dari 16 buah push button yang dikonfigurasikan seperti matriks. Saya

sendiri membuat keypad menggunakan rangkaian diatas, dikarenakan mahalnya harga keypad. Dipasaran

saja keypad 4×4 bisa seharga Rp. 50.000, sedangkan untuk membuatnya tidak sampai Rp. 10.000.

Baiklah kembali lagi kemateri keypad. Sekarang saya punya pertanyaan? Kenapa kita tidak menggunakan

push button saja yang disusun seperti biasa, kenapa harus menggunakan keypad matrik. Jawabannya

mudah saja, kalo menggunakan susunan seperti biasa maka akan menghabiskan 16 pin mikrokontroler 

untuk 16 buah tombol. Sedangkan jika dikonfigurasikan seperti diatas hanya menghabiskan 8 pin saja. Jadi

lebih ringkas dan irit dalam penggunaan pin mikrokontroler.

Sekarang cara untuk mengakses keypad, tapi terlebih dahulu perhatikan gambar berikut.

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 2/17

 

Sebelumnya kita harus menentukan terlebih dahulu mana yang akan dijadikan input atau output

mikrokontroler. Sebagian banyak orang membuat kolom keypad sebagai output mikrokontroler sedangkan

baris keypad sebagai input mikrokontroler. Sebenarnya bisa saja kita balik penggunaannya, tetapi agar 

standar kita ikut saja yang sudah banyak digunakan orang. Cara kerja keypad adalah scanning yaitu

mendeteksi terus menerus apakah ada penekanan tombol.

Berikut adalah algoritma cara mengakses keypad:

Tentukan terlebih dahulu kolom sebagai output dari mikrokontroler sedangkan baris sebagai input

kemikrokontroler. Mengacu pada gambar diatas

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 3/17

 

Langkah pertama (Scanning kolom 1 PB0)

keluarkan output ke kolom 1(PB0)

kemudian deteksi penekanan baris1 (PB4)

kemudian deteksi penekanan baris2 (PB5)

kemudian deteksi penekanan baris3 (PB6)

kemudian deteksi penekanan baris4 (PB7)

Langkah kedua (Scanning kolom 2 PB1)

keluarkan output ke kolom 2 (PB1)

kemudian deteksi penekanan baris1 (PB4)

kemudian deteksi penekanan baris2 (PB5)

kemudian deteksi penekanan baris3 (PB6)

kemudian deteksi penekanan baris4 (PB7)

Langkah ketiga (Scanning kolom 3 PB2)

keluarkan output ke kolom 3 (PB2)kemudian deteksi penekanan baris1 (PB4)

kemudian deteksi penekanan baris2 (PB5)

kemudian deteksi penekanan baris3 (PB6)

kemudian deteksi penekanan baris4 (PB7)

Langkah kempat (Scanning kolom 4 PB3)

keluarkan output ke kolom 4 (PB3)

kemudian deteksi penekanan baris1 (PB4)

kemudian deteksi penekanan baris2 (PB5)

kemudian deteksi penekanan baris3 (PB6)kemudian deteksi penekanan baris4 (PB7)

Untuk realisasi programnya dapat dilihat pada listing program di akhir postingan ini.

>>>LCD 2×16<<<

Disini saya tidak akan menjelaskan tentang hardware dari LCD, tetapi akan fokus kepada instruksi-intruksi

yang akan digunakan dalam mengakses LCD. Jika teman-teman ingin paham lebih dalam lagi mengenai

hardware dan pengalamatan memory LCD, teman-teman dapat mendownload datasheet LCD 2×16 disini. 

Dibawah ini ada beberapa instruksi yang digunakan untuk mengakses LCD pada compiler CodeVision

 AVR:lcd_clear()

digunakan untuk menghapus LCD dan meletakkan kembali kursor ke kolom 0 baris 0.

lcd_gotoxy(unsigned char x,unsigner char y)

Untuk meletakkan kursor ke kolom x baris y. Kolom dan baris pada LCD dimulai dari 0, sehingga kolom

antara 0-15 dan baris 0-1 untuk LCD 2×16.

contoh:

lcd_gotoxy(10,1) maka akan meletakkan kursor di kolom 10 dan baris 1

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 4/17

 

lcd_putsf(char flash *str)

menampilkan karakter karakter yang ada dimemori flash pada alamat yang ditunjuk oleh pointer str ke LCD

dengan posisi kursor saat ini.

contoh:

lcd_putsf(“Electro_cOntrOl”) maka akan menampilkan tulisan Electro-cOntrOl

lcd_puts(char *str)

menampilkan karakter yang ada si memori RAM pada alamat yang ditunjuk oleh pointer str ke LCD dengan

posisi kursor saat ini.

lcd_putchar(char c)

digunakan untuk menampilkan karakter sesuai isi variabel c Ke LCD dengan posisi kursor saat ini.

Untuk lebih jelasnya dapat teman-teman lihat pada listing program. Berikut adalah schematic keypad dan

LCD yang dihubungkan ke mikrokontroler.

#include <mega8535.h>

#include <stdlib.h>

#include <delay.h>

#include <lcd.h>

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 5/17

 

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0×15 ;PORTC

#endasm

void tekan_keypad_tampil_lcd() //penekanan keypad kemudian ditampilkan di LCD

{

PORTB = 0b11111110;

delay_ms(30);

if (PINB.4 == 0) {lcd_putsf(“1″); delay_ms(300);}

if (PINB.5 == 0) {lcd_putsf(“4″); delay_ms(300);}

if (PINB.6 == 0) {lcd_putsf(“7″); delay_ms(300);}

if (PINB.7 == 0) {lcd_putsf(“F”); delay_ms(300);}

PORTB = 0b11111101;

delay_ms(30);

if (PINB.4 == 0) {lcd_putsf(“2″); delay_ms(300);}

if (PINB.5 == 0) {lcd_putsf(“5″); delay_ms(300);}if (PINB.6 == 0) {lcd_putsf(“8″); delay_ms(300);}

if (PINB.7 == 0) {lcd_putsf(“0″); delay_ms(300);}

PORTB = 0b11111011;

delay_ms(30);

if (PINB.4 == 0) {lcd_putsf(“3″); delay_ms(300);}

if (PINB.5 == 0) {lcd_putsf(“6″); delay_ms(300);}

if (PINB.6 == 0) {lcd_putsf(“9″); delay_ms(300);}

if (PINB.7 == 0) {lcd_putsf(“E”); delay_ms(300);}

PORTB = 0b11110111;

delay_ms(30);if (PINB.4 == 0) {lcd_putsf(“A”); delay_ms(300);}

if (PINB.5 == 0) {lcd_putsf(“B”); delay_ms(300);}

if (PINB.6 == 0) {lcd_putsf(“C”); delay_ms(300);}

if (PINB.7 == 0) {lcd_putsf(“D”); delay_ms(300);}

}

void tampil_string()

{

lcd_gotoxy(0,0); //menempatkan kursor lcd pada baris 0 kolom 0

lcd_putsf(“tampilan lcd2x16″); //menampilkan tulisan tampilan lcd2x16

lcd_gotoxy(0,1); //menempatkan kursor lcd pada baris 1 kolom 0lcd_putsf(“Elektro-cOntrOl”); //menampilkan tulisan ElektrO-cOntrOl

}

void tampil_variabel()

{

//sebuah variabel yg akan ditampilkan kedalam LCD harus diubah dahulu kedalam tipe data array

//jika variabel bertipe data float maka diubah kedalan array dengan instruksi ftoa

//jika variabel bertipe data int maka diubah kedalan array dengan instruksi itoa

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 6/17

 

char temp[6];

int a=500;

float b=123.45;

itoa(a,temp);

lcd_gotoxy(0,0);

lcd_puts(temp);

ftoa(b,2,temp); //angka 2, banyaknya digit dibelakang koma yg ditampilkan

lcd_gotoxy(0,1);

lcd_puts(temp);

}

void main(void)

{

PORTB = 0xff;

DDRB = 0x0f;//PA0-3 sebagai output, PA4-7 sebagai input

while(1) //program utama

{//tinggal dilakukan pemanggilan fungsi saja, contoh:

tampil_string(); //pemanggilan fungsi tampil_string()

};

}

KeypadKeypad adalah rangkaian tombol yang berfungsi untuk memberi sinyal pada suatu

rangkaiandengan menghubungkan jalur-jalur tertentu. Keypad terdiri dari beberapa macam berdasarkan jumlah tombol dan fungsinya. Pada sistem pengontrolan ini, digunakan keypad

matriks 4 x 4 (16saklar).Gambar 2.10. Skematik Keypad 4 x 4Keypad Matriks : Konsep

Dasar Pada tutorial ini akan saya paparkan konsep dasar mengakses dan menggunakan Keypad

Matriks4x4 sebagai media inputan tetapi sebelumnya, anda sebaiknya membaca terlebih dahulututorialhardware mengenai Keypad Matriks agar mudah dipahami programnya karena

memprogrammikrokontroler berdasarkan dengan hardwarenya.Program berikut menggunakan

mikrokontroler ATmega8535 dengan bahasa pemrogramanCodeVisionAVR (baca MemulaiCoViAVR) akan tetapi jika telah memahami konsepnya, mikroapapun dengan bahasa

 pemrograman yang lain pun tidak akan mengalami kesulitan.Keypad Matriks dan konfigurasi

keypad sebagai berikut :* Kolom 1 pada PORTA.0* Kolom 2 pada PORTA.1

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 7/17

 

 Kurniadi.R083310040

* Kolom 3 pada PORTA.2* Kolom 4 pada PORTA.3* Baris 1 pada PORTA.4* Baris 2 padaPORTA.5* Baris 3 pada PORTA.6* Baris 4 pada PORTA.7Prinsip dasar pada program :* Jika

tombol 2 di tekan (S2) maka Kolom 2 Baris 1 terhubung atau PORTA.1 terhubungdengan

PORTA.4, Jika tombol B di tekan (SB) maka Kolom 4 Baris 2 terhubung atau PORTA.3terhubungdengan PORTA.5, dst.* Pin-pin KOLOM pada port tersebut dijadikan output dan pin-pin BARIS

 pada port tersebutdijadikan input, bisa juga sebaliknya terserah anda sebagai programmer,

yang jelas salah satuoutput dan yang lain input.* Setiap saklar atau penekanan tombol, harusdidefinisikan nilai dari tombol tersebut baik berupa nilai Desimal, Heksadesimal, maupun

karakter ASCII.* Saat saklar (tombol keypad) ditekan dan BARIS dengan KOLOM terhubung

maka terserahanda mendetaksi perubahan logika yang terjadi pada pin-pin INPUT. Apakah dariLOW keHIGH (0 - 1) atau HIGH ke LOW (1 - 0). PadaPada Coding program untuk Keypad

Matriks yang saya buat menggunakan nilai ASCII dan saattombol ditekan mendeteksi

 perubahan logika dari HIGH ke LOW (1 - 0) atau rendah aktif.Alasan :* Nilai ASCII adalah nilai

karakter seperti '1', '2', 'A', 'D', dst, yang pada listing program akanmudah dilihat nilainya danmudah pahami, berbeda dengan desimal maupun heksadesimal. '1' =0x31 (heksa), '1' =

49 (desimal), 'A' = 0x41 (heksa), 'A' = 65 (desimal), dst. 

Kurniadi.R083310040

* Pada penekanan tombol, mengapa mendeteksi HIGH ke LOW daripada LOW ke HIGH ?karena

untuk mikrokotroler maupun rangkaian digital secara umum "menurunkan" tegangan berapapun ke

0 volt lebih mudah dan pasti dibandingkan "menaikkan" tegangan dari 0 volt kenilai tertentu.Efek Bounching (Pantulan)Listing pada gambar belum termasuk menangani tentang bounching dan lain-

lain. Bounching pada keypad yaitu efek perubahan sinyal berkali-kali (pantulan) saat penekanan

keypad yangmenyebabkan keypad seolah-olah tombol keypad ditekan berkali-kali.Ada berbagai

macam cara untuk mencegah menghilangkan efek bouncing ini baik dari segihardware dansoftware.* Jika hardware maka dengan menambahkan filter frekuensi tinggi atau dengan IC555

untuk menambah lebar pulsa.* Jika Software dengan menambah delay atau tundaan saat tombol

ditekan atau denganmendeteksi karakter tombol apakah sama dengan sebelumnya

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 8/17

 

Mengenal dot matrix 7x5

Dot matrix adalah titik titik yang membentuk sebuah matrix dimana titik titik tersebut adalah

led, Jadi untuk membentuk sebuah dot matrix 7x5 dibutuhkan 35 buah led. Inilah bentuk

fisik dari dot matrix disebut sebelumnya.

Dot matrix biasanya digunakan untu membuat running teks atau untuk membuat counter 

atau pencacah pada bangjo atau traffic light. Biasanya dot matrix yang digunakan untuk

membuat alat2 tersebut digunakan lebih dari satu dot matrix. berikut merupakan scematic

dari susunan led-nya

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 9/17

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 10/17

 

Untuk menyalakan dot matrix ini dengan cara menyalakan satu per satu pada setiap

kolomnya atau lebih keren disebut dengan metode scanning. Supaya karakter yang

ditampilkan pada dot matrix dapat terlihat utuh maka proses scanning ini harus berlangsung

dengan sangat cepat.

Aplikasi

Dalam aplikasi ini hanya menggunakan satu buah dot matrix saja (maklum baru belajar).

Rangkaiannya seperti dibawah ini.

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 11/17

 

Kemudian program buat ATMega8 sebagai ini dibawah berikut.

$regfile = "m8def.dat"

$crystal = 8000000

Config Portc = Output

Config Portd = Output

dress Alias Portc

Data_ Alias Portd

Dim Lima As Byte

Dim Tujuh As Byte

Dim N_lima As Byte

Dim N_tujuh As Byte

Dim A As Byte

Dim B As Byte

Dim C As Byte

Dim D As Byte

Dim E As Byte

Dim F As Byte

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 12/17

 

Dim G As Byte

Dim Digit As Byte

N_lima = 0

N_tujuh = 0

Do

C = 33

For E = 0 To 33

For B = 0 To 4

For A = 0 To 4

Lima = Lookup(a , Alamat)

 Adress = Lima

D = A + C

Tujuh = Lookup(d , Wahyu)

Data_ = Tujuh

Waitms 1

Next

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 13/17

 

Waitms 1

Next

Decr C

Next

Loop

 Alamat:

Data &B111101

Data &B111011

Data &B110111

Data &B101111

Data &B011111

Wahyu:

'u

Data &B00000000

Data &B00000000

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 14/17

 

Data &B00000000

Data &B00000000

Data &B01111110

Data &B00000001

Data &B00000001

Data &B00000001

Data &B01111110

Data &B00000000

'y

Data &B01110000

Data &B00001000

Data &B00001111

Data &B00001000

Data &B01110000

Data &B00000000

'h

Data &B01111111

Data &B00001000

Data &B00001000

Data &B00001000

Data &B01111111

Data &B00000000

'a

Data &B00111111

Data &B01001000

Data &B01001000

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 15/17

 

Data &B01001000

Data &B00111111

Data &B00000000

'w

Data &B01111110

Data &B00000001

Data &B01111111

Data &B00000001

Data &B01111110

Data &B00000000

Data &B00000000

Data &B00000000

Data &B00000000

Program tersebut akan membuat dot matrix menampilkan "nama saya" sekali kali nebeng,

secara geser ke kiri. Dalam program tersebut proses scanning terjadi pada potongan

program

For A = 0 To 4

Lima = Lookup(a , Alamat)

 Adress = Lima

D = A + C

Tujuh = Lookup(d , Wahyu)

Data_ = Tujuh

Waitms 1

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 16/17

 

Next

Pada potogan program tersebut terdapat rumus D = A + C, rumus ini digunakan untukmenggeser karakter yang ditampilkan oleh dot matrix sebanyak satu kali kearah kiri. pada

potongan program tersebut proses scanning hanya untuk 5 kolom saja, jika proses ini

hanya diulangi sekali saja maka karakter yang ditampilkan tidak akan terlihat karena terlalu

cepat, oleh karena itu proses ini juga diulang ulang sebanyak 5 kali supaya tampilan dapat

dilihat dengan jelas, sehingga program menjadi

For B = 0 To 4

For A = 0 To 4

Lima = Lookup(a , Alamat)

 Adress = Lima

D = A + C

Tujuh = Lookup(d , Wahyu)

Data_ = Tujuh

Waitms 1

Next

Waitms 1

Next

5/17/2018 Lcd Dan Ddddd - slidepdf.com

http://slidepdf.com/reader/full/lcd-dan-ddddd 17/17

 

kemudian ditambah lagi dengan satu looping for....next yang digunakan untuk menggeser 

karakter yaitu.

C = 33

For E = 0 To 33

.

.

.

.

.

Decr C

Next

nilai awal variabel c digunakan untuk menentukan jumlah perulangannya. trust me it work

,semoga bermanfaat.