Saugumas yra pagrindinis mūsų kasdienio gyvenimo rūpestis, o skaitmeninės spynos tapo svarbia šių apsaugos sistemų dalimi. Mūsų vietai užtikrinti yra daugybė įvairių technologijų, tokių kaip PIR pagrįstos apsaugos sistemos, RFID pagrįsta apsaugos sistema, lazerio apsaugos signalizacijos, biologinės matricos sistemos ir kt. Net ir dabar yra skaitmeninių spynų, kurias galima valdyti naudojantis mūsų išmaniaisiais telefonais, reiškia daugiau reikia laikyti skirtingus raktus, tik vienas išmanusis telefonas gali valdyti visas spynas, ši koncepcija paremta daiktų internetu.
Šiame projekte mes paaiškinome paprastą elektroninį kodinį užraktą naudodami „8051 Microcontorllerer“, kurį atrakinti galima tik iš anksto nustatytu kodu, jei įvesime neteisingą kodą, sistema įspėja sirena švilpuku. Mes jau sukūrėme skaitmeninį užraktą naudodami „Arduino“.
Darbinis paaiškinimas:
Šioje sistemoje daugiausia yra mikrovaldiklis AT89S52, klaviatūros modulis, garsinis signalas ir LCD ekranas. „At89s52“ mikrovaldiklis valdo visus procesus, tokius kaip slaptažodžio formos klaviatūros modulio paėmimas, iš anksto nustatytų slaptažodžių palyginimas, „buzerio“ valdymas ir siuntimo būsena į LCD ekraną. Klaviatūra naudojama slaptažodžiui įterpti į mikrovaldiklį. Buzzer yra naudojamas neteisingam slaptažodžiui nurodyti, o LCD - būsenai ar pranešimams rodyti. „Buzzer“ turi integruotą tvarkyklę naudodamas NPN tranzistorių.
Komponentai:
- 8051 mikrovaldiklis (AT89S52)
- 4X4 klaviatūros modulis
- Buzeris
- 16x2 LCD ekranas
- Rezistorius (1k, 10k)
- Ištraukimo rezistorius (10K)
- Kondensatorius (10uf)
- Raudona vedė
- Bandomoji Lenta
- IC 7805
- 11,0592 MHz kristalas
- Maitinimas
- Jungiamieji laidai
Įvesties iš 4X4 klaviatūros matricos naudojimas multipleksavimo technika:
Šioje grandinėje mes naudojome multipleksavimo techniką, kad susietume klaviatūrą su mikrovaldikliu 8051, įvesdami slaptažodį sistemoje. Čia mes naudojame 4x4 klaviatūrą, kurioje yra 16 klavišų. Jei norime naudoti 16 raktų, mums reikia 16 kontaktų, kad galėtume prisijungti prie 89s52, tačiau multipleksavimo technikoje 16 raktų susiejimui reikia naudoti tik 8 kaiščius. Taigi, tai yra protingas būdas susieti klaviatūros modulį.
Multipleksavimo technika yra labai efektyvus būdas sumažinti kaiščių, naudojamų kartu su mikrovaldikliu, įvedant įvestį ar slaptažodį, skaičių. Iš esmės ši technika naudojama dviem būdais - vienas yra eilių nuskaitymas, o kitas - stulpelių nuskaitymas.
Čia mes paaiškinsime eilučių nuskaitymą:
Pirmiausia turime nustatyti 8 kontaktų klaviatūros moduliui. Kuriuose pirmuose 4 kaiščiuose yra stulpeliai, o paskutiniuose 4 kaiščiuose yra eilutės.
Norėdami nuskaityti eilutes, turime pateikti duomenis ar signalą stulpelių kaiščiams ir perskaityti tuos duomenis ar signalą iš eilutės kaiščio. Dabar tarkime, kad toliau pateikiame duomenis stulpelių kaiščiams:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Šiuos duomenis skaitėme ties eilučių kaiščiais (pagal nutylėjimą eilutės kaiščiai yra AUKŠTI dėl ištraukimo rezistoriaus).
Jei vartotojas paspaudžia klavišo skaičių „1“, R1 pakeičia HIGH į LOW reiškia R1 = 0; ir valdiklis supranta, kad vartotojas paspaudė mygtuką „1“. LCD ekrane atspausdins „1“ ir masyve išsaugos „1“. Taigi šis HIGH to LOW pokytis R1 yra pagrindinis dalykas, kuriuo valdiklis supranta, kad buvo paspaustas koks nors 1 stulpelį atitinkantis klavišas.
Dabar, jei vartotojas paspaudžia klavišo skaičių „2“, R1 lieka HIGH, nes C1 ir R1 jau yra HIGH. Taigi pokyčių nebus, tai reiškia, kad mikrovaldiklis supranta, kad pirmame stulpelyje nieko nebuvo paspausta. Taip pat šis principas tinka visiems kitiems kaiščiams. Taigi šiame etape valdiklis laukia raktų tik pirmame stulpelyje: „1“, „4“, „7“ ir „*“.
Dabar, jei norime stebėti raktus kituose stulpeliuose (pvz., 2 stulpelyje), turime pakeisti duomenis stulpelių kaiščiuose:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Šis laiko valdiklis laukia raktų tik antrame stulpelyje: „2“, „5“, „8“ ir „0“, nes pakeitimas (HIGH į LOW) įvyksta tik tada, kai bus paspausti du stulpelio klavišai. Jei paspausime bet kurį 1, 3 arba 4 stulpelio klavišą, pokyčių nebus, nes šie stulpeliai yra HIGH, o eilutės jau HIGH.
Taigi taip pat C3 ir C4 stulpelių klavišus taip pat galima stebėti, sudarant juos vienu metu 0. Čia patikrinkite išsamų paaiškinimą: Klaviatūros sąsaja su 8051. Taip pat pereikite žemiau esantį skyrių Kodas, kad tinkamai suprastumėte logiką.
Grandinės paaiškinimas:
Šio skaitmeninio užrakto, naudojant 8051, schema buvo parodyta žemiau ir gali būti lengvai suprantama. Klaviatūros modulio stulpelio kaiščiai yra tiesiogiai prijungti prie kaiščių P0.0, P0.1, P0.2, P0.3, o eilutės kaiščiai yra prijungti prie P0.4, P0.5, P0.6, P0.7 iš 89s52 mikrovaldiklio prievado 0 16x2 skystųjų kristalų ekranas yra sujungtas su 89s52 mikrovaldikliu 4 bitų režimu. Valdymo kaiščiai RS, RW ir En yra tiesiogiai prijungti prie kaiščių P1.0, GND ir P1.2. Duomenų kaištis D4-D7 yra prijungtas prie 89s52 kaiščių P1.4, P1.5, P1.6 ir P1.7. Ir vienas signalas yra prijungtas prie kaiščio P2.6 per rezistorių.
Programos paaiškinimas:
Programoje naudojome iš anksto nustatytą slaptažodį, kurį vartotojas gali apibrėžti žemiau esančiame kode. Kai vartotojas įveda sistemos slaptažodį, tada sistema palygina vartotojo įvestą slaptažodį su išsaugotu arba iš anksto nustatytu slaptažodžiu programos programoje. Jei įvyksta atitiktis, skystųjų kristalų ekrane rodoma „Access Grated“, o jei slaptažodis nesutampa, LCD ekrane rodoma „Access Denied“, o garsinis signalas kurį laiką nuolat pypsės. Čia mes panaudojome string.h biblioteką. Naudodamiesi šia biblioteka galime palyginti arba suderinti dvi eilutes, naudodami „strncmp“ funkciją.
Į programą pirmiausia įtraukiame antraštės failą ir apibrėžiame kintamuosius, įvesties ir išvesties kaiščius klaviatūrai ir LCD.
# įtraukti
Sukurta 1 sekundės uždelsimo sukūrimo funkcija, kartu su kai kuriomis LCD funkcijomis, tokiomis kaip LCD inicializavimas, eilutės spausdinimas, komandoms ir kt. Jas galite lengvai rasti Kode. Šiame straipsnyje rasite LCD sąsają su 8051 ir jo funkcijomis.
Po to pagrindinėje programoje turime inicializuoti skystųjų kristalų ekraną, tada mes perskaitėme įvestį iš Klaviatūros, naudodamiesi klaviatūros () funkcija, ir išsaugome įvesties klavišus į masyvą, tada palyginkite juos iš anksto nustatytų masyvo duomenų naudodami strncmp.
void main () {zumeris = 1; lcd_init (); lcdstring („Elektroninis kodas“); lcdcmd (0xc0); lcdstring („Užrakto sistema“); vėlavimas (400); lcdcmd (1); „lcdstring“ („Grandinės santrauka“); vėlavimas (400); o (1) {i = 0; klaviatūra (); jei (strncmp (perdavimas, "4201", 4) == 0)
Jei įvestas slaptažodis sutampa, iškviečiama funkcija accept ():
negaliojantis priimti () {lcdcmd (1); lcdstring („Sveiki atvykę“); lcdcmd (192); lcdstring ("Slaptažodžio priėmimas"); vėlavimas (200); }
Jei slaptažodis neteisingas, vadinama klaidinga () funkcija:
negaliojantis neteisingas () {zumeris = 0; lcdcmd (1); lcdstring („Neteisingas slaptažodis“); lcdcmd (192); lcdstring („PLZ Pabandykite dar kartą“); vėlavimas (200); garsinis signalas = 1; }
Patikrinkite žemiau esančią klaviatūros funkciją kode, kuris nuskaito įvesties formos klaviatūros modulį.