Varnost je glavna skrb v našem vsakdanjem življenju in digitalne ključavnice so postale pomemben del teh varnostnih sistemov. Za zaščito našega kraja je na voljo veliko vrst tehnologij, kot so varnostni sistemi na osnovi PIR, RFID varnostni sistem, laserski varnostni alarmi, bio-matrični sistemi itd. Tudi zdaj obstajajo digitalne ključavnice, ki jih je mogoče upravljati z našimi pametnimi telefoni, pomeni več je treba hraniti različne tipke, samo en pametni telefon lahko upravlja vse ključavnice, ta koncept temelji na internetu stvari.
V tem projektu smo razložili preprosto elektronsko zaklepanje kode z uporabo mikrokrmilnika 8051, ki ga je mogoče odkleniti le z vnaprej določeno kodo, če sistem vpiše napačno kodo, sistem opozori s sireno. Z uporabo Arduina smo že ustvarili digitalno ključavnico.
Delovna razlaga:
Ta sistem vsebuje predvsem mikrokrmilnik AT89S52, modul tipkovnice, brenčalo in LCD. Mikrokrmilnik At89s52 nadzoruje celotne procese, kot je zajem gesla iz modula tipkovnice, primerjava vnaprej določenih gesel, vožnja z brenčalom in stanje pošiljanja na LCD zaslon. Tipkovnica se uporablja za vstavljanje gesla v mikrokrmilnik. Zvočni signal se uporablja za prikaz napačnega gesla, LCD pa za prikaz stanja ali sporočil na njem. Zvočni signal ima vgrajen gonilnik z uporabo NPN tranzistorja.
Sestavni deli:
- 8051 mikrokrmilnik (AT89S52)
- 4X4 modul tipkovnice
- Zvočni signal
- 16x2 LCD
- Upor (1k, 10k)
- Pullup upor (10K)
- Kondenzator (10uf)
- Rdeča vodila
- Deska za kruh
- IC 7805
- 11,0592 MHz kristal
- Napajanje
- Priključne žice
Če vnesete podatke iz matrice 4X4 s tipkovnico s pomočjo tehnike multipleksiranja:
V tem vezju smo uporabili tehniko multipleksiranja za povezavo tipkovnice z mikrokrmilnikom 8051 za vnos gesla v sistem. Tu uporabljamo tipkovnico 4x4 s 16 tipkami. Če želimo uporabiti 16 tipk, potem potrebujemo 16 nožic za povezavo z 89s52, v tehniki multipleksiranja pa moramo uporabiti le 8 nožic za povezovanje 16 tipk. Tako je to pameten način za povezovanje modula s tipkovnico.
Tehnika multipleksiranja je zelo učinkovit način za zmanjšanje števila nožic, ki se uporabljajo z mikrokrmilnikom za vnos ali geslo. V bistvu se ta tehnika uporablja na dva načina - eden je skeniranje vrstic in drugi pregledovanje stolpcev.
Tukaj bomo razložili skeniranje vrstic:
Najprej moramo določiti 8-polni modul za tipkovnico. V katerem so prvi 4 zatiči stolpci, zadnji 4 zatiči pa vrstice.
Za skeniranje vrstic moramo podatke ali signal podati na nožice stolpcev in te podatke ali signal prebrati s črtice. Zdaj predpostavimo, da spodaj podajamo podatke za zatiče stolpcev:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
In te podatke beremo pri vrstnih zatičih (privzeto so vrstni zatiči VISOKI zaradi vlečnega upora).
Če uporabnik pritisne številko tipke '1', potem R1 spremeni HIGH v LOW pomeni R1 = 0; in krmilnik razume, da je uporabnik pritisnil tipko '1'. Na LCD bo natisnil '1' in shranil '1' v matriko. Ta sprememba VISOKO NA NIZO pri R1 je glavna stvar, s katero krmilnik razume, da je bila pritisnjena neka tipka, ki ustreza stolpcu 1.
Če uporabnik pritisne številko tipke '2', potem R1 ostane VISOKO, saj sta C1 in R1 že HIGH. Zato ne bo sprememb, kar pomeni, da mikrokrmilnik razume, da v prvem stolpcu ni nič pritisnjeno. In prav tako ta glavnica velja za vse druge zatiče. V tem koraku krmilnik čaka samo na tipke v prvem stolpcu: '1', '4', '7' in '*'.
Zdaj, če želimo slediti ključem v drugih stolpcih (na primer v stolpcu 2), moramo spremeniti podatke na zatičih stolpcev:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Ta krmilnik časa čaka samo na tipke v drugem stolpcu: '2', '5', '8' in '0', ker se sprememba (HIGH v LOW) zgodi samo, ko pritisnete tipki dva stolpca. Če pritisnemo katero koli tipko v stolpcih 1, 3 ali 4, potem ne bo prišlo do spremembe, ker so ti stolpci HIGH, vrstice pa že HIGH.
Tako lahko tudi tipkam v stolpcih C3 in C4 sledimo tako, da jih naenkrat nastavimo na 0. Tukaj si oglejte podrobno razlago: Povezava tipkovnice z 8051. Za pravilno razumevanje logike si oglejte tudi spodnji razdelek Koda.
Pojasnilo vezja:
Shema vezja za to digitalno ključavnico z uporabo 8051 je prikazana spodaj in jo je mogoče enostavno razumeti. Zatiči stolpcev modula tipkovnice so neposredno povezani na zatič P0.0, P0.1, P0.2, P0.3, vrstni zatiči pa na priključke P0.4, P0.5, P0.6, P0.7 mikrokrmilnika 89s52 0 LCD 16x2 je v 4-bitnem načinu povezan z mikrokrmilnikom 89s52. Krmilni zatiči RS, RW in En so neposredno povezani z zatiči P1.0, GND in P1.2. Podatkovni zatič D4-D7 je povezan z zatiči P1.4, P1.5, P1.6 in P1.7 z 89s52. In en zvočni signal je povezan na pin P2.6 prek upora.
Pojasnilo programa:
V programu smo uporabili vnaprej določeno geslo, ki ga uporabnik lahko določi v spodnji kodi. Ko uporabnik v sistem vnese geslo, nato sistem primerja uporabniško vneseno geslo s shranjenim ali vnaprej določenim geslom v programski kodi. Če pride do ujemanja, bo na LCD-prikazovalniku prikazano »Access Grated«, če pa se geslo ne ujema, bo LCD prikazal »Access Denied« in zvočni signal bo nekaj časa neprekinjeno piskal. Tu smo uporabili knjižnico string.h. Z uporabo te knjižnice lahko primerjamo ali primerjamo dva niza s pomočjo funkcije “strncmp”.
V program najprej vključimo glavo in določimo spremenljive ter vhodno-izhodne nožice za tipkovnico in LCD.
#include
Ustvarjena je bila funkcija za ustvarjanje zakasnitve za 1 sekundo, skupaj z nekaterimi funkcijami LCD, kot so inicializacija LCD-ja, tiskanje niza, ukazi itd. Oglejte si ta članek za povezave LCD z 8051 in njegovimi funkcijami.
Po tem smo v glavnem programu inicializirali LCD in nato s funkcije tipkovnice () prebrali vnos s tipkovnice, shranili vhodne tipke v matriko in jo nato primerjali s predhodno določenimi podatki matrike s pomočjo strncmp.
void main () {brenčalo = 1; lcd_init (); lcdstring ("Elektronska koda"); lcdcmd (0xc0); lcdstring ("Sistem za zaklepanje"); zamuda (400); lcdcmd (1); lcdstring ("Circuit Digest"); zamuda (400); medtem ko (1) {i = 0; tipkovnica (); if (strncmp (pass, "4201", 4) == 0)
Če se vneseno geslo ujema, se pokliče funkcija accept ():
void accept () {lcdcmd (1); lcdstring ("Dobrodošli"); lcdcmd (192); lcdstring ("Sprejmi geslo"); zamuda (200); }
In če je geslo napačno, se pokliče napačna () funkcija:
neveljavna napaka () {brenčalo = 0; lcdcmd (1); lcdstring ("Napačna geslo"); lcdcmd (192); lcdstring ("PLZ Poskusi znova"); zamuda (200); zvočni signal = 1; }
Spodaj preverite funkcijo tipkovnice v kodi, ki bere modul tipkovnice vhodnega obrazca.