تماس با ما

فید خبر خوان

نقشه سایت

بزرگترین سایت مقالات الکترونیک و مطالب مرتبط با الکترونیک


دسته بندی سایت

پیوند ها

آمار بازدید سایت

آمار بازدید

  • بازدید امروز : 151
  • بازدید دیروز : 253
  • بازدید کل : 1309076

قفل رمز دیجیتال ساده (ورژن یک)


در اینجا برنامه یک قفل رمز دیجیتال ساده (ورژن یک ) را برای شما نوشتم که میتوان از آن بعنوان یک درب بازکن دیجیتالی رمزی استفاده کرده و نیز از این روش برنامه نویسی برای نوشتن سایر برنامه های کاربردی و پیشرفته تر بهره برد.

 

روش کار بدین صورت میباشد که در ابتدا برای رمز گذاری باید دکمه Button را فشرده نگه داشته و سپس برق دستگاه وصل شود. در این حالت چراغ تغییر رمز Change Password روشن خواهد شد.

رمز را از یک تا 10 رقم به دلخواه وارد نموده و دکمه "*" رافشار دهید. چند بوق متناوب زده و نیز چراغ تغییر رمز هم چند بار چشمک خواهد زد و مجدداً روشن میماند.

در اینجا باید رمز را مجدد وارد نموده و سپس دکمه "*" را بفشارید. در صورت برابری رمزها ، در حافظه ذخیره خواهد شد. در غیر اینصورت بوق خطا داده و آماده تغییر مجدد رمز میشود.

در حین ورود رمز چنانچه رقمی را اشتباه وارد کنید میتوان توسط دکمه "#" آن را پاک و دوباره از اول وارد کنید و چنانچه رقمی را وارد ننموده باشید توسط دکمه مربع میتوان به حالت عادی برگشت.

برای باز کردن درب کافیست رمز صحیح را وارد نموده و دکمه مربع را بزنید. در پست های بعدی قفل رمز پیشرفته تر برای سایر وسایل منزل خواهم گذاشت. با سایت من همراه باشید

شماتیک:

برنامه :

 

************************************
NAME : Digital Lock
Ver : 1.0
DESIGNER : Esmaeil Mohammad Zadeh
DATE : 1391/7/5
TEL : 09139545140
MAIL : Esmaeil_AVR@yahoo.com
Weblog : www.esmaeil-avr.Mihanblog.com
************************************
$regfile = "m8def.dat" : $crystal = 8000000 : Enable Interrupts

Config Kbd = Portd , Debounce = 50 , Delay = 50

VAR
Dim A(10) As Byte , A2(10) As Byte
Dim B As Byte , Num_of_password As Byte
Dim Result As Byte , K As Byte
Dim Num As Byte , I As Byte
Dim Enum_of_password As Eram Byte
Dim Enum(10) As Eram Byte

Declare Sub Check

I/O
Config Pinb.0 = Input : Button Alias Pinb.0
Config Pinc.2 = Output : Beep Alias Portc.2
Config Portc.3 = Output : Relay Alias Portc.3
Config Portc.4 = Output : Change_led Alias Portc.4

If Button = 1 Then Jmp Chang


********************** START
Begin:
Num_of_password = Enum_of_password

Change_led = 0 : Relay = 0

B = 0 : I = 0 : Result = 0
*******************************************************************************
Main:
Do
K = Getkbd()
Loop Until K < 12
Beep = 1
Waitms 100
Beep = 0
Num = Lookup(k , Dta)

Select Case Num
Case 0 To 9:
If B < 10 Then
Incr B
A(b) = Num
End If
Case 10: * Button
If B <> 0 Then
For I = 1 To Num_of_password
If A(i) = Enum(i) Then Incr Result
Next I
If Result = Num_of_password Then OK Password
Relay = 1 : Wait 1
Relay = 0
Else Error Password
Relay = 0 : Beep = 1
Wait 2
Beep = 0
End If
jmp Begin
End If
Case 11 : Jmp Begin # Button
End Select

Do
K = Getkbd()
Loop Until K > 11
jmp Main
***************************************** CHANGE PASSWORD
Chang:
B = 0 : Change_led = 1
Chang2:
Do
K = Getkbd()
Loop Until K < 12
Beep = 1
Waitms 100
Beep = 0
Num = Lookup(k , Dta)

Select Case Num
Case 0 To 9:
If B < 10 Then
Incr B
A(b) = Num
End If
Case 10: * BUTTON
If B <> 0 Then
Goto Confirm
Else
Goto Chang2
End If
Case 11 : # BUTTON
If B <> 0 Then
B = 0
Else
Goto Begin
End If
End Select

Do
K = Getkbd()
Loop Until K > 11
JMP Chang2
---------------------------------------- CONFIRM ------------------------------
Confirm:
Num_of_password = B
For B = 1 To 10
Toggle Change_led : Toggle Beep
Waitms 100
Next B
Change_led = 1 : Beep = 0
B = 0
Do
K = Getkbd()
Loop Until K > 11
Confirm2:
Do
K = Getkbd()
Loop Until K < 12
Beep = 1
Waitms 100
Beep = 0
Num = Lookup(k , Dta)

Select Case Num
Case 0 To 9:
If B < 10 Then
Incr B
A2(b) = Num
End If
Case 10: * button
If B <> 0 Then
Call Check
If Result = Num_of_password Then verify tel number
For B = 1 To Num_of_password
Enum(b) = A(b)
Waitms 10
Next B
Enum_of_password = Num_of_password
For B = 1 To 6
Toggle Beep
Waitms 50
Next B
Beep = 0
Goto Begin
Else
Beep = 1 : Wait 1
Beep = 0 : Jmp Chang
End If
End If
Case 11: # BUTTON
If B <> 0 Then
B = 0
Else
Goto Begin
End If
End Select

Do
K = Getkbd()
Loop Until K > 11
jmp confirm2
-------------------------------------------------------------------------------
Sub Check
Result = 0
For B = 1 To Num_of_password
If A(b) = A2(b) Then Incr Result
Next B
End Sub
-------------------------------------------------------------------------------

Dta:
Data 1 , 4 , 7 , 10 , 2 , 5 , 8 , 0 , 3 , 6 , 9 , 11

  انتشار : ۷ آبان ۱۳۹۴               تعداد بازدید : 509
کتاب داستانی افسانه های مشرق زمین

کتاب داستانی افسانه های مشرق زمین

کتاب بسیار زیبای افسانه های مشرق زمین در 108 صفحه با فرمت pdf   این کتا ب قدیمی از کتابخانه شخصی اینجانب انتخاب و آماده استفاده کاربران عزیز شده است : منصوررخشانی ... ...

اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.

ایجاد وب سایت یا
فروشگاه حرفه ای رایگان

پرفروش ترین ها

    پر فروش ترین های فورکیا


    پر بازدید ترین های فورکیا


    مطالب تصادفی

    • کاربرد و عملکرد فیبر نوری
    • چطور برخورد دهنده بزرگ هادرون (LHC) کار می کند؟
    • الگوریتم ضرب کننده Booth و پیاده سازی آن با زبان VHDL
    • مشخصه های فنی دوربین Panasonic Lumix DMC G۱
    • صفحه نمایش LCD

    تمام حقوق مادی و معنوی این وب سایت متعلق به "" می باشد