Tuesday, March 17, 2015

Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

Jika anda pernah membaca postingan saya yang sebelumnya, dahulu saya pernah menuliskan tentang kases keypad untuk password berupa angka, pada tulisan kali ini saya akan mempostingkan tentang cara Menggunakan Keypad 4x4 untuk mengetik teks ditampilkan pada LCD yang terkoneksi pada pin mikrokontroler AT mega 16.

Biasanya posting tentang keypad 4*4 hanya dibahas mengenai cara membaca angka saja, dalam artian klik pada keypad, maka akan muncul angka numerik 0,1,2,3,4,5,6,7,8,9 , nah pada posting kali ini, saya berikan sample source code dengan bascom, supaya anda dapat mengetik kata tertentu, semisal TAUFIK dengan menggunakan keypad 4*4

Berikut ini adalah gambar skematik Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16
Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

sedangkan berikut ini adalah source code Menggunakan Keypad 4x4 untuk mengetik teks dengan at mega 16 yang ditulis dan dikompile dengan software bascom avr:
$regfile = "m16def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off
Cls
Lcd "Masukkan Kata"

Relay Alias Portb.1
Ddrb.1 = 1
Relay = 0

Dim Pos As Byte


Dim Urut As Byte
Dim Kodetombol1 As Byte
Dim Kodetombol2 As Byte
Dim Kodetombol3 As Byte
Dim Kodetombol4 As Byte
Dim Kodetombol5 As Byte
Dim Kodetombol6 As Byte
Dim Kodetombol7 As Byte
Dim Kodetombol8 As Byte
Dim Kodetombol9 As Byte
Dim Kodetombol0 As Byte
Dim Kodetombolbintang As Byte
Dim Kodetombolpagar As Byte
'Dim Flag As Bit
'Dim I As Word
Dim karakter As string * 1
Dim teks As string * 16
'Dim Angka As Integer
'Dim Pass As Integer , pw as string * 5
'Dim Simpan_pass As Eram Integer                             'variabel untuk EEPROM


Const Password = "12380"

Ddra = &B11110000
Porta = &HFF

'C = 1
'Lowerline
Do
Gosub Scan_keypad
Loop

Entri:
if Kodetombolbintang = 1 then
teks = teks + karakter
cls
locate 2 , 1
Lcd teks
Kodetombolbintang = 0
end IF



'Simpan_pass = Pass


Waitms 250
Return

Proses:
cls
locate 1 , 1
lcd teks
 wait 1
For Pos = 0 To 16 Step 1
    Waitms 500
    Shiftlcd Left
  Next Pos

Return

Scan_keypad:

do
'KOLOM 1
Porta = &B11101111

If Pina.0 = 0 Then
Kodetombol1 = Kodetombol1 + 1
if Kodetombol1 = 1 then
karakter = "?"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol1 = 2 then
karakter = "!"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
Kodetombol1 = 0
end IF


Gosub Entri


Elseif Pina.1 = 0 Then

Kodetombol4 = Kodetombol4 + 1
if Kodetombol4 = 1 then
karakter = "G"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol4 = 2 then
karakter = "H"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol4 = 3 then
karakter = "I"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
Kodetombol4 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol7 = Kodetombol7 + 1
if Kodetombol7 = 1 then
karakter = "P"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 2 then
karakter = "Q"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 3 then
karakter = "R"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 4 then
karakter = "S"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol7 = 0
endif

Gosub Entri

Elseif Pina.3 = 0 Then
Kodetombolbintang = 1
Gosub Entri
End If



'KOLOM 2
Porta = &B11011111
If Pina.0 = 0 Then
Kodetombol2 = Kodetombol2 + 1
if Kodetombol2 = 1 then
karakter = "A"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol2 = 2 then
karakter = "B"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol2 = 3 then
karakter = "C"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol2 = 0
endif

Gosub Entri

Elseif Pina.1 = 0 Then
Kodetombol5 = Kodetombol5 + 1
if Kodetombol5 = 1 then
karakter = "J"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol5 = 2 then
karakter = "K"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol5 = 3 then
karakter = "L"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol5 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol8 = Kodetombol8 + 1
if Kodetombol8 = 1 then
karakter = "T"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol8 = 2 then
karakter = "U"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol8 = 3 then
karakter = "V"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol8 = 0
endif

Gosub Entri

Elseif Pina.3 = 0 Then
Kodetombol0 = Kodetombol0 + 1
if Kodetombol0 = 1 then
karakter = " "
locate 1 , 1
lcd "                "
locate 1 , 1
lcd "Spasi"
end if
Gosub Entri

End If


'KOLOM 3
Porta = &B10111111
If Pina.0 = 0 Then
Kodetombol3 = Kodetombol3 + 1
if Kodetombol3 = 1 then
karakter = "D"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol3 = 2 then
karakter = "E"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol3 = 3 then
karakter = "F"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol3 = 0
endif

Gosub Entri

Elseif Pina.1 = 0 Then
Kodetombol6 = Kodetombol6 + 1
if Kodetombol6 = 1 then
karakter = "M"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol6 = 2 then
karakter = "N"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol6 = 3 then
karakter = "O"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol6 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol9 = Kodetombol9 + 1
if Kodetombol9 = 1 then
karakter = "W"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 2 then
karakter = "X"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 3 then
karakter = "Y"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 4 then
karakter = "Z"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol9 = 0
end IF
Gosub Entri

Elseif Pina.3 = 0 Then

Gosub Proses                                                'ENTER

End If
'-------
'KOLOM 4
Porta = &B01111111

If Pina.0 = 0 Then
Cls
Cursor Off
Locate 1 , 1
Lcd "Masukkan Password ="
Locate 2 , 1
'Wait 1
Cursor Blink
Cursor On
Waitms 100


Elseif Pina.1 = 0 Then
Cls
Cursor Off
Locate 1 , 1
Lcd "Masukkan Password ="
Locate 2 , 1
'Wait 1
Cursor Blink
Cursor On
Waitms 100


Elseif Pina.2 = 0 Then
Waitms 100

Elseif Pina.3 = 0 Then
Waitms 100
EndIf

Loop
End

jika anda menekan tombol 2 sebanyak 1 kali akan muncul karakter A, jika 2 kali akan muncul karakter B, jika 3 kali akan muncul karakter C,

selanjutnya untuk menyimpan karakter menjadi teks, silakan tekan tombol pojok kiri bawah (di bawah tombol 7, sehingga karakter yang anda ketik akan ditambahkan atau digabungkan dengan karakter2 sebelumnya, pada contoh gambar di atas adalah teks TAUFIK yang merupakan gabungan dari karakter T, karakter A, dan seterusnya hingga karakter K) 


untuk mendownload simulasi dan source codeMenggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

KLIK DI SINI

Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11, 
Blawong 1 , RT 01, Trimulyo, 
Jetis, Bantul 55781.

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, led running teks, pengendali lampu  atau peralatan listrik lainnya via internet dan sebagainya ? anda dapat membelinya di www.kedaiarduino.com
 www.kedaiarduino.com


Related Posts

Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16
4/ 5
Oleh

1 comments:

March 18, 2016 at 12:04 PM delete

mohon bimbingannya mas, gmn contoh listing programnya klw stlah mmilih angka atw huruf mka otomasis menyimpan tanpa harus menekan tombol bintang, intinya persis sperti tombol hp gitu mas... mohon pencerahannya mas

Reply
avatar

Silakan dikomentari