Keselamatan menjadi perhatian utama dalam kehidupan kita sehari-hari, dan kunci digital telah menjadi bahagian penting dalam sistem keselamatan ini. Terdapat banyak jenis teknologi yang tersedia untuk melindungi tempat kita, seperti sistem keselamatan Berasaskan PIR, sistem Keselamatan berasaskan RFID, penggera keselamatan Laser, sistem bio-matriks dan lain-lain. Walaupun sekarang, terdapat kunci Digital yang boleh dikendalikan menggunakan telefon pintar kita, tidak bermaksud lebih banyak perlu menyimpan kunci yang berbeza, hanya satu telefon pintar yang dapat mengendalikan semua kunci, konsep ini berdasarkan Internet of Things.
Dalam projek ini, kami telah menerangkan kunci kod Elektronik yang mudah menggunakan 8051 Microcontorller, yang hanya dapat dibuka oleh kod yang telah ditentukan, jika kita memasukkan kod yang salah, sistem akan memberi amaran oleh siren buzzer. Kami telah membuat kunci Digital menggunakan Arduino.
Penjelasan Kerja:
Sistem ini terutamanya mengandungi mikrokontroler AT89S52, modul papan kekunci, buzzer dan LCD. Mikrokontroler At89s52 mengawal proses lengkap seperti mengambil modul papan kekunci bentuk kata laluan, membandingkan kata laluan yang ditentukan sebelumnya, memacu buzzer dan menghantar status ke paparan LCD. Pad kekunci digunakan untuk memasukkan kata laluan ke dalam mikrokontroler. Buzzer digunakan untuk menunjukkan kata laluan yang salah dan LCD digunakan untuk memaparkan status atau mesej di atasnya. Buzzer mempunyai pemacu terbina dengan menggunakan transistor NPN.
Komponen:
- 8051 Pengawal Mikro (AT89S52)
- Modul Pad Kekunci 4X4
- Buzzer
- LCD 16x2
- Perintang (1k, 10k)
- Perintang penarik (10K)
- Kapasitor (10uf)
- Merah dipimpin
- Papan roti
- IC 7805
- 11.0592 MHz Kristal
- Bekalan Kuasa
- Menyambung wayar
Mengambil input dari 4X4 Keypad Matrix menggunakan Teknik Multiplexing:
Dalam rangkaian ini, kami telah menggunakan teknik multiplexing untuk menghubungkan papan kekunci ke mikrokontroler 8051, untuk memasukkan kata sandi dalam sistem. Di sini kita menggunakan pad kekunci 4x4 yang mempunyai 16 kekunci. Sekiranya kita ingin menggunakan 16 kekunci maka kita memerlukan 16 pin untuk sambungan ke 89s52, tetapi dalam teknik multiplexing kita hanya perlu menggunakan 8 pin untuk menghubungkan 16 kekunci. Oleh itu, ia adalah kaedah yang bijak untuk menghubungkan modul keypad.
Teknik multiplexing adalah kaedah yang sangat berkesan untuk mengurangkan bilangan pin yang digunakan dengan mikrokontroler untuk memberikan input atau kata laluan. Pada asasnya teknik ini digunakan dalam dua cara - satu adalah pengimbasan baris dan satu lagi adalah pengimbasan lajur.
Di sini kita akan menerangkan pengimbasan baris:
Mula-mula kita harus menentukan 8 pin untuk modul papan kekunci. Di mana 4 pin pertama adalah lajur dan 4 pin terakhir adalah baris.
Untuk pengimbasan baris, kita perlu memberikan data atau isyarat ke pin lajur dan membaca data atau isyarat dari pin baris. Sekarang anggap kita memberikan data di bawah pada pin lajur:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Dan kami membaca data ini pada pin baris (secara automatik pin baris adalah TINGGI kerana pull-up resistor).
Sekiranya pengguna menekan nombor kekunci '1' maka R1 berubah TINGGI menjadi RENDAH bermaksud R1 = 0; dan pengawal memahami bahawa pengguna telah menekan kekunci '1'. Dan ia akan mencetak '1' pada LCD dan menyimpan '1' dalam pelbagai. Jadi perubahan TINGGI ke RENDAH ini di R1, adalah perkara utama di mana pengawal memahami bahawa beberapa kekunci, sesuai dengan Lajur 1, telah ditekan.
Sekarang jika pengguna menekan nombor kekunci '2' maka R1 tetap di HIGH kerana C1 dan R1 keduanya sudah berada di HIGH. Oleh itu tidak akan ada perubahan, ini bermaksud mikrokontroler memahami bahawa tidak ada yang ditekan di lajur satu. Begitu juga prinsipal ini untuk semua pin lain. Jadi dalam langkah ini pengawal hanya menunggu kunci di lajur satu: '1', '4', '7' dan '*'.
Sekarang jika kita ingin mengesan kunci di lajur lain (seperti di col 2), maka kita perlu mengubah data pada pin lajur:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Pengawal masa ini hanya menunggu kekunci di lajur dua: '2', '5', '8'dan' 0 ', kerana perubahan (TINGGI ke RENDAH) hanya berlaku apabila kekunci lajur dua akan ditekan. Sekiranya kita menekan sebarang kekunci di kol 1, 3 atau 4 maka tidak akan ada perubahan, kerana lajur ini berada di HIGH, dan Baris sudah di HIGH.
Begitu juga kekunci di lajur C3 dan C4 juga dapat dijejaki dengan menjadikannya 0, sekaligus. Lihat di sini penjelasan terperinci: Padam Keypad dengan 8051. Lihat juga bahagian Kod di bawah untuk memahami logiknya dengan betul.
Penjelasan Litar:
Gambarajah litar untuk kunci Digital ini menggunakan 8051 telah ditunjukkan di bawah dan dapat difahami dengan mudah. Pin Tiang modul papan kekunci disambungkan secara langsung ke pin P0.0, P0.1, P0.2, P0.3 dan Pin baris disambungkan ke P0.4, P0.5, P0.6, P0.7 dari port mikrokontroler 89s52 0 LCD 16x2 disambungkan dengan mikrokontroler 89s52 dalam mod 4-bit. Pin kawalan RS, RW dan En disambungkan secara langsung ke pin P1.0, GND dan P1.2. Dan pin data D4-D7 disambungkan ke pin P1.4, P1.5, P1.6 dan P1.7 dari 89s52. Dan satu bel disambungkan pada pin P2.6 melalui perintang.
Penjelasan Program:
Kami telah menggunakan kata laluan yang telah ditentukan dalam program ini, kata laluan ini dapat ditentukan oleh pengguna dalam kod di bawah. Apabila pengguna memasukkan kata laluan ke sistem, kemudian sistem membandingkan kata laluan yang dimasukkan pengguna dengan kata laluan yang disimpan atau yang telah ditentukan dalam Kod Program. Sekiranya kecocokan berlaku maka LCD akan menunjukkan "Akses Parut" dan jika kata laluan tidak sesuai maka LCD akan menunjukkan "Akses Ditolak" dan bel akan berbunyi secara berterusan untuk beberapa waktu. Di sini kami telah menggunakan perpustakaan string.h. Dengan menggunakan perpustakaan ini kita dapat membandingkan atau memadankan dua string, dengan menggunakan fungsi "strncmp".
Dalam program ini, pertama-tama kami menyertakan fail tajuk dan menentukan pemboleh ubah dan pin input & output untuk papan kekunci dan LCD.
#sertakan
Fungsi untuk membuat kelewatan 1 saat telah dibuat, bersama dengan beberapa fungsi LCD seperti untuk inisialisasi LCD, mencetak rentetan, untuk perintah dan lain-lain. Anda boleh mendapatkannya dengan mudah dalam Kod. Lihat artikel ini untuk antara muka LCD dengan 8051 dan fungsinya.
Selepas ini, dalam program utama kami telah menginisialisasi LCD dan kemudian kami membaca input dari Keypad menggunakan fungsi keypad () dan menyimpan kunci input ke dalam array dan kemudian membandingkannya dari data array yang telah ditentukan menggunakan strncmp.
kekosongan utama () {buzzer = 1; lcd_init (); lcdstring ("Kod Elektronik"); lcdcmd (0xc0); lcdstring ("Sistem Kunci"); kelewatan (400); lcdcmd (1); lcdstring ("Litar Digest"); kelewatan (400); sementara (1) {i = 0; pad kekunci (); jika (strncmp (lulus, "4201", 4) == 0)
Sekiranya kata laluan yang dimasukkan sesuai, maka fungsi terima () dipanggil:
batal terima () {lcdcmd (1); lcdstring ("Selamat Datang"); lcdcmd (192); lcdstring ("Terima Kata Laluan"); kelewatan (200); }
Dan jika kata laluan salah maka fungsi salah () dipanggil:
batal salah () {buzzer = 0; lcdcmd (1); lcdstring ("Kata Laluan yang Salah"); lcdcmd (192); lcdstring ("PLZ Cuba Lagi"); kelewatan (200); buzzer = 1; }
Periksa fungsi papan kekunci di bawah dalam kod yang membaca modul papan kekunci borang input.