Kamis, 28 September 2017
-membuat
rangkaian Seven Segment menggunakan mikrokontroler ATMega8535 dengan software
compiler BASCOM AVR
-
Keypad
-
Switch
-
LCD
-
Mikrokontroler ATMega8535
-
Button
-
Crystal
3.1
Pengertian Keypad
Tombol keypad matrik 4x3 adalah susunan dari beberapa
buah saklar tekan (push button) yang disusun secara matrix. Dipasaran terdapat
beberapa jenis tombol keypad, dan yang paling sering digunakan diantaranya
adalah tombol keypad 4x3 dan 4x4. Susunan tombol tekan yang disusun secara
matrik menjadi sebuah keypad dapat dilihat pada gambar berikut:
Ketujuh atau
kedelapan pin tersebut adalah 3 pin untuk kolom dan 4 pin untuk baris. Untuk
mengakses keypad ini tidak seperti push button biasa. Adapun cara yang saya
pakai untuk mengakses keypad ini adalah dengan metode scanning.
Dengan menggunakan
mikrokontroler hal ini sangat mudah dilakukan, karena mengingat mikrokontroler
memiliki frekuensi clock yang tinggi. Misalnya saya menggunakan ATmega32
kemudian saya hubungkan pin keypad secara urut dari baris kemudian kolom ke pin
mikrokontroler.
row1 -> PINC.0
row2 ->PINC.1
row3 ->PINC.2
row4 ->PINC.3
col1 ->PINC.4
col2 ->PINC.5
col3 ->PINC.6
5. Listing Program
[kembali]
$regfile = "m8515.dat" 'meanggil librari ATmega 8535
$crystal = 16000000 'mementukan kecepatan krystal yang digunakan
Config Lcdpin = Pin , Rs = Porta.4 , E = Porta.5 , Db4 = Porta.0 'mendeklarasika pin Lcd yang di pakai
Config Lcdpin = Pin , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 'mendeklarasikan pin Lcd yang di pakai
Config Lcd = 16 * 2 'menentukan lcd yang di pakai '
Config Kbd = Portd 'membuat variabel kbd pada PORTD
Dim Keypad As Byte 'keypad sebagai word
Cursor Off 'kursor lcd off
Cls 'lcd bersih
Ddrd = &B1110000 'menentukan input dan output pada keypad
Portd = &B1111111 'keadaan awal portd hidup
Keypad = Getkbd() 'memanggil fungsi keypad
Locate 1 , 1 'pada baris 1 kolom 1
Lcd "Pepi dan Reno" 'lcd membentuk karakter Pepi dan Reno
Lowerline 'pada bagian bawah
Lcd "KEYPAD= " 'lcd menimbulkan karakter KEYPAD
Do 'fungsi utama
Portd = &B1101111 'menentukan keadaan awal PORTD
Waitms 5 'delay 5 ms
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "1" 'lcd menamplkan karakter 1
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9
Lcd "4" 'lcd menamplkan karakter 4
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9
Lcd "7" 'lcd menamplkan karakter 7
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "*" 'lcd menamplkan karakter *
End If 'pemilihan fumgsi selesai
Portd = &B1011111 'menentukan keadaan awal PORTD
Waitms 5
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "2" 'lcd menamplkan karakter 2
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "5"
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "8" 'lcd menamplkan karakter 8
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "0" 'lcd menamplkan karakter 0
End If 'pemilihan kondisi selesai
Portd = &B0111111 'menentukan keadaan awal PORTD
Waitms 5
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "3" 'lcd menamplkan karakter 3
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "6" 'lcd menamplkan karakter 6
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "9" 'lcd menamplkan karakter 9
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "#" 'lcd menamplkan karakter #
End If 'pemilihan kondisi selesai
Loop
'fungsi utama
End 'program selesai
$regfile = "m8515.dat" 'meanggil librari ATmega 8535
$crystal = 16000000 'mementukan kecepatan krystal yang digunakan
Config Lcdpin = Pin , Rs = Porta.4 , E = Porta.5 , Db4 = Porta.0 'mendeklarasika pin Lcd yang di pakai
Config Lcdpin = Pin , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 'mendeklarasikan pin Lcd yang di pakai
Config Lcd = 16 * 2 'menentukan lcd yang di pakai '
Config Kbd = Portd 'membuat variabel kbd pada PORTD
Dim Keypad As Byte 'keypad sebagai word
Cursor Off 'kursor lcd off
Cls 'lcd bersih
Ddrd = &B1110000 'menentukan input dan output pada keypad
Portd = &B1111111 'keadaan awal portd hidup
Keypad = Getkbd() 'memanggil fungsi keypad
Locate 1 , 1 'pada baris 1 kolom 1
Lcd "Pepi dan Reno" 'lcd membentuk karakter Pepi dan Reno
Lowerline 'pada bagian bawah
Lcd "KEYPAD= " 'lcd menimbulkan karakter KEYPAD
Do 'fungsi utama
Portd = &B1101111 'menentukan keadaan awal PORTD
Waitms 5 'delay 5 ms
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "1" 'lcd menamplkan karakter 1
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9
Lcd "4" 'lcd menamplkan karakter 4
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9
Lcd "7" 'lcd menamplkan karakter 7
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "*" 'lcd menamplkan karakter *
End If 'pemilihan fumgsi selesai
Portd = &B1011111 'menentukan keadaan awal PORTD
Waitms 5
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "2" 'lcd menamplkan karakter 2
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "5"
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "8" 'lcd menamplkan karakter 8
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "0" 'lcd menamplkan karakter 0
End If 'pemilihan kondisi selesai
Portd = &B0111111 'menentukan keadaan awal PORTD
Waitms 5
If Pind.0 = 0 Then 'jika PIND.0 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "3" 'lcd menamplkan karakter 3
Elseif Pind.1 = 0 Then 'jika PIND.1 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "6" 'lcd menamplkan karakter 6
Elseif Pind.2 = 0 Then 'jika PIND.2 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "9" 'lcd menamplkan karakter 9
Elseif Pind.3 = 0 Then 'jika PIND.3 =0
Locate 2 , 9 'baris 2 kolom 9 pada keypad
Lcd "#" 'lcd menamplkan karakter #
End If 'pemilihan kondisi selesai
Loop
'fungsi utama
End 'program selesai
File simulasi rangkaian =>>DOWNLOAD
File video rangkaian =>>DOWNLOAD
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar