Pembahasan kali
ini mengenai bagaimana membuat alat sejenis alarm pintu, yang mana sistem
validasinya menggunakan password, sehingga akan tampak seperti pintu
ber-password, alarm pintu berpassword ini menggunakan sebuah keypad matrik 4x4,
tiga buah led (led merah, hijau dan biru), sebuah buzzer 5v, dan
mikrokontroller ATMega16. Sistem kerja dari alat ini yaitu user akan men-setting
terlebih dahulu mengenai password yang akan digunakan pada main menu “set”,
sehingga mikrokontroller akan menyimpan password tersebut dalam “eeprom” yang
sifatnya non volatile. Untuk proses input data menggunakan keypad matrik yang
memiliki fitur input angka 1 sampai 9. Untuk bentuk dari alatnya adalah seperti
gambar 6.12a
Jadi terdapat
LCD display yang fungsinya untuk menampilkan input angka yang dilakukan oleh
user, dan juga untuk menampilkan bahwa password yang dimasukkan benar atau
salah, jika password benar maka pada lcd display akan memunculkan tulisan
“PASSWORD BENAR” dan led hijau akan menyala, namun jika input password salah
akan menampilkan tulisan “PASSWORD SALAH” disertai dengan nyala led merah dan
bunyi buzzer.
Rangkaian Keselurihan Sistem
Program
Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portc.0 , E =
Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 =
Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Declare Sub Keypad
Declare Sub Entri_data
Dim Urut As Byte
Dim Kode As Byte
Dim Flag As Bit
Dim I As Word
Dim Nilai As Long
Dim Angka As Integer
Dim Pass As Integer
Dim Simpan_pass As Eram Integer 'variabel untuk EEPROM
Declare Sub Keypad1
Declare Sub Entri_data1
Dim Urut1 As Byte
Dim Kode1 As Byte
Dim Flag1 As Bit
Dim I1 As Word
Dim Nilai1 As Long
Dim Angka1 As Integer
Dim Pass1 As Integer
Ddra = &B11111111
Porta.5 = 1
Ddrd = &B11110000
Portd = &HFF
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Tombol1 Alias Pinb.0
Tombol2 Alias Pinb.1
Tombol3 Alias Pinb.2
Tombol4 Alias Pinb.3
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Utama:
Porta.7 = 0
Porta.6 = 0
Cls
Cursor Off
Cls
Cursor Off
Locate 1 , 4
Lcd "shinigami"
Locate 2 , 1
Lcd " set " ; " " ; " input "
Do
If Tombol1 = 0 Then
Bitwait Tombol1 , Set
Goto
Inputdata:
End If
If Tombol2 = 0 Then
Bitwait Tombol2 , Set
Goto
Setting
End If
Loop
Inputdata:
Porta.7 = 0
Porta.6 = 0
Porta.0 = 0
Cls
Upperline
Lcd "tombol 1 input"
Lowerline
Lcd "tombol 2 mulai"
Gosub Keypad
'Baca Keypad
Sub Keypad()
Kode = 0
Urut = 0
Flag = 0
I = 0
Do
For I = 0 To 20000
'KOLOM 1
Portd = &B11101111
If Pind.0 = 0 Then
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 4
Gosub Entri_data
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 7
Gosub Entri_data
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
End If
'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 5
Gosub Entri_data
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 8
Gosub Entri_data
Waitms 200
Elseif Pind.3 = 0 Then
Angka = 0
Gosub Entri_data
Waitms 200
End If
'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 6
Gosub Entri_data
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 9
Gosub Entri_data
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
End If
'KOLOM 4
Portd = &B01111111
If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data
Waitms 200
Elseif Pind.1 = 0 Then
Waitms 200
Elseif Pind.2 = 0 Then
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
Elseif Tombol3 = 0 Then
Goto Utama
Elseif Tombol1 = 0 Then
Goto Datain
End If
Next
Loop Until Tombol2 = 0
Goto Mulai
End Sub
'Entri Data
Sub Entri_data()
Incr Urut
Select Case Urut
Case 1 : Nilai = Angka
Lcd Angka
Case 2 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass = Nilai
Case 3 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass = Nilai
Case 4 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass = Nilai
Case 5 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Urut = 0
Locate 2 , 1
Pass = Nilai
End Select
End Sub
Mulai:
Cls
Do
If Pass = Simpan_pass Then
Lowerline
Lcd "password benar"
Upperline
Lcd Pass
Porta.7 = 1
Else
Lowerline
Lcd "password salah"
Upperline
Lcd Pass
Porta.6 = 1
Porta.0 = 1
End If
Wait 3
Goto Inputdata
Loop
Datain:
Cls
Cursor Blink
Cursor On
Locate 1 , 1
Lcd "Tnput Password:"
Locate 2 , 1
Cursor Blink
Cursor On
Waitms 200
Return
'=====================================================================
Setting:
Porta.7 = 0
Porta.6 = 0
Pass1 = 0
Cls
Upperline
Lcd "tombol 1 input"
Lowerline
Lcd "tombol 2 save"
Gosub Keypad1
'Baca Keypad
Sub Keypad1()
Kode1 = 0
Urut1 = 0
Flag1 = 0
I1 = 0
Do
For I1 = 0 To 20000
'KOLOM 1
Portd = &B11101111
If Pind.0 = 0 Then
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 4
Gosub Entri_data1
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 7
Gosub Entri_data1
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
End If
'KOLOM 2
Portd = &B11011111
If Pind.0 = 0 Then
Angka = 1
Gosub Entri_data1
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 5
Gosub Entri_data1
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 8
Gosub Entri_data1
Waitms 200
Elseif Pind.3 = 0 Then
Angka = 0
Gosub Entri_data1
Waitms 200
End If
'KOLOM 3
Portd = &B10111111
If Pind.0 = 0 Then
Angka = 2
Gosub Entri_data1
Waitms 200
Elseif Pind.1 = 0 Then
Angka = 6
Gosub Entri_data1
Waitms 200
Elseif Pind.2 = 0 Then
Angka = 9
Gosub Entri_data1
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
End If
'KOLOM 4
Portd = &B01111111
If Pind.0 = 0 Then
Angka = 3
Gosub Entri_data1
Waitms 200
Elseif Pind.1 = 0 Then
Waitms 200
Elseif Pind.2 = 0 Then
Waitms 200
Elseif Pind.3 = 0 Then
Waitms 200
Elseif Tombol3 = 0 Then
Goto Utama
Elseif Tombol1 = 0 Then
Goto Datain1
End If
Next
Loop Until Tombol2 = 0
Simpan_pass = Pass1
Bitwait Tombol2 , Set
Cls
Do
Lowerline
Lcd "simpan password"
Upperline
Lcd Pass1
Porta.7 = 1
Porta.6 = 1
Wait 3
Goto Utama
Loop
End Sub
'Entri Data
Sub Entri_data1()
Incr Urut1
Select Case Urut1
Case 1 : Nilai = Angka
Lcd Angka
Case 2 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai
Case 3 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai
Case 4 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Pass1 = Nilai
Case 5 : Nilai = Nilai * 10
Nilai = Nilai + Angka
Lcd Angka
Urut1 = 0
Locate 2 , 1
Pass1 = Nilai
End Select
End Sub
Datain1:
Cls
Cursor Blink
Cursor On
Locate 1 , 1
Lcd "Input Password:"
Locate 2 , 1
Cursor Blink
Cursor On
Waitms 200
Return
Cara
Penggunaan Alat
Cara penggunaan alat ini
pertama terdapat tampilan pilihan di LCD display yaitu menu “set” dan “input”,
user diminta untuk memilih salah satu pilihan tersebut dengan tombol1 untuk “input”
dan tombol2 untuk “set”, langkah pertama user harus masuk ke bagian “set” untuk
memasukkan password awal, masukkan kombinasi angka sebagai password dengan
keypad matrik, setelah berhasil memasukkan password, langkah kedua yaitu
kembali ke menu awal dengan menekan tombol3, setelah itu masuk ke bagian menu
“input” dengan menekan tombol1, dibagian menu input, user akan dimintai
kombinasi password yang sesuai dengan apa yang telah disimpan sebelumnya dengan
menggunakan keypad matrik, jika input password bernilai benar maka led hijau
akan menyala, namun jika salah maka led merah akan menyala diikuti dengan bunyi
buzzer.
No comments:
Post a Comment