پروژه قفل دیجیتالی با آی سی 8051
شاید در فیلمهای مختلف دیده باشید که یک نفر برای بازکردن درب گاوصندوق و یا اتاق کار فوق امنیتی خود، بدون داشتن کلید و تنها با استفاده از یک کلمه عبور اقدام میکند. خوب این پروژه همان قفل دیجیتالی است . پروژه کامل و آماده ساخت قفل دیجیتالی درب با میکروکنترلر 8051 به همراه نقشه مدارها و فایل برنامه نویسی پروژه را در این پست از بخش پروژه های میکروکنترلری سایت صنایع آموزشی روبوفا به چشمان پرمهر شما تقدیم میکنیم و امیدواریم از ساخت این پروژه نهایت لذت را برده و طعم واقعی لذت الکترونیک را بچشید. مغز متفکر این پروژه آی سی 8051 است و یک کی پد یا صفحه کلید در کنار آن قرار گرفته تا شما بتوانید رمز قفل را وارد کنید. همچنین از یک ال سی دی کاراکتری در این پروژه استفاده شده است تا پیامها و مقادیر ورودی و خروجی را مشاهده نمایید. بازوی این قفل یک رله 12 ولت است که به کمک آن میتوانید هر محرکی که برای بازشدن درب نیاز به تحریک دارد را فعال کنید. برای مثال میتوانید آن را به درب بازکن یا جک هیدولیکی متصل نمایید.
لازم به ذکر است از این پروژه میتوانید به عنوان قفل دیجیتالی وسایلی نظیر تلویزیون، کامپیوتر و ... هم استفاده کنید و یا با ترکیب آن با مدارات دیگر یک سیستم امنیتی کامل بسازید. نقشه شماتیک مدار را در شکل زیر مشاهده مینمایید:
در این پروژه قفل ما دارای یک رمز عبور 5 رقمی است که کاربر باید به ترتیب این عدد 5 رقمی را وارد کند تا قفل دیجیتالی باز شود. رمز فوق الذکر از پیش تعیین شده و در برنامه قفل قرار گرفته است. اگر رمز درست وارد شود رله برای مدتی فعال و دوباره غیر فعال میشود و اگر رمز اشتباه باشد رله عمل نکرده و قفل بسته میماند. لازم به ذکر است که در بخش پروژه های میکروکنترلری روبوفا تعداد زیادی پروژه با آی سی 8051 قرار داده ایم که شما را به دیدن این مطالب نیز دعوت میکنیم.در جدول زیر قطعات مصرفی را مشاهده مینمایید:
8051 – AT89S51 – 1 | 16×2 LCD Module – 1 |
---|---|
4X4 Keypad – 1 | 10K Resistor Network – 1 |
12V Relay – 1 | |
Transistor – BC548 – 1 | Diode – 1N4007 – 1 |
Push Button Switch – 1 | Crystal – 11.059Mhz – 1 |
Capacitors | |
33pF -2 | 0.1uF -1 |
10uF -1 | 1 |
Resistors | |
10K Ohm – 1 | 100 Ohm -1 |
8.2K Ohm – 1 | 330 Ohm -1 |
4.7K Ohm – 1 |
همچنین باید بدانید که در این پروژه از یک کیپد 4*4 استفاده کرده ایم که به Port 3 آی سی 8051 متصل گردیده است. در کنار این کیپد ال سی دی 16*2 کاراکتری برای نمایش خطاها و پیامهای پروژه قفل دیجیتالی قرارداده شده است که در مد 8 بیتی استفاده شده است (آموزش نحوه اتصال ال سی دی به میکروکنترلر را در بخش آموزشگاه آنلاین سایت روبوفا میتوانید مشاهده کنید.
کلیدی که در مدار تعبیه شده جهت ریست کردن میکروکنترلر استفاده گردیده است. همچنین از یک رله 12V SPDT برای پروژه قفل درب دیجیتال استفاده می شود و به P2.0 وصل شده است که از یک ترانزیستور (BC548) به عنوان درایور رله استفاده گردیده که استفاده از این ترانزیستور تقریبا ضروری است.
ما در این پروژه رمز پیشفرض را 12345 قرار داده ایم که تکه برنامه آن به شکل زیر است:
PASSW: DB 49D,50D,51D,52D,53D,0 // Decimal equivalent of 1,2,3,4,5 is stored in address label PASSW
برنامه نویسی پروژه قفل رمزدار دیجیتال به شرح ذیل میباشد:
RS EQU P2.7 RW EQU P2.6 E EQU P2.5 SEL EQU 41H ORG 000H CLR P2.0 MOV TMOD,#00100001B MOV TH1,#253D MOV SCON,#50H SETB TR1 ACALL LCD_INIT MOV DPTR,#TEXT1 ACALL LCD_OUT ACALL LINE2 MOV DPTR,#TEXT2 ACALL LCD_OUT MAIN:ACALL LCD_INIT MOV DPTR,#TEXT1 ACALL LCD_OUT ACALL LINE2 MOV DPTR,#TEXT2 CLR P2.0 ACALL LCD_OUT ACALL DELAY1 ACALL DELAY1 ACALL READ_KEYPRESS ACALL LINE1 MOV DPTR,#CHKMSG ACALL LCD_OUT ACALL DELAY1 ACALL CHECK_PASSWORD SJMP MAIN LCD_INIT: MOV DPTR,#INIT_COMMANDS SETB SEL ACALL LCD_OUT CLR SEL RET LCD_OUT: CLR A MOVC A,@A+DPTR JZ EXIT INC DPTR JB SEL,CMD ACALL DATA_WRITE SJMP LCD_OUT CMD: ACALL CMD_WRITE SJMP LCD_OUT EXIT: RET LINE2:MOV A,#0C0H ACALL CMD_WRITE RET LINE1: MOV A,#80H ACALL CMD_WRITE RET CLRSCR: MOV A,#01H ACALL CMD_WRITE RET CMD_WRITE: MOV P0,A CLR RS CLR RW SETB E CLR E ACALL DELAY RET DATA_WRITE:MOV P0,A SETB RS CLR RW SETB E CLR E ACALL DELAY RET DELAY: CLR E CLR RS SETB RW MOV P0,#0FFh SETB E MOV A,P0 JB ACC.7,DELAY CLR E CLR RW RET DELAY1:MOV R3,#46D BACK: MOV TH0,#00000000B MOV TL0,#00000000B SETB TR0 HERE1: JNB TF0,HERE1 CLR TR0 CLR TF0 DJNZ R3,BACK RET DELAY2: MOV R3,#250D BACK2: MOV TH0,#0FCH MOV TL0,#018H SETB TR0 HERE2: JNB TF0,HERE2 CLR TR0 CLR TF0 DJNZ R3,BACK2 RET READ_KEYPRESS: ACALL CLRSCR ACALL LINE1 MOV DPTR,#IPMSG ACALL LCD_OUT ACALL LINE2 MOV R0,#5D MOV R1,#160D ROTATE:ACALL KEY_SCAN MOV @R1,A ACALL DATA_WRITE ACALL DELAY2 INC R1 DJNZ R0,ROTATE RET CHECK_PASSWORD:MOV R0,#5D MOV R1,#160D MOV DPTR,#PASSW RPT:CLR A MOVC A,@A+DPTR XRL A,@R1 JNZ FAIL INC R1 INC DPTR DJNZ R0,RPT ACALL CLRSCR ACALL LINE1 MOV DPTR,#TEXT_S1 ACALL LCD_OUT ACALL LINE2 ACALL DELAY1 SETB P2.0 MOV DPTR,#TEXT_S2 ACALL LCD_OUT ACALL DELAY1 SJMP GOBACK FAIL:ACALL CLRSCR ACALL LINE1 MOV DPTR,#TEXT_F1 ACALL LCD_OUT ACALL DELAY1 ACALL LINE2 MOV DPTR,#TEXT_F2 ACALL LCD_OUT ACALL DELAY1 GOBACK:RET KEY_SCAN:MOV P3,#11111111B CLR P3.0 JB P3.4, NEXT1 MOV A,#49D RET NEXT1:JB P3.5,NEXT2 MOV A,#50D RET NEXT2: JB P3.6,NEXT3 MOV A,#51D RET NEXT3: JB P3.7,NEXT4 MOV A,#65D RET NEXT4:SETB P3.0 CLR P3.1 JB P3.4, NEXT5 MOV A,#52D RET NEXT5:JB P3.5,NEXT6 MOV A,#53D RET NEXT6: JB P3.6,NEXT7 MOV A,#54D RET NEXT7: JB P3.7,NEXT8 MOV A,#66D RET NEXT8:SETB P3.1 CLR P3.2 JB P3.4, NEXT9 MOV A,#55D RET NEXT9:JB P3.5,NEXT10 MOV A,#56D RET NEXT10: JB P3.6,NEXT11 MOV A,#57D RET NEXT11: JB P3.7,NEXT12 MOV A,#67D RET NEXT12:SETB P3.2 CLR P3.3 JB P3.4, NEXT13 MOV A,#42D RET NEXT13:JB P3.5,NEXT14 MOV A,#48D RET NEXT14: JB P3.6,NEXT15 MOV A,#35D RET NEXT15: JB P3.7,NEXT16 MOV A,#68D RET NEXT16:LJMP KEY_SCAN INIT_COMMANDS: DB 0CH,01H,06H,80H,3CH,0 TEXT1: DB "PASSWORD BASED",0 TEXT2: DB "SECURITY SYSTEM",0 IPMSG: DB "INPUT 5 DIGITS",0 CHKMSG: DB "CHECKING PASSWORD",0 TEXT_S1: DB "ACCESS - GRANTED",0 TEXT_S2: DB "DOOR OPENED",0 TEXT_F1: DB "WRONG PASSWORD",0 TEXT_F2: DB "ACCESS DENIED",0 PASSW: DB 49D,50D,51D,52D,53D,0 END
نظر شما چیست؟