Сигурност је главна брига у нашем свакодневном животу, а дигиталне браве постале су важан део ових сигурносних система. Постоји много врста технологија доступних за заштиту нашег места, попут ПИР сигурносних система, РФИД сигурносног система, ласерских сигурносних аларма, био-матричних система итд. Чак и сада постоје дигиталне браве којима се може управљати помоћу наших паметних телефона, значи не више треба да имају различите кључеве, само један паметни телефон може управљати свим бравама, овај концепт заснован је на Интернету ствари.
У овом пројекту објаснили смо једноставну електронску браву кода помоћу микроконтролера 8051, коју може откључати унапред дефинисани код, ако унесемо погрешан код, систем упозорава сиреном. Већ смо креирали дигиталну браву користећи Ардуино.
Објашњење:
Овај систем углавном садржи АТ89С52 микроконтролер, модул тастатуре, зујалицу и ЛЦД. Микроконтролер Ат89с52 контролише комплетне процесе као што је узимање лозинке из модула тастатуре, упоређивање лозинки унапред дефинисане лозинке, вођење зујалице и статус слања на ЛЦД екран. Тастатура се користи за уметање лозинке у микроконтролер. Зујалица се користи за индикацију погрешне лозинке, а ЛЦД се користи за приказ статуса или порука на њој. Зујалица је уградила управљачки програм помоћу НПН транзистора.
Компоненте:
- 8051 микроконтролер (АТ89С52)
- 4Кс4 модул тастатуре
- Зујалица
- ЛЦД 16к2
- Отпорник (1к, 10к)
- Отпорник за извлачење (10К)
- Кондензатор (10уф)
- Црвени водио
- Даска за хлеб
- ИЦ 7805
- 11.0592 МХз кристал
- Напајање
- Повезивање жица
Узимање података са 4Кс4 матрице тастатуре користећи Мултиплекинг технику:
У овом колу смо користили технику мултиплексирања за повезивање тастатуре са микроконтролером 8051 за унос лозинке у систем. Овде користимо 4к4 тастатуру која има 16 тастера. Ако желимо да користимо 16 кључева, тада нам треба 16 пинова за везу са 89с52, али у техници мултиплексирања треба да користимо само 8 пинова за повезивање 16 кључева. Тако да је то паметан начин повезивања модула тастатуре.
Техника мултиплексирања је врло ефикасан начин да се смањи број пинова који се користе са микроконтролером за пружање улаза или лозинке. У основи се ова техника користи на два начина - један је скенирање редова, а други скенирање колона.
Овде ћемо објаснити скенирање редова:
Прво морамо да дефинишемо 8 пинова за модул тастатуре. У којој су прва 4 пина колона, а последња 4 пина редови.
За скенирање редова морамо дати податке или сигнал на пинове ступаца и прочитати те податке или сигнал са чиоде реда. Сада претпоставимо да доње податке дајемо пиновима колона:
Ц1 = 0;
Ц2 = 1;
Ц3 = 1;
Ц4 = 1;
И ове податке читамо на редним пиновима (подразумевано су редовити пинови ВИСОКИ због вучног отпорника).
Ако корисник притисне тастер број '1', тада Р1 мења ВИСОКО у НИСКО, значи Р1 = 0; и контролер разуме да је корисник притиснуо тастер '1'. И исписат ће '1' на ЛЦД-у и похранити '1' у низ. Дакле, ова промена ХИГХ то ЛОВ на Р1 је главна ствар по којој контролер разуме да је притиснут неки тастер, који одговара колони 1.
Сада ако корисник притисне тастер број '2', тада Р1 остаје на ВИСОКОМ јер су Ц1 и Р1 оба већ на ВИСОКОМ. Отуда неће бити промена, што значи да микроконтролер разуме да у првој колони ништа није притиснуто. И такође овај принцип важи за све остале игле. Дакле, у овом кораку контролер чека само кључеве у првој колони: '1', '4', '7' и '*'.
Сада ако желимо да пратимо кључеве у другим колонама (као у колони 2), онда морамо да променимо податке на пиновима колона:
Ц1 = 1;
Ц2 = 0;
Ц3 = 1;
Ц4 = 1;
Овај временски контролер чека само кључеве у другој колони: '2', '5', '8' и '0', јер се промена (ХИГХ у ЛОВ) дешава само када се притисну тастери друге колоне. Ако притиснемо било који тастер у колонама 1, 3 или 4, тада неће доћи до промене, јер су ове колоне у ХИГХ, а редови су у ХИГХ.
Тако се и кључеви у колони Ц3 и Ц4 такође могу пратити ако их направите 0, истовремено. Овде погледајте детаљно објашњење: Интерфејс тастатуре са 8051. Такође прођите доњи одељак Кода да бисте правилно разумели логику.
Објашњење кола:
Шема кола за ову дигиталну браву која користи 8051 је приказана у наставку и лако се може разумети. Прибадаче ступаца модула тастатуре директно су повезане на пин П0.0, П0.1, П0.2, П0.3, а редовни пинови су повезани на П0.4, П0.5, П0.6, П0.7 од порта микроконтролера 89с52 0 ЛЦД 16к2 повезан је са микроконтролером 89с52 у 4-битном режиму. Контролни пин РС, РВ и Ен су директно повезани на пин П1.0, ГНД и П1.2. А пренос података Д4-Д7 повезан је на пинове П1.4, П1.5, П1.6 и П1.7 од 89с52. А један зујалица је повезан на пин П2.6 преко отпорника.
Објашњење програма:
У програму смо користили унапред дефинисану лозинку, коју може да дефинише корисник у доњем коду. Када корисник унесе лозинку у систем, затим систем упоређује лозинку коју је унео корисник са сачуваном или унапред дефинисаном лозинком у Цоде оф Програм. Ако се догоди подударање, на ЛЦД-у ће се приказати „Аццесс Гратед“, а ако се лозинка не подудара, ЛЦД ће приказати „Аццесс Дениед“ и зујало ће непрекидно оглашавати неко време. Овде смо користили библиотеку стринг.х. Коришћењем ове библиотеке можемо упоређивати или подударати два низа, користећи функцију „стрнцмп“.
У програм, пре свега, укључујемо заглавље и дефинишемо променљиве и улазне и излазне пинове за тастатуру и ЛЦД.
#инцлуде
Створена је функција за стварање кашњења од 1 секунде, заједно са неким ЛЦД функцијама као што су иницијализација ЛЦД-а, штампање низа, наредбе итд. Лако их можете пронаћи у коду. Погледајте овај чланак за ЛЦД повезивање са 8051 и његовим функцијама.
После тога, у главном програму иницијализујемо ЛЦД, а затим читамо унос са тастатуре помоћу функције тастатуре () и складиштимо тастере за унос у низ, а затим га упоређујемо са унапред дефинисаним подацима низа помоћу стрнцмп.
воид маин () {зујалица = 1; лцд_инит (); лцдстринг („Електронски код“); лцдцмд (0кц0); лцдстринг ("Систем закључавања"); кашњење (400); лцдцмд (1); лцдстринг ("Цирцуит Дигест"); кашњење (400); док (1) {и = 0; тастатура (); иф (стрнцмп (пасс, "4201", 4) == 0)
Ако се подудара унета лозинка, тада се позива функција аццепт ():
воид аццепт () {лцдцмд (1); лцдстринг ("Добродошли"); лцдцмд (192); лцдстринг ("Прихватање лозинке"); кашњење (200); }
А ако је лозинка погрешна, тада се позива погрешна () функција:
воид вронг () {зујалица = 0; лцдцмд (1); лцдстринг ("Погрешна лозинка"); лцдцмд (192); лцдстринг ("ПЛЗ Покушај поново"); кашњење (200); зујалица = 1; }
Проверите функцију тастатуре доле у коду који чита модул тастатуре обрасца за унос.