پروژه قفل رمزی الکترونیکی
این یک پروژه تهیه قفل رمز دیجیتالی الکترونیکی است. هدف در این پروژه مفید بودن مدار ساخته شده و کارکرد صحیح آن میباشد. ضمن اینکه در طی طراحی این مدار آشنایی عملی و بسیار خوب با میکرو avr وبعضی قطعات پرکاربرد الکترونیکی دیگر نظیر صفحه کلید و LCD و پروتکل های آن ها و چگونگی اتصال ان ها با میکرو صورت گرفت .
همچنین برنامه نویسی عملی برای میکرو به این صورت, چگونگی عملکرد برنامه نوشته شده و صحت آن در مدار بسته شده خود حاوی تجارب بسیار مفیدی بود.و این راه را برای طراحی مدارات پیشرفته تر وپیچیده تر با میکرو آسان مینماید.
این نکته قابل ذکر است که این اولین مدار میکرو کنترلی ساخته شده به صورت عملی برای من بود و تجربه چنین کاری بسیار با طراحی آن در نرم افزارهای شبیه ساز متفاوت است.(خطاهای برنامه و چگونگی اتصالات بین اجزای مختلف مدار و پروتکل های هر جز با شبیه سازی توسط نرم افزار متفاوت میباشد .)
اجزای اساسی این مدار:
1)میکرو ATMEGA32
2)LCD کاراکتری 16*2
3) صفحه کلید 3*4 ماتریسی
4) LED
5) برد بورد.
6)سیم های رابط.
7) مقاومت های1و0.680 کیلواهم
نرم افزار:
نرم افزار استفاده شده در این پروژه (bascom avr ) میباشد که زبان برنامه نویسی آن بیسیک است. تعداد خطوط برنامه ای که من برای این پروژه نوشتم 296 خط میباشد . این تعداد زیاد خط برنامه نویسی برای رفع تقریبا کامل باگ ها و خطاهای احتمالی و غیر احتمالی در مدار عملی و حین کار مدار و ارایه یک مدار بی نقص میباشد.در برنامه این نرم افزار از مجموعه ای از دستورات نرم افزای مثل دستورات شرطی و...و روشها و تکنیک های برنامه نویسی همچون روش نظاره به جدول(برای عملکرد صفحه کلید)و تعداد زیادی subroutine (زیر برنامه) و ایجاد تاخیر های مناسب برای عملکرد مدار را نام برد.
نرم افزا دیگری که در طراحی این مدار برای تست طرز عملکرد مدار به کار گرفته شد (proteus) میباشد . ولی همان طور که گفته شد شبیه سازی با این نرم افزار تا پیاده سازی عملی و به نتیجه رسیدن در مدار عملی بسیار سخت تر از شبیه سازی با نرم افزار است.من از اینجا به این مهم رسیده ام که بدون اغراق بگویم برای پیاده سازی عملی این مدار 24 ساعت پشت سر هم بیدار بودم (که علت آن میتواند دلایلی همچون: اولین تجربه و خطا های گوناگون مدار عملی بسته شده در مقایسه با شبیه سازباشد معیوب بودن قطعات مورد کاربرد باشد).
• از دیگر قابلیت های این مدار توانایی افزودن دیگر مدارات جانبی همانند سیستم کارت خوان و... میباشد.
• این مدار قابلیت کاربرد در اماکن امنیتی و مهم و نیز در هر مکان و هر وسیله دیگری که فاکتور امنیت در آن مهم باشد را دارا میباشد . ضمن اینکه سبب آسانی و راحتی کاربران در هر محل کاربرد میباشد.
رمز اولیه دستگاه هنگام روشن شدن آن 1234 میباشد و رمز اصلی آن (master password) عدد 1357 است.ضمن اینکه با فشردن کلید * میتوان رمز(password) را تغییر داد و با فشردن کلید # میتوان رمز اصلی (master password ) را تعویض نمود. تعداد ارقام مورد استفاده در دستگاه 4 رقم است که با تغییر در برنامه آن میتوان تعداد ارقام رمز (password) را 254 رقم افزایش داد
امنیت:
احتمال درست وارد کردن رمز توسط افراد غیر مرتبط ؛ با این تعداد ارقام(4 رقم) در فرصت اول 10000/1 میباشدو تا سه مرحله فرصتی که دستگاه برای وارد کردن رمز درست به افراد میدهد این عدد به 10000/3 میرسد که این عدد معادل 0003/. است که این نشان دهنده امنیت مناسب این دستگاه در برابر نفوذ اتفاقی میباشد.
توان مصرفی:
توان مصرفی در حالت عادی : 475 mW در ولتاژ 5 ولت.
Maximum توان مصرفی : 771 mW در ولتاژ5 ولت.
برنامه نوشته شده
$regfile = "M32DEF.DAT"
$crystal = 8000000
Config Kbd = Porta
Config Portb = Output
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim G As Byte
Dim H As Byte
Dim I As Byte
Dim J As Word
Dim L As Word
Dim M As Word
Dim N As Word
Dim P As Word
Dim Q As Word
Dim R As Word
Dim S As Word
Dim K As Byte
Dim O As Byte
Dim A As Word
Dim T As Byte
Dim X As Word
Dim Y As Word
Set Portb.2
Cursor Blink
Cls
Lcd "project name :"
Locate 2 , 1
Lcd "*digital luck*"
Waitms 1000
Cls
Lcd "doen by:"
Locate 2 , 1
Lcd " mainmicroi"
Waitms 1000
Cls
Lcd "ostad rahnema:"
Locate 2 , 1
Lcd "*mohandes*"
Waitms 1000
L = 1234
G = 3
T = 0
O = 0
K = 2
A = 1357
Maine:
Cls
Lcd "inter password"
Y = L
Mmain:
Do
Waitms 50
B = Getkbd()
If B < 12 Then
Goto Main
End If
Loop
Main:
Do
If B = 0 Then
Reset B
C = 1
Goto Main2
End If
If B = 4 Then
Reset B
C = 2
Goto Main2
End If
If B = 8 Then
Reset B
C = 3
Goto Main2
End If
If B = 1 Then
Reset B
C = 4
Goto Main2
End If
If B = 5 Then
Reset B
C = 5
Goto Main2
End If
If B = 9 Then
Reset B
C = 6
Goto Main2
End If
If B = 2 Then
Reset B
C = 7
Goto Main2
End If
If B = 6 Then
Reset B
C = 8
Goto Main2
End If
If B = 10 Then
Reset B
C = 9
Goto Main2
End If
If B = 11 Then
Reset B
C = 12
T = 3
Goto Main2
End If
If B = 7 Then
Reset B
C = 0
Goto Main2
End If
If B = 3 Then
Reset B
C = 11
O = 3
Goto Main2
End If
Loop
Main2:
If C = 11 Then
Goto Main7
End If
If C = 12 Then
Goto Main13
End If
If G = 3 Then
Locate 2 , 1
Lcd "*"
E = C
Decr G
Goto Mmain
End If
If G = 2 Then
Locate 2 , 2
Lcd "*"
F = C
Decr G
Goto Mmain
End If
If G = 1 Then
Locate 2 , 3
Lcd "*"
H = C
Decr G
Goto Mmain
End If
If G = 0 Then
Locate 2 , 4
Lcd "*"
I = C
G = 3
End If
Main3:
M = H * 10
N = F * 100
P = E * 1000
Q = M + I
R = N + Q
S = P + R
Goto Main7
Main8:
Do
If L = A And T = 2 Then
Goto Main13
End If
If L <> S And T = 1 Then
Goto Main13
End If
If L = S Then
Reset Portb.1
Goto Main4
End If
If L <> S Then
Set Portb.1
End If
Goto Main5
Loop
Main4:
Cls
Lcd "ok"
Set Portb.0
Waitms 100
Reset Portb.0
K = 2
L = Y
Goto Maine
Main5:
Do
If K = 0 Then
Goto Main6
Else
Cls
Lcd "your try"
Locate 1 , 10
Lcd K
Locate 2 , 9
Lcd "!alarm!"
Decr K
Goto Mmain
End If
Loop
Main6:
Cls
Lcd "int master pass"
Reset L
L = A
K = 0
Goto Mmain
Main7:
Do
Main11:
If O = 3 Then
L = A
Cls
Lcd "int master pass"
Decr O
Goto Mmain
End If
If O = 2 And L = S Then
Decr O
Cls
Lcd "int new password"
Goto Mmain
End If
If O = 1 Then
L = S
Cls
Lcd L
Waitms 100
Cls
Decr O
Goto Maine
End If
If O = 0 Then
Goto Main8
End If
If O = 2 And L <> S Then
Cls
Lcd "eror"
O = 3
Waitms 100
Goto Main11
End If
Loop
Main13:
Do
Main14:
If T = 3 Then
X = L
L = A
Cls
Lcd "int master pass"
Decr T
Goto Mmain
End If
If T = 2 And A = S Then
Decr T
Cls
Lcd "new master pass"
Goto Mmain
End If
If T = 1 Then
A = S
L = X
Cls
Lcd A
Waitms 100
Cls
Decr T
Goto Maine
End If
If T = 0 Then
Goto Main8
End If
If T = 2 And A <> S Then
Cls
Lcd "eror"
T = 3
Waitms 100
Goto Main14
End If
Loop
End 'end program
مراجع ومنابع:
1. bascom-avr helpfile –version 1.11a
2. کتاب مرجع کامل میکرو کنترل های avr .--انتشارات نص --نویسنده مظاهریان- پرتوی فر-بیانلو
3. کتاب ساختار میکرو کنترل های avr .-- نشر شیخ بهایی—نویسنده: مهندس علی سلیمیان
4. دیتا شیت های شرکت ATMEL مربوط به میکرو ATmega32
(mainmicro) دانشجوی سال آخر دوره کارشناسی الکترونیک
30 اذرپاییز سال1386 (از پروژه الکترونیک 3)
طرز کار مدار
1) بعد از روشن کردن دستگاه اطلاعاتی در مورد سازنده این مدار (قفل رمزی دیجیتال) و ... نمایش داده میشود و LED زرد رنگ روشن میگردد.
2)در روی LCD پیام (inter password) نمایش داده میشود.
3)در صورت درست بودن رمز LED سبز رنگ برای مدت 1 ثانیه روشن میشود و سپس خاموش میگردد.و همزمان کلمه(OK)روی LCD نمایش داده شده و دستگاه دوباره به مرحله2 میرود و منتظر ورود رمز میباشد .
4)در صورت نادرست بودن کلمه رمز وارد شده LED قرمز رنگ روشن شده و تا 2 باردیگر فرصت است تا رمز صحیح وارد شود ؛ در صورت درست بودن رمز در هر مرحله از 2 بار فرصت, دستگاه به مرحله 3 میرودونیز LED قرمز رنگ خاموش میگردد , ولی در صورت نادرست بودن, دستگاه رمز دیگری را به نام (master word ) طلب میکند.
5) در صورت درست وارد کردن (master password) دستگاه به مرحله 3 میرودو نیز LED قرمز رنگ خاموش میگردد.و در صورت نادرست بودن در این مرحله باقی میماند تا کد صحیح وارد گردد.
6)کلید * برای تغییر (password) دستگاه میباشدو با فشار کلید * در هر مرحله از کار دستگاه دستگاه وارد پروسه تغییر رمز میشود(مرحله7).
7) پروسه تغییر رمز:
ابتدا دستگاه به منظور جلوگیری از تغییر رمز توسط افراد غیر مرتبط طلب رمز اصلی را مینماید(master password) ؛ در صورت نادرست بودن رمز دستگاه پیام (error) را نمایش داده و دوباره پیام (int masser password)را نمایش میدهد . ولی در صورت درست بودن به مرحله بعد رفته و پیام (inter new password )را نمایش میدهدومنتظر وارد شدن رمز جدید( passwordجدید) میماند در صورت وارد کردن رمز 4 رقمی جدید , رمز وارد شده را به مدت 2 ثانیه نمایش داده و سپس رمز تغییر کرده و دستگاه با رمز (password ) جدید به مرحله 3 میرود.
8) کلید # برای تغییر master password میباشد و برای تغییر رمز اصلی در مواقع لزوم تعبیه شده است. مراحل عملکرد این کلید شبیه مرحله 7 میباشد.
1) ال ای دی سبز رنگ به پایه b.0 پایه 0 پورت b متصل میشود.
2)ال ای دی قرمز رنگ به پایه b.1 ...پایه 1پورت b متصل میشود
3) ال ای دی زرد به پایه b.2.....پایه 2 پورتb متصل میشود.
ال سی دی به پورت dمتصل میشود .
کیبورد 3*4 به پورتa متصل میشود.
ا در پروتئوس مدار را تست کنید حتما جواب میگیرید.
اگر با فشردن 1کلید روی کیبورد 4 رقم بسیار سریع پر شد(روی ال سی دی) ؛.....این تاخیر را روی 100 یا 150 قرار دهید:
Mmain:
Do
این تاخیر را 100 یا 150 کنید: Waitms 50
B = Getkbd()
If B < 12 Then
Goto Main
End If
Loop
البته در مدار عملی با این تاخیر 50 میلی ثانیه خوب جواب میدهد.
در نرم افزار بسکام نیز این مدار به راحتی شبیه سازی میشود.ولی شماره اعداد روی صفحه کلید به هم میریزد.
و اما طرز اتصال ال سی دی به میکرو در نرم افزر پروتئوس.
پایه 0 پورت d به enable ال سی دی
پایه 1 پورت d به پایه rs ال سی دی
پایه 2 پورت d به db7 ال سی دی که فکر کنم پایه 14 ان در پروتئوس و پایه 16 ان در lcd واقعی بشود.
پایه 3 پورت d به db6
پایه 4 پورت dبه db5
پایه 5 پورت d به db4
پایه r/w ال سی دی رو زمین کنید.
برای اتصال صفه کلید ماتریسی به میکرو
سطر ها را به ترتیب َََa که سطر اول صفحه کلید است به پایه 0 پورت a
b صفحه کلی(سطر دوم)د به پایه 1 پورت a
و به همین ترتیب ادامه میدهیمتا طر اخر و بعد ستون هارا به ترتیب به پایه های بعدی وصل میکنیم.
در آخر پینd7میکرو بدون اتصال میماند.
نکته:
1) برای دیدن سریع تر شبیه سازی در خود بسکام میتوانید تاخیر های با زمان 1000 میلی ثانیه را در برنامه کاهش دهید.
2)در ابتدای برنامه یک سری مشخصات نمایش داده میشود که مربوط به پروژه خودم برای درس آزمایشگاه پروژه الک3 بود و من بعضی اطلاعات شخصی رو پاک کردم.
3)مقاومت ها برای کنترل شدت نور led روشنایی lcd است.
3) اماده پاسخگویی در مورد برنامه نوشته شده هستم .
4)ممنون
این یک پروژه تهیه قفل رمز دیجیتالی الکترونیکی است. هدف در این پروژه مفید بودن مدار ساخته شده و کارکرد صحیح آن میباشد. ضمن اینکه در طی طراحی این مدار آشنایی عملی و بسیار خوب با میکرو avr وبعضی قطعات پرکاربرد الکترونیکی دیگر نظیر صفحه کلید و LCD و پروتکل های آن ها و چگونگی اتصال ان ها با میکرو صورت گرفت .
همچنین برنامه نویسی عملی برای میکرو به این صورت, چگونگی عملکرد برنامه نوشته شده و صحت آن در مدار بسته شده خود حاوی تجارب بسیار مفیدی بود.و این راه را برای طراحی مدارات پیشرفته تر وپیچیده تر با میکرو آسان مینماید.
این نکته قابل ذکر است که این اولین مدار میکرو کنترلی ساخته شده به صورت عملی برای من بود و تجربه چنین کاری بسیار با طراحی آن در نرم افزارهای شبیه ساز متفاوت است.(خطاهای برنامه و چگونگی اتصالات بین اجزای مختلف مدار و پروتکل های هر جز با شبیه سازی توسط نرم افزار متفاوت میباشد .)
اجزای اساسی این مدار:
1)میکرو ATMEGA32
2)LCD کاراکتری 16*2
3) صفحه کلید 3*4 ماتریسی
4) LED
5) برد بورد.
6)سیم های رابط.
7) مقاومت های1و0.680 کیلواهم
نرم افزار:
نرم افزار استفاده شده در این پروژه (bascom avr ) میباشد که زبان برنامه نویسی آن بیسیک است. تعداد خطوط برنامه ای که من برای این پروژه نوشتم 296 خط میباشد . این تعداد زیاد خط برنامه نویسی برای رفع تقریبا کامل باگ ها و خطاهای احتمالی و غیر احتمالی در مدار عملی و حین کار مدار و ارایه یک مدار بی نقص میباشد.در برنامه این نرم افزار از مجموعه ای از دستورات نرم افزای مثل دستورات شرطی و...و روشها و تکنیک های برنامه نویسی همچون روش نظاره به جدول(برای عملکرد صفحه کلید)و تعداد زیادی subroutine (زیر برنامه) و ایجاد تاخیر های مناسب برای عملکرد مدار را نام برد.
نرم افزا دیگری که در طراحی این مدار برای تست طرز عملکرد مدار به کار گرفته شد (proteus) میباشد . ولی همان طور که گفته شد شبیه سازی با این نرم افزار تا پیاده سازی عملی و به نتیجه رسیدن در مدار عملی بسیار سخت تر از شبیه سازی با نرم افزار است.من از اینجا به این مهم رسیده ام که بدون اغراق بگویم برای پیاده سازی عملی این مدار 24 ساعت پشت سر هم بیدار بودم (که علت آن میتواند دلایلی همچون: اولین تجربه و خطا های گوناگون مدار عملی بسته شده در مقایسه با شبیه سازباشد معیوب بودن قطعات مورد کاربرد باشد).
• از دیگر قابلیت های این مدار توانایی افزودن دیگر مدارات جانبی همانند سیستم کارت خوان و... میباشد.
• این مدار قابلیت کاربرد در اماکن امنیتی و مهم و نیز در هر مکان و هر وسیله دیگری که فاکتور امنیت در آن مهم باشد را دارا میباشد . ضمن اینکه سبب آسانی و راحتی کاربران در هر محل کاربرد میباشد.
رمز اولیه دستگاه هنگام روشن شدن آن 1234 میباشد و رمز اصلی آن (master password) عدد 1357 است.ضمن اینکه با فشردن کلید * میتوان رمز(password) را تغییر داد و با فشردن کلید # میتوان رمز اصلی (master password ) را تعویض نمود. تعداد ارقام مورد استفاده در دستگاه 4 رقم است که با تغییر در برنامه آن میتوان تعداد ارقام رمز (password) را 254 رقم افزایش داد
امنیت:
احتمال درست وارد کردن رمز توسط افراد غیر مرتبط ؛ با این تعداد ارقام(4 رقم) در فرصت اول 10000/1 میباشدو تا سه مرحله فرصتی که دستگاه برای وارد کردن رمز درست به افراد میدهد این عدد به 10000/3 میرسد که این عدد معادل 0003/. است که این نشان دهنده امنیت مناسب این دستگاه در برابر نفوذ اتفاقی میباشد.
توان مصرفی:
توان مصرفی در حالت عادی : 475 mW در ولتاژ 5 ولت.
Maximum توان مصرفی : 771 mW در ولتاژ5 ولت.
برنامه نوشته شده
$regfile = "M32DEF.DAT"
$crystal = 8000000
Config Kbd = Porta
Config Portb = Output
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim G As Byte
Dim H As Byte
Dim I As Byte
Dim J As Word
Dim L As Word
Dim M As Word
Dim N As Word
Dim P As Word
Dim Q As Word
Dim R As Word
Dim S As Word
Dim K As Byte
Dim O As Byte
Dim A As Word
Dim T As Byte
Dim X As Word
Dim Y As Word
Set Portb.2
Cursor Blink
Cls
Lcd "project name :"
Locate 2 , 1
Lcd "*digital luck*"
Waitms 1000
Cls
Lcd "doen by:"
Locate 2 , 1
Lcd " mainmicroi"
Waitms 1000
Cls
Lcd "ostad rahnema:"
Locate 2 , 1
Lcd "*mohandes*"
Waitms 1000
L = 1234
G = 3
T = 0
O = 0
K = 2
A = 1357
Maine:
Cls
Lcd "inter password"
Y = L
Mmain:
Do
Waitms 50
B = Getkbd()
If B < 12 Then
Goto Main
End If
Loop
Main:
Do
If B = 0 Then
Reset B
C = 1
Goto Main2
End If
If B = 4 Then
Reset B
C = 2
Goto Main2
End If
If B = 8 Then
Reset B
C = 3
Goto Main2
End If
If B = 1 Then
Reset B
C = 4
Goto Main2
End If
If B = 5 Then
Reset B
C = 5
Goto Main2
End If
If B = 9 Then
Reset B
C = 6
Goto Main2
End If
If B = 2 Then
Reset B
C = 7
Goto Main2
End If
If B = 6 Then
Reset B
C = 8
Goto Main2
End If
If B = 10 Then
Reset B
C = 9
Goto Main2
End If
If B = 11 Then
Reset B
C = 12
T = 3
Goto Main2
End If
If B = 7 Then
Reset B
C = 0
Goto Main2
End If
If B = 3 Then
Reset B
C = 11
O = 3
Goto Main2
End If
Loop
Main2:
If C = 11 Then
Goto Main7
End If
If C = 12 Then
Goto Main13
End If
If G = 3 Then
Locate 2 , 1
Lcd "*"
E = C
Decr G
Goto Mmain
End If
If G = 2 Then
Locate 2 , 2
Lcd "*"
F = C
Decr G
Goto Mmain
End If
If G = 1 Then
Locate 2 , 3
Lcd "*"
H = C
Decr G
Goto Mmain
End If
If G = 0 Then
Locate 2 , 4
Lcd "*"
I = C
G = 3
End If
Main3:
M = H * 10
N = F * 100
P = E * 1000
Q = M + I
R = N + Q
S = P + R
Goto Main7
Main8:
Do
If L = A And T = 2 Then
Goto Main13
End If
If L <> S And T = 1 Then
Goto Main13
End If
If L = S Then
Reset Portb.1
Goto Main4
End If
If L <> S Then
Set Portb.1
End If
Goto Main5
Loop
Main4:
Cls
Lcd "ok"
Set Portb.0
Waitms 100
Reset Portb.0
K = 2
L = Y
Goto Maine
Main5:
Do
If K = 0 Then
Goto Main6
Else
Cls
Lcd "your try"
Locate 1 , 10
Lcd K
Locate 2 , 9
Lcd "!alarm!"
Decr K
Goto Mmain
End If
Loop
Main6:
Cls
Lcd "int master pass"
Reset L
L = A
K = 0
Goto Mmain
Main7:
Do
Main11:
If O = 3 Then
L = A
Cls
Lcd "int master pass"
Decr O
Goto Mmain
End If
If O = 2 And L = S Then
Decr O
Cls
Lcd "int new password"
Goto Mmain
End If
If O = 1 Then
L = S
Cls
Lcd L
Waitms 100
Cls
Decr O
Goto Maine
End If
If O = 0 Then
Goto Main8
End If
If O = 2 And L <> S Then
Cls
Lcd "eror"
O = 3
Waitms 100
Goto Main11
End If
Loop
Main13:
Do
Main14:
If T = 3 Then
X = L
L = A
Cls
Lcd "int master pass"
Decr T
Goto Mmain
End If
If T = 2 And A = S Then
Decr T
Cls
Lcd "new master pass"
Goto Mmain
End If
If T = 1 Then
A = S
L = X
Cls
Lcd A
Waitms 100
Cls
Decr T
Goto Maine
End If
If T = 0 Then
Goto Main8
End If
If T = 2 And A <> S Then
Cls
Lcd "eror"
T = 3
Waitms 100
Goto Main14
End If
Loop
End 'end program
مراجع ومنابع:
1. bascom-avr helpfile –version 1.11a
2. کتاب مرجع کامل میکرو کنترل های avr .--انتشارات نص --نویسنده مظاهریان- پرتوی فر-بیانلو
3. کتاب ساختار میکرو کنترل های avr .-- نشر شیخ بهایی—نویسنده: مهندس علی سلیمیان
4. دیتا شیت های شرکت ATMEL مربوط به میکرو ATmega32
(mainmicro) دانشجوی سال آخر دوره کارشناسی الکترونیک
30 اذرپاییز سال1386 (از پروژه الکترونیک 3)
طرز کار مدار
1) بعد از روشن کردن دستگاه اطلاعاتی در مورد سازنده این مدار (قفل رمزی دیجیتال) و ... نمایش داده میشود و LED زرد رنگ روشن میگردد.
2)در روی LCD پیام (inter password) نمایش داده میشود.
3)در صورت درست بودن رمز LED سبز رنگ برای مدت 1 ثانیه روشن میشود و سپس خاموش میگردد.و همزمان کلمه(OK)روی LCD نمایش داده شده و دستگاه دوباره به مرحله2 میرود و منتظر ورود رمز میباشد .
4)در صورت نادرست بودن کلمه رمز وارد شده LED قرمز رنگ روشن شده و تا 2 باردیگر فرصت است تا رمز صحیح وارد شود ؛ در صورت درست بودن رمز در هر مرحله از 2 بار فرصت, دستگاه به مرحله 3 میرودونیز LED قرمز رنگ خاموش میگردد , ولی در صورت نادرست بودن, دستگاه رمز دیگری را به نام (master word ) طلب میکند.
5) در صورت درست وارد کردن (master password) دستگاه به مرحله 3 میرودو نیز LED قرمز رنگ خاموش میگردد.و در صورت نادرست بودن در این مرحله باقی میماند تا کد صحیح وارد گردد.
6)کلید * برای تغییر (password) دستگاه میباشدو با فشار کلید * در هر مرحله از کار دستگاه دستگاه وارد پروسه تغییر رمز میشود(مرحله7).
7) پروسه تغییر رمز:
ابتدا دستگاه به منظور جلوگیری از تغییر رمز توسط افراد غیر مرتبط طلب رمز اصلی را مینماید(master password) ؛ در صورت نادرست بودن رمز دستگاه پیام (error) را نمایش داده و دوباره پیام (int masser password)را نمایش میدهد . ولی در صورت درست بودن به مرحله بعد رفته و پیام (inter new password )را نمایش میدهدومنتظر وارد شدن رمز جدید( passwordجدید) میماند در صورت وارد کردن رمز 4 رقمی جدید , رمز وارد شده را به مدت 2 ثانیه نمایش داده و سپس رمز تغییر کرده و دستگاه با رمز (password ) جدید به مرحله 3 میرود.
8) کلید # برای تغییر master password میباشد و برای تغییر رمز اصلی در مواقع لزوم تعبیه شده است. مراحل عملکرد این کلید شبیه مرحله 7 میباشد.
1) ال ای دی سبز رنگ به پایه b.0 پایه 0 پورت b متصل میشود.
2)ال ای دی قرمز رنگ به پایه b.1 ...پایه 1پورت b متصل میشود
3) ال ای دی زرد به پایه b.2.....پایه 2 پورتb متصل میشود.
ال سی دی به پورت dمتصل میشود .
کیبورد 3*4 به پورتa متصل میشود.
ا در پروتئوس مدار را تست کنید حتما جواب میگیرید.
اگر با فشردن 1کلید روی کیبورد 4 رقم بسیار سریع پر شد(روی ال سی دی) ؛.....این تاخیر را روی 100 یا 150 قرار دهید:
Mmain:
Do
این تاخیر را 100 یا 150 کنید: Waitms 50
B = Getkbd()
If B < 12 Then
Goto Main
End If
Loop
البته در مدار عملی با این تاخیر 50 میلی ثانیه خوب جواب میدهد.
در نرم افزار بسکام نیز این مدار به راحتی شبیه سازی میشود.ولی شماره اعداد روی صفحه کلید به هم میریزد.
و اما طرز اتصال ال سی دی به میکرو در نرم افزر پروتئوس.
پایه 0 پورت d به enable ال سی دی
پایه 1 پورت d به پایه rs ال سی دی
پایه 2 پورت d به db7 ال سی دی که فکر کنم پایه 14 ان در پروتئوس و پایه 16 ان در lcd واقعی بشود.
پایه 3 پورت d به db6
پایه 4 پورت dبه db5
پایه 5 پورت d به db4
پایه r/w ال سی دی رو زمین کنید.
برای اتصال صفه کلید ماتریسی به میکرو
سطر ها را به ترتیب َََa که سطر اول صفحه کلید است به پایه 0 پورت a
b صفحه کلی(سطر دوم)د به پایه 1 پورت a
و به همین ترتیب ادامه میدهیمتا طر اخر و بعد ستون هارا به ترتیب به پایه های بعدی وصل میکنیم.
در آخر پینd7میکرو بدون اتصال میماند.
نکته:
1) برای دیدن سریع تر شبیه سازی در خود بسکام میتوانید تاخیر های با زمان 1000 میلی ثانیه را در برنامه کاهش دهید.
2)در ابتدای برنامه یک سری مشخصات نمایش داده میشود که مربوط به پروژه خودم برای درس آزمایشگاه پروژه الک3 بود و من بعضی اطلاعات شخصی رو پاک کردم.
3)مقاومت ها برای کنترل شدت نور led روشنایی lcd است.
3) اماده پاسخگویی در مورد برنامه نوشته شده هستم .
4)ممنون
دیدگاه