Qarışıq kilid PIC16F628A. PIC16F628A mikro nəzarət cihazında kombinasiyalı kilid Şəkildəki kombinasiyalı kilid

Elektron kilidlər var fərqli növlər, bu məqalə daha bir maraqlı variant təqdim edir. Bu dizaynla fərq ondan ibarətdir ki, klaviatura mikrokontrolörün yalnız bir pinindən istifadə edir. Hansı düymənin basıldığını müəyyən etmək üçün ADC istifadə olunur. Bu üsul yalnız daxili ADC olan mikro nəzarətçilərlə istifadə edilə bilər, bu dövrədə PIC12F675 istifadə olunur.

Bu necə işləyir

Ardıcıl olaraq 4 düyməni basın və röle kilidləmə dövrəsini təxminən 5 saniyə bağlayacaq. Ancaq əvvəlcə kodu aşağıdakı kimi proqramlaşdırmalısınız: LED işıqlanana qədər CODE düyməsini basıb saxlayın. LED yandıqda kodunuzu daxil edin. Dördüncü rəqəmi daxil etdikdən sonra kod eeprom-a yazılacaq və yalnız bu koddan istifadə etməklə releyi yandırmaq mümkün olacaq. Kodu daxil edərkən 10 dəfə səhv etsəniz, həyəcan siqnalına cavabdeh olan ikinci rele işə düşəcək.


ADC ilə düymələrin tanınması

Diaqramdan göründüyü kimi, klaviatura bir sıra düymələr və rezistorlardan yığılmışdır. Klaviatura yalnız üç tel ilə bağlıdır: +5V, torpaq və nəzarətçinin 7-ci terminalına qoşulmuş siqnal teli. Rezistorlar ardıcıl olaraq bağlanır və hər bir əlaqə nöqtəsi öz gərginliyinə malikdir. Bir düyməni basdığımız zaman mikrokontrolörün 7-ci pininə müəyyən bir gərginlik tətbiq edirik. Pin 7 giriş kimi konfiqurasiya edilib və nəzarətçinin ADC moduluna qoşulub. PIC12F675 10 bitlik ADC-yə malikdir və dəyər diapazonu 0-dan 1023-ə qədərdir. Beləliklə, əgər bizdə 12 düymə varsa, onların arasındakı diapazon 85 vahiddir. “0” düyməsi 0-85, “1” düyməsi 86-170, “2” düyməsi 171-256... və s. aralığındadır.

Müxtəlif həvəskar radio ədəbiyyatında elektron birləşmə kilidləri üçün bir çox variant tapa bilərsiniz.

Mikrokontrollerdə bu kod kilidləmə dövrəsinin bir xüsusiyyəti əsasdır yeni üsul PIC12F675 mikrokontrollerinin yalnız bir portundan istifadə edərək düymə vuruşlarını oxumaq. Bu xüsusiyyət yalnız PIC12F675 mikro nəzarət cihazımız kimi analoqdan rəqəmsal çevirici (ADC) modulu olan mikro nəzarətçilərlə həyata keçirilə bilər.

Bu mikrokontroller 0-dan 1023-ə qədər çevrilmə diapazonu olan 10 bitlik ADC ilə təchiz edilmişdir. Metodun mahiyyəti ondan ibarətdir ki, klaviatura əslində R1-R12 rezistorlarında gərginlik bölücüdür və klaviaturanın müəyyən düyməsinə basıldıqda, mikrokontrolörün 7 girişinə bir gərginlik verilir, dəyəri bu düyməyə xasdır.

PIC12F675-də birləşmə kilidi əməliyyatı

Gizli kodun 4 rəqəmini yazmaq üçün əvvəlcə “KOD” düyməsini sıxıb LED işıqlanana qədər basıb saxlayın. Sonra bir-bir gizli kodun 4 rəqəmini yığmaq lazımdır. Daxiletmə tamamlandıqdan sonra, verilmiş kod mikrokontrolörün qeyri-sabit yaddaşına yazılacaq.

İndi bu kodu klaviaturada yazsanız, rele 5 saniyə ərzində yanacaq. Gizli kod on dəfə səhv daxil edilərsə, həyəcan siqnalı veriləcəkdir.

İcazəsiz şəxslərin dəyərli məlumatlara çıxışını məhdudlaşdırmaq kömək edəcəkdir kod kilidi. Mikrokontrollerdə kod kilidinin tətbiqi variantlarından biri bu məqalədə verilmişdir.

Aşağıdakı şəkildə kod kilidinin diaqramı göstərilir. Dövrənin nüvəsi PIC16F628A mikro nəzarət cihazıdır. Əsas əmrlərin yerinə yetirilməsi alqoritmi Şəkil 2-də göstərilmişdir. Proqram kodu montaj dilində yazılmışdır, CL \ 16F628ATEMP.ASM siyahısına baxın. Cihaz bir düymə ilə idarə olunur. Düyməni basmaq cihazın iş rejimlərində ardıcıl dəyişikliyə nail olur. Düyməni basarkən səsin müşayiəti piezo səs emitenti tərəfindən təmin edilir. Məlumatın vizual göstərilməsi üçün daxili nəzarətçi ilə displey istifadə olunur.

PIC16F628A mikrokontrolörünün dövrədaxili proqramlaşdırılması və sazlanmasının tam dövrü (inteqrasiya edilmiş inkişaf mühiti), MPASM v5.22 kompilyatoru (MPLAB IDE v8.15-ə daxildir) və MPLAB ICD 2 (dövrədaxili sazlayıcı - " Sazlayıcı"). Yuxarıdakı vasitələrə sahib olmayan, lakin HEX faylları və başqa bir proqramçı ilə işləmək üçün öz proqramı olanlar üçün müvafiq layihədə 16F628ATEMP.HEX faylını tapa bilərsiniz. Mikrokontrolörün texniki xüsusiyyətlərini veb saytında və tapa bilərsiniz.

DD1 mikrokontrolleri informasiyanın daxil edilməsi və çıxarılması üçün istifadə olunan RA0, RB0 - RB7, CCP1 funksional çıxışlarına malikdir. DD1 mikrokontrolörün məcburi sıfırlama funksiyası yoxdur, sıfırlama pin rezistor R1 vasitəsilə müsbət güc potensialına qoşulur. Saat tezliyini yaratmaq üçün bir çipli RC osilator istifadə olunur.

Saat düyməsi SB1 cərəyanı məhdudlaşdıran R3 rezistoru vasitəsilə RA0 çıxışına qoşulur. Depressiya vəziyyətində saat düyməsi SB1 rezistor R7 aşağı məntiq səviyyəsini simulyasiya edir. DD1 mikro nəzarət cihazı SB1 saat düyməsinin üç vəziyyətini tanıyır:

  1. basılmayıb;
  2. Qısa müddətə basılır (1 s-dən az);
  3. Basılır və saxlanılır (1 s-dən çox).

Piezo səs emitenti P1 SB1 nəzakət düyməsinin vəziyyətlərini fərqləndirməyə kömək edir. Deməli, 1-ci vəziyyətdə səs yaranmır, 2-ci vəziyyətdə mikrokontroller 3-cü vəziyyəti tanıyana qədər səs yaranır, 3-cü vəziyyətdə isə səs yaranmır.

Məlumatı göstərmək üçün maye kristal displey HG1 istifadə olunur. Ekranın texniki xüsusiyyətlərini veb saytında tapa bilərsiniz. Xarakter yaratmaq funksiyasını həyata keçirən nəzarətçi var. Hər biri on altı simvoldan ibarət iki sətir göstərir. Ekran RB0, RB1, RB4 - RB7 mikrokontroller sancaqları vasitəsilə idarə olunur. Məlumatların yüklənməsi RB4 - RB7 sancaqları vasitəsilə nibbles ilə baş verir. "Mandal" - RB1. Siqnal registrinin seçimi RB0 çıxışında formalaşır. R5 və R6 rezistorları HG1 ekranının kontrastını təyin edir. Ekranın arxa işığı cərəyanı məhdudlaşdıran R4 rezistoru vasitəsilə enerji təchizatı ilə əlaqələndirilir. HG1 displeyi lövhəyə 3 x 15 mm pirinç dayanacaqlar və 3 x 6 mm vintlər ilə vidalanmışdır.

RB2-də məntiqin formalaşması açılış və ya bağlanmağa nail olur sahə effektli tranzistor X1 terminal blokuna qoşulmuş elektrik kilidini açıb-söndürən VT1. Elektrik kilidi üçün nəzərdə tutulmalıdır əməliyyat gərginliyi 9-15 V və 1 A-dan çox olmayan cərəyan istehlak edin. Elektrik kilidinə gərginlik tətbiq edildikdə, o, açılmalıdır, gərginlik olmadıqda bloklanır (bağlanır).

CCP1 çıxışına (PWM-nin aparat tətbiqi, tezlik 4 kHz, iş dövrü 2) cərəyan məhdudlaşdıran rezistor R2 vasitəsilə səs istehsalının işləmə tezliyi 4 kHz olan bir piezo səs emitenti P1 qoşulur.

Cihaz X2 konnektoruna qoşulmuş AC və ya DC gərginlik mənbəyi ilə qidalanır. Enerji təchizatının nominal gərginliyi 9 - 15 V. Enerji təchizatının nominal cərəyanı 1 A. Enerji təchizatını sabitləşdirmək üçün VD1 diod körpüsündən, xətti stabilizatordan DA1, filtr kondansatörləri C1-dən adi bir dövrə istifadə olunur - C4.

Cihaz -20 °С ilə +70 °С arasında olan temperatur diapazonunda işləyə bilər.
Mikrokontroller elə proqramlaşdırılmışdır ki, on bir iş vəziyyətinə malikdir.

  1. Cihaz işə salındıqda, kilid statusu və kodun məlumatları yükləndiyi uçucu olmayan məlumat yaddaşı EEPROM oxunur. Cihaz kilidin oxunma vəziyyəti reyestrinə uyğun olaraq elektrik kilidini açır və ya bağlayır. Cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  2. Bu vəziyyətdə, yuxarı sətirdəki cihaz "Stat. Stat." və alt sətirdə kodlaşdırma statistikası, yəni kodlaşdırmaların sayı və deşifrələrin sayı göstərilir*. Nəzakət düyməsini qısa və ya uzun basdıqdan sonra, kilidin dövlət reyestrini rəhbər tutan cihaz, kilid açıq olduqda kodlaşdırma vəziyyətinə daxil olur, yəni. 3 və kilid bağlandıqda dekodlaşdırma vəziyyətinə daxil olur, yəni. 4.
  3. Cihaz ekranın yuxarı sətirində "yazısını göstərir" Kod kodu” və kodun daxil edildiyi vəziyyətə keçir (“Kod Girişi” alt proqramı), yəni. 5. Kodlaşdırmaların sayının sayğacını artırın. Cihaz, kilidin vəziyyətini dəyişdirdiyi, onu bağladığı bir vəziyyətə keçir, yəni. 9.
  4. Cihaz displeyin yuxarı sətirində “Decode D.code” yazısını göstərir və kodun daxil olduğu vəziyyətə keçir (“Kod Girişi” alt proqramı), yəni. 5. Deşifrələrin sayının sayğacını artırın. Cihaz daxil edilmiş kodu uçucu olmayan EEPROM yaddaşında saxlanılan kodla müqayisə edir. Kod uyğun gəlirsə, o zaman cihaz kilidin vəziyyətini dəyişdirdiyi bir vəziyyətə keçir, onu açır, yəni. 10 və kod uyğun gəlmirsə, o, səhv haqqında məlumatı göstərdiyi vəziyyətə keçir, yəni. on bir.
  5. Dörd rəqəmli kodun birinci rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun ikinci rəqəminin seçildiyi vəziyyətə keçir, yəni. 6.
  6. Dördrəqəmli kodun ikinci rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun üçüncü rəqəminin seçildiyi vəziyyətə keçir, yəni. 7.
  7. Dörd rəqəmli kodun üçüncü rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun dördüncü rəqəminin seçildiyi vəziyyətə keçir, yəni. 8.
  8. Dörd rəqəmli kodun dördüncü rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz "Kod Girişi" alt proqramının tələb olunduğu vəziyyətə keçir, yəni. 3 və ya 4.
  9. Cihaz kilidi bağlayır və kilidin vəziyyətini və kodu saxlayır. Üst sətirdə "Saving Saving" yazısı göstərilir. və alt sətirdə dörd rəqəmli kod. Sonra, cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  10. Cihaz kilidi açır və kilid vəziyyətini və kodunu saxlayır. Üst sətirdə "Saving Saving" yazısı göstərilir. və alt sətirdə dörd rəqəmli kod. Sonra, cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  11. Üst sətirdə "yazısı göstərilir" Xəta” və alt sətirdə dörd rəqəmli kod. (Şəkil 4) Nəzakət düyməsini qısa və ya uzun basdıqdan sonra cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.

*Sayğac daşdıqdan (65535-dən çox) sonra sıfıra enir və hesablama yenidən başlayır, bu da statistikada uğursuzluğa səbəb olur, o mənada kodlaşdırmaların sayı deşifrələrin sayından çox ola bilər. Buna görə də, sayğacları yenidən qurmaq üçün cihazın enerjisizləşdirilməsi tövsiyə olunur.

** 9 rəqəmini artırarkən sıfırlama baş verir.

Əlbəttə ki, mikrokontrolörün dövrə oxunmasından qorunan EEPROM yaddaşına (konfiqurasiyada göstərilmişdir) baxmayaraq, MPLAB ICD-dən istifadə edərək dövrədə parolu oxumaq və tapmaq və buna görə də elektrik kilidini açmaq işləməyəcəkdir. . Onu açmaq üçün daha asan bir yol qalır - birbaşa elektrik kilidinə gərginlik tətbiq edin. Belə qənaətə gəlirəm ki, “kombinasiyalı kilid” cihazı və elektrik kilidi icazəsiz şəxslərin nüfuzundan etibarlı şəkildə qorunmalıdır. IN pulsuz giriş düyməsi və ekranı olmalıdır.

Qeyd etmək lazımdır ki, cihaz enerjisizləşdirilə bilər, hər halda kodu daxil etdikdən sonra kilidin vəziyyəti və kod uçucu olmayan EEPROM yaddaşında saxlanılır. Kod uçucu olmayan EEPROM yaddaşında saxlanarkən cihazın enerjisini kəsmək qadağandır.

Cihazın işində bir vacib detala diqqət yetirməyə dəyər. Cihaz işə salındıqda, elektrik kilidinin qapalı vəziyyətinin uçucu olmayan EEPROM yaddaşında saxlanmasına baxmayaraq, elektrik kilidini qısa müddətə (1 s-dən az müddətə) aça bilər. MPLAB IDE-də proqram kodunun icrasını simulyasiya edərkən mən verilmiş səhv müəyyən edilməmişdir. Kod uçucu olmayan EEPROM yaddaşında saxlanarkən cihazın gözlənilmədən elektrik kəsilməsi halında, kod səhv saxlanıla bilər və onu bərpa etmək mümkün deyil, bu da mikrokontrolörün yenidən proqramlaşdırılmasına səbəb olacaqdır. Bu, cihaza sabit və (və ya) ehtiyat enerji təchizatı ehtiyacı ilə bağlı tövsiyəyə səbəb olur. GB1 - ehtiyat güc.

İstehsal faylları çap dövrə lövhəsi qovluğa baxın.

IN bu cihaz aşağıdakı hissələri əvəz etmək olar. DIP18 paketində 20 MHz işləmə tezliyi ilə PIC16F628A-I / P-xxx seriyasından mikrokontroller DD1. HG1 displeyi WH1602x seriyasının hər hansı birinə uyğun olacaq. Gərginlik stabilizatoru DA1 daxili KR142EN5A (5 V, 1,5 A). Sahə MOSFET tranzistoru I-Pak paketində (TO-251AA) VT1 (N-kanal), diaqramda göstərilən reytinqin analoqu uyğun gəlir. Səs generasiyasının işləmə tezliyi 4 kHz olan Piezo səs emitenti P1. Diod körpüsü VD1 2Wxx seriyasından hər hansı birinə tətbiq oluna bilər. X2 güc birləşdiricisi diaqramda göstərilənə bənzər mərkəzi kontaktlı d=2,1 mm. Nominal dəyəri 0,01 - 0,47 µF x 50 V olan qeyri-qütblü kondansatör C1 və C2. Elektrolitik kondansatörler C3 və C4 eyni tutum dərəcəsinə malikdir və gərginlik diaqramda göstəriləndən aşağı deyil.

Radio elementlərinin siyahısı

Təyinat Növ Denominasiya Kəmiyyət QeydMağazaMənim bloknotum
DD1 MK PIC 8 bitlik

PIC16F628A

1 Notepad üçün
DA1 Xətti tənzimləyici

L7805AB

1 Notepad üçün
VT1 MOSFET tranzistoru

IRLU024N

1 Notepad üçün
VD1 Diod körpüsü

2W10

1 Notepad üçün
VD2 rektifikator diodu

1N5403

1 Notepad üçün
C1, C2 Kondansatör0,1 uF2 Notepad üçün
C3 470uF 25V1 Notepad üçün
C4 elektrolitik kondansatör100uF 10V1 Notepad üçün
R1, R6 Rezistor

10 kOhm

2 Notepad üçün
R2 Rezistor

240 ohm

1 Notepad üçün
R3 Rezistor

470 ohm

1 Notepad üçün
R4 Rezistor

Cihaz otaqları, şkafları və seyfləri icazəsiz açılmadan qorumaq üçün nəzərdə tutulub.

Bütün parametrlər və kodlar mikrokontrolörün qeyri-sabit yaddaşında saxlanılır.

Bu sadə sxem bir çox radio həvəskarının səlahiyyətindədir.

Yaxşı düşünülmüş iş alqoritmi sizə bu sxemi idarə etməkdən zövq verəcəkdir.

Cihaz mikrokontroller əsasında qurulub. PIC16F628A(Şəkil 1-in diaqramında DD1).

Güc tətbiq edildikdən sonra mikrokontroller proqramı portlarını konfiqurasiya edir, həmçinin istinad gərginlik mənbəyini, SHI / müqayisə tutma modulunu, taymerləri, müqayisəçiləri və USART aparatını söndürür - kilidin işləməsi üçün bu modullara ehtiyac yoxdur. Sonra klaviatura sorğusu başlayır. İki hissədən ibarətdir. Birincisi - SB3-SB14 düymələri - qorunan obyektdən kənarda yerləşir. İkincisi - SB1, SB2 düymələri və SA1 açarı - içəridə yerləşir. Klaviaturanın birinci hissəsinin SB3-SB 13 düymələri matrisdə birləşdirilib. SB 14 düyməsi matrisə daxil edilməyib, proqramda hər hansı bir nasazlıq halında, eləcə də aşağıda müzakirə olunacaq bir sıra digər hallarda mikrokontrolleri yenidən işə salmaq üçün nəzərdə tutulub.

SB1 "Açıq" düyməsi qapalı yerdə qapının yanında quraşdırılmışdır. Onu basmaqla kodu yığmadan qapını içəridən aça bilərsiniz. SB2 - proqramı yenidən başlatma düyməsi; SB2 və SB düymələri və paralel olaraq qoşulur. Matris düymələrinə təyinatlar verilir: SB3 - "1", SB4 - "4", SB5 - "7", SB6 - "Açıq". SB7 - "2", SB8 - "5", SB9 - "8", SB10 - "O", SB11 - "3", SB12 - "6". SB13 - "9". SAI keçid açarı kilidin bağlanması rejimini seçir. Kod rəqəm düymələrini növbə ilə qısa müddətli basmaqla daxil edilir. Basmağı təsdiqləmək üçün HA1 piezo emitentinin qısa ton siqnalı səslənəcək. tranzistor VT2 tərəfindən idarə olunur.

Qapını açmadan əvvəl, bitişik basışlar arasında 3 saniyədən çox olmayan fasilələrlə dörd rəqəmli kod daxil edilir. və sonra 3 s ərzində SB6 düyməsini qısaca basmaq lazımdır.2 saniyədən sonra DD1 mikrokontrollerinin RAO çıxışı yüksələcək, VT1 tranzistoru açılacaq və elektromaqnit işləyəcək!, bu kilid boltunu hərəkətə keçirəcək. , yayı sıxaraq və qapı açılacaq.

Bitişik basışlar arasındakı fasilə 3 saniyədən çox olarsa, azalan tezlik ilə siqnal səslənəcəkdir. Bu o deməkdir ki, proqram yenidən işləməyə başlayıb və kod əvvəldən daxil edilməlidir. Diod VD1, tranzistor VT1-ni Y1 elektromaqnit sarğısının özünü induksiyasının gərginliyindən qorumaq üçün nəzərdə tutulmuşdur. Elektromaqnit işə salınmazdan əvvəl, rəqəm düymələrini basarkən olduğu kimi eyni tezlikdə, lakin daha uzun müddətə qapının açılmasını bildirən bir siqnal səslənəcəkdir.

SA1 açarının kontaktları açıq olduqda, elektromaqnit kilidi bağlayacaqdır müəyyən vaxt(standart - 12 s). Bu vaxt mikrokontrolleri proqramlaşdırarkən təyin edilir. Nəzarətçiyə yüklənməsi lazım olan proqramda, EEPROM ilə işləmək sahəsində, 0x06 ünvanlı xanada (ard-arda yeddinci), 0x01-dən OxFF-ə qədər, 1 nisbətində bir nömrə daxil etməlisiniz. vahid = 2,5 s. Minimum mümkün fasilə 2,5 s, maksimum 10 dəqiqədir.

SA1 açarının kontaktları bağlıdırsa, yəni DD1 mikro nəzarətçinin RA4 girişində aşağı səviyyə təyin edilirsə, SB 14 düyməsini və ya SB2 düyməsini basdıqdan sonra kilid bağlanır. Transistor VT1 bağlandıqdan sonra elektromaqnit enerjisizləşəcək və kilid yayı boltu geri itələyəcək - qapı yenidən kilidlənəcək.

Qapını otağın içərisindən açmaq üçün SB1 düyməsini basın və elektromaqnit işə düşənə qədər saxlayın, bu da 2 saniyəlik ton siqnalı ilə göstəriləcək. İstənilən vaxt qapını içəridən aça bilərsiniz. Qapı açılmırsa, siz SB2 düyməsini sıxmalısınız (proqramı yenidən başladın) və yenidən SB 1 düyməsini sıxmalısınız.

Kodu dəyişdirmək lazım olduqda, köhnəsi əvvəlcə qapının açılması əməliyyatı zamanı olduğu kimi daxil edilir, lakin sonra SB6 düyməsi qısa müddətə basılmır, üç ton eşidilənə qədər saxlanılır. Sonra SB6 düyməsini dərhal buraxmalı, yeni dörd rəqəmli kodu daxil etməli və girişi təsdiqləmək üçün dərhal SB6 düyməsini yenidən basmalısınız. Sonra, artan tezlikdə bir siqnal səslənəcək və bu, yeni kodun qəbul edildiyini bildirəcəkdir. O, DD1 mikrokontrollerinin qeyri-sabit yaddaşının ilk dörd xanasında saxlanılır.

Cihaz kilidləmə sistemi ilə təchiz edilmişdir. Siz hər dəfə səhv kod daxil etdikdə, kilid 1000 Hz-də iki və 500 Hz-də bir səs siqnalı verəcək. İşçi registrlərdə səhv kod olduğu bir vaxtda nəzarətçi SB6 düyməsini basmağı və kodun beş rəqəmini daxil etməyi səhv hesab edir. Ardıcıl üç səhvdən sonra DD1 mikro nəzarət cihazı RA2 çıxışını yüksək səviyyəyə təyin edəcəkdir. Bu, həyəcan cihazını işə salacaq tranzistor VT3-ni açacaq. Bu cihaz siren və ya telefon nömrəsi ola bilər.

Eyni zamanda, klaviatura panelində quraşdırılmış HL1 LED yanacaq, bu da klaviatura sorğusunun (SA1 keçid açarı və SB1, SB2, SB14 düymələri istisna olmaqla) qeyri-aktiv olduğunu göstərəcək. Bundan sonra on dəqiqəlik fasilə verilir, bu müddət ərzində siqnalizasiya cihazı işləyir və HL1 LED yanır. Bu müddət ərzində kilid yalnız içəridən açıla bilər. SB 14 və SB2 düymələrini (mikro nəzarətçi proqramını yenidən başlatmaq üçün düymələr) basarsanız, on dəqiqəlik geri sayım yenidən başlayacaq. Fasilədən sonra nəzarətçi kodu daxil etmək üçün yalnız bir fürsət verəcək və səhv olarsa, həyəcan cihazının aktivləşdirilməsi ilə on dəqiqəlik fasilə yenidən təkrarlanacaq. Və beləliklə, düzgün kod daxil edilənə qədər davam edəcək. Hər dəfə düzgün kod daxil edildikdən sonra səhv sayğacı sıfırlanır.

Cihaz mənbəyini gücləndirir birbaşa cərəyan gərginlik 10 ... 15 V. 220 V şəbəkədə elektrik kəsilməsi halında, kilid batareyadan işləməyə davam edir. Belə bir enerji təchizatının ən sadə versiyasının diaqramı Şek. 2.

Transformator T1 şəbəkə gərginliyini 220 V-dan 15 ... 20 V-a endirir. Maksimum cərəyan ikincil sarğı transformator 1,5 A-dan az olmamalıdır. DA1 - tənzimlənən gərginlik tənzimləyicisi. Tikinti rezistorunun R2 müqavimətini dəyişdirərək, DA1 stabilizatorunun çıxışında bir gərginlik təyin olunur, bu zaman doldurulmuş batareya GB1-nin şarj cərəyanı 100 ... 200 μA-dan çox deyil. Eyni zamanda, yüksək cərəyan istehlakı zamanı, elektromaqnit Y1 işləyərkən, cərəyanın əsas hissəsi verir akkumulyator batareyası, DA1 stabilizatorunu həddən artıq yükləməməyə imkan verir. Diode VD5 girişində gərginlik olmadıqda DA1 stabilizatorunu qorumaq üçün nəzərdə tutulmuşdur.

Batareya 300 ... 600mA (gücü - 7 Ah) cərəyanını təmin etməlidir. Stabilizator DA1 sahəsi 30...40 sm2 olan soyuducuya quraşdırılmalıdır.

Klaviatura fərdi düymələrdən hazırlana bilər. Uyğundur, məsələn, DIPTRONICS DTSMW-66N. Ancaq düyməli telefondan və ya kalkulyatordan hazır klaviaturadan da istifadə edə bilərsiniz. Bir qayda olaraq, düymələri uyğun bir matrisdə yığaraq belə bir klaviaturanı cihaza asanlıqla birləşdirə bilərsiniz. Klaviatura panelinə HL1 LED-i də qoymaq lazımdır.

Piezo emitter hər hansı ZP seriyası üçün uyğundur. Elektromaqnit Y1, maqnitofonun lent ötürücü mexanizmindən istifadə olunur, lakin ölçüsünə uyğun və maksimum dolama cərəyanı 1,3 A-dan çox olmayan hər hansı digər uyğun gəlir.Elektromaqnit tərəfindən istehlak edilən cərəyan 1 A-dan çox olarsa, onda tranzistor VT1 30 .. .40 sm2 sahəsi olan istilik qəbuledicisinə quraşdırılmalıdır.

Firmware ilə arxivləşdirin

Kod kilidi icazəsiz şəxslərin qiymətli əşyaları olan otaqlara girişini məhdudlaşdırmağa kömək edəcək. PIC16F628A mikro nəzarət cihazında kod kilidinin tətbiqi variantlarından biri bu məqalədə verilmişdir.

Aşağıdakı şəkildə kod kilidinin diaqramı göstərilir. Dövrənin nüvəsi PIC16F628A mikro nəzarət cihazıdır. Əsas əmrlərin yerinə yetirilməsi alqoritmi Şəkil 2-də göstərilmişdir. Proqram kodu montaj dilində yazılmışdır, layihə ilə arxivin CL \ 16F628ATEMP.ASM qovluğundakı siyahıya baxın. Cihaz bir düymə ilə idarə olunur. Düyməni basmaq cihazın iş rejimlərində ardıcıl dəyişikliyə nail olur. Düyməni basarkən səsin müşayiəti piezo səs emitenti tərəfindən təmin edilir. Məlumatın vizual göstərilməsi üçün daxili nəzarətçi ilə displey istifadə olunur.

MPLAB IDE v8.15 (inteqrasiya edilmiş inkişaf mühiti), MPASM v5.22 kompilyatoru (MPLAB IDE v8.15-ə daxildir) və MPLAB ICD 2 (daxili) istifadə edərək, PIC16F628A mikrokontrolörünün dövrədaxili proqramlaşdırılması və sazlanmasının tam dövrü həyata keçirilib. dövrə sazlayıcı). Yuxarıdakı vasitələrə sahib olmayan, lakin HEX faylları və başqa bir proqramçı ilə işləmək üçün öz proqramı olanlar üçün müvafiq layihədə 16F628ATEMP.HEX faylını tapa bilərsiniz.

DD1 mikrokontrolleri informasiyanın daxil edilməsi və çıxarılması üçün istifadə olunan RA0, RB0 - RB7, CCP1 funksional çıxışlarına malikdir. DD1 mikrokontrolörün məcburi sıfırlama funksiyası yoxdur, sıfırlama pin rezistor R1 vasitəsilə müsbət güc potensialına qoşulur. Saat tezliyini yaratmaq üçün bir çipli RC osilator istifadə olunur.

Saat düyməsi SB1 cərəyanı məhdudlaşdıran R3 rezistoru vasitəsilə RA0 çıxışına qoşulur. SB1 saat düyməsinin sıxılmış vəziyyətdə rezistor R7 aşağı məntiq səviyyəsini simulyasiya edir. DD1 mikro nəzarət cihazı SB1 saat düyməsinin üç vəziyyətini tanıyır:

  1. basılmayıb;
  2. Qısa müddətə basılır (1 s-dən az);
  3. Basılır və saxlanılır (1 s-dən çox).

Piezo səs emitenti P1 SB1 nəzakət düyməsinin vəziyyətlərini fərqləndirməyə kömək edir. Deməli, 1-ci vəziyyətdə səs yaranmır, 2-ci vəziyyətdə mikrokontroller 3-cü vəziyyəti tanıyana qədər səs yaranır, 3-cü vəziyyətdə isə səs yaranmır.

Məlumatı göstərmək üçün maye kristal displey HG1 istifadə olunur. Ekranın texniki xüsusiyyətlərini veb saytında tapa bilərsiniz. Xarakter yaratmaq funksiyasını həyata keçirən nəzarətçi var. Hər biri on altı simvoldan ibarət iki sətir göstərir. Ekran RB0, RB1, RB4 - RB7 mikrokontroller sancaqları vasitəsilə idarə olunur. Məlumatların yüklənməsi RB4 - RB7 sancaqları vasitəsilə nibbles ilə baş verir. "Mandal" - RB1. Siqnal registrinin seçimi RB0 çıxışında formalaşır. R5 və R6 rezistorları HG1 ekranının kontrastını təyin edir. Ekranın arxa işığı cərəyanı məhdudlaşdıran R4 rezistoru vasitəsilə enerji təchizatı ilə əlaqələndirilir. HG1 displeyi lövhəyə 3 x 15 mm pirinç dayanacaqlar və 3 x 6 mm vintlər ilə vidalanmışdır.

RB2-də məntiq formalaşdırmaqla, onlar X1 terminal blokuna qoşulmuş elektrik kilidini açıb-söndürən sahə effektli tranzistor VT1-in açılmasına və ya bağlanmasına nail olurlar. Elektrik kilidi 9-15 V işləmə gərginliyi üçün nəzərdə tutulmalı və 1 A-dan çox olmayan bir cərəyan istehlak etməlidir. Elektrik kilidinə gərginlik tətbiq edildikdə, o, açılmalıdır, gərginlik olmadıqda bloklanır (bağlanır).

CCP1 çıxışına (PWM-nin aparat tətbiqi, tezlik 4 kHz, iş dövrü 2) cərəyan məhdudlaşdıran rezistor R2 vasitəsilə səs istehsalının işləmə tezliyi 4 kHz olan bir piezo səs emitenti P1 qoşulur.

Cihaz X2 konnektoruna qoşulmuş AC və ya DC gərginlik mənbəyi ilə qidalanır. Enerji təchizatının nominal gərginliyi 9 - 15 V. Enerji təchizatının nominal cərəyanı 1 A. Enerji təchizatını sabitləşdirmək üçün VD1 diod körpüsündən, xətti stabilizatordan DA1, filtr kondansatörləri C1-dən adi bir dövrə istifadə olunur - C4.

Cihaz -20 °С ilə +70 °С arasında olan temperatur diapazonunda işləyə bilər.
Mikrokontroller elə proqramlaşdırılmışdır ki, on bir iş vəziyyətinə malikdir.

  1. Cihaz işə salındıqda, kilid statusu və kodun məlumatları yükləndiyi uçucu olmayan məlumat yaddaşı EEPROM oxunur. Cihaz kilidin oxunma vəziyyəti reyestrinə uyğun olaraq elektrik kilidini açır və ya bağlayır. Cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  2. Bu vəziyyətdə, yuxarı sətirdəki cihaz "Stat. Stat." və alt sətirdə kodlaşdırma statistikası, yəni kodlaşdırmaların sayı və deşifrələrin sayı göstərilir*. Nəzakət düyməsini qısa və ya uzun basdıqdan sonra, kilidin dövlət reyestrini rəhbər tutan cihaz, kilid açıq olduqda kodlaşdırma vəziyyətinə daxil olur, yəni. 3 və kilid bağlandıqda dekodlaşdırma vəziyyətinə daxil olur, yəni. 4.
  3. Cihaz ekranın yuxarı sətirində "Kod Kodu" yazısını göstərir və kodun daxil edildiyi vəziyyətə keçir ("Kod Girişi" alt proqramı), yəni. 5. Kodlaşdırmaların sayının sayğacını artırın. Cihaz, kilidin vəziyyətini dəyişdirdiyi, onu bağladığı bir vəziyyətə keçir, yəni. 9.
  4. Cihaz displeyin yuxarı sətirində “Decode D.code” yazısını göstərir və kodun daxil olduğu vəziyyətə keçir (“Kod Girişi” alt proqramı), yəni. 5. Deşifrələrin sayının sayğacını artırın. Cihaz daxil edilmiş kodu uçucu olmayan EEPROM yaddaşında saxlanılan kodla müqayisə edir. Kod uyğun gəlirsə, o zaman cihaz kilidin vəziyyətini dəyişdirdiyi bir vəziyyətə keçir, onu açır, yəni. 10 və kod uyğun gəlmirsə, o, səhv haqqında məlumatı göstərdiyi vəziyyətə keçir, yəni. on bir.
  5. Dörd rəqəmli kodun birinci rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun ikinci rəqəminin seçildiyi vəziyyətə keçir, yəni. 6.
  6. Dördrəqəmli kodun ikinci rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun üçüncü rəqəminin seçildiyi vəziyyətə keçir, yəni. 7.
  7. Dörd rəqəmli kodun üçüncü rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz kodun dördüncü rəqəminin seçildiyi vəziyyətə keçir, yəni. 8.
  8. Dörd rəqəmli kodun dördüncü rəqəmi ekranın aşağı sətirində kvadrat mötərizədə vurğulanır. Saat düyməsini qısaca basmaqla daxil edilmiş rəqəmin reyestri artırılır**. Nəzakət düyməsi 1 saniyədən çox basılırsa və saxlanılırsa, cihaz "Kod Girişi" alt proqramının tələb olunduğu vəziyyətə keçir, yəni. 3 və ya 4.
  9. Cihaz kilidi bağlayır və kilidin vəziyyətini və kodu saxlayır. Üst sətirdə "Saving Saving" yazısı göstərilir. və alt sətirdə dörd rəqəmli kod. Sonra, cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  10. Cihaz kilidi açır və kilid vəziyyətini və kodunu saxlayır. Üst sətirdə "Saving Saving" yazısı göstərilir. və alt sətirdə dörd rəqəmli kod. Sonra, cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.
  11. Üst sətirdə "Səhv xətası" yazısı və aşağı sətirdə dörd rəqəmli kod göstərilir. (Şəkil 4) Nəzakət düyməsini qısa və ya uzun basdıqdan sonra cihaz kodlaşdırma statistikasını göstərdiyi vəziyyətə keçir, yəni. 2.

*Sayğac daşdıqdan (65535-dən çox) sonra sıfıra enir və hesablama yenidən başlayır, bu da statistikada uğursuzluğa səbəb olur, o mənada kodlaşdırmaların sayı deşifrələrin sayından çox ola bilər. Buna görə də, sayğacları yenidən qurmaq üçün cihazın enerjisizləşdirilməsi tövsiyə olunur.

** 9 rəqəmini artırarkən sıfırlama baş verir.

EEPROM yaddaşı (konfiqurasiyada quraşdırılmışdır) mikrokontrolörün dövrə oxunmasından qorunduğundan, dövrədə parolu oxumaq və tapmaq mümkün olmayacaq və buna görə də elektrik kilidini yandırmaq mümkün olmayacaq. Onu açmaq üçün daha asan bir yol qalır - birbaşa elektrik kilidinə gərginlik tətbiq edin. Belə qənaətə gəlirəm ki, “kombinasiyalı kilid” cihazı və elektrik kilidi icazəsiz şəxslərin nüfuzundan etibarlı şəkildə qorunmalıdır. Düymə və displey sərbəst şəkildə əlçatan olmalıdır.

Qeyd etmək lazımdır ki, cihaz enerjisizləşdirilə bilər, hər halda kodu daxil etdikdən sonra kilidin vəziyyəti və kod uçucu olmayan EEPROM yaddaşında saxlanılır. Kodu uçucu olmayan EEPROM yaddaşında saxlayarkən cihazın enerjisini kəsmək qadağandır.

Cihazın işində bir vacib detala diqqət yetirməyə dəyər. Cihaz işə salındıqda, elektrik kilidinin qapalı vəziyyətinin uçucu olmayan EEPROM yaddaşında saxlanmasına baxmayaraq, elektrik kilidini qısa müddətə (1 s-dən az müddətə) aça bilər. MPLAB IDE mühitində proqram kodunun icrasını simulyasiya edərkən bu səhv mənim tərəfimdən aşkar edilmədi. Kodu EEPROM yaddaşında saxlayarkən cihazın gözlənilməz elektrik kəsilməsi halında, kod səhv saxlanıla bilər və onu bərpa etmək mümkün olmayacaq, bu da mikrokontrolörün yenidən proqramlaşdırılmasına səbəb olacaqdır. Bu, cihaza sabit və (və ya) ehtiyat enerji təchizatı ehtiyacı ilə bağlı tövsiyəyə səbəb olur. GB1 - ehtiyat güc.

Qovluqdakı çap dövrə lövhələrinin istehsalı üçün fayllara baxın.

Bu qurğuda aşağıdakı hissələri əvəz etmək olar. DIP18 paketində 20 MHz işləmə tezliyi ilə PIC16F628A-I / P-xxx seriyasından mikrokontroller DD1. HG1 displeyi WH1602x seriyasının hər hansı birinə uyğun olacaq. Gərginlik stabilizatoru DA1 daxili KR142EN5A (5 V, 1,5 A). I-Pak paketindəki (TO-251AA) MOSFET tranzistoru VT1 (N-kanal) sahəsi, diaqramda göstərilən reytinqin analoqu uyğun gəlir. Səs generasiyasının işləmə tezliyi 4 kHz olan Piezo səs emitenti P1. Diod körpüsü VD1 2Wxx seriyasından hər hansı birinə tətbiq oluna bilər. X2 güc birləşdiricisi diaqramda göstərilənə bənzər mərkəzi kontaktlı d=2,1 mm. Nominal dəyəri 0,01 - 0,47 µF x 50 V olan qeyri-qütblü kondansatör C1 və C2. Elektrolitik kondansatörler C3 və C4 eyni tutum dərəcəsinə malikdir və gərginlik diaqramda göstəriləndən aşağı deyil.

Arxivi kod kilidi layihəsi ilə yükləyin: 16F628Code_Lock.rar