قفل رمز دیجیتال:
سلام دوستان امروز می خوام آموزش یک پروژه تقریبا حرفه ای ر و بدم. ؟!!!!!!!!!!
توضیح مدار:
خوب بگذریم این پروژه یک قفل رمز که دارای دو رمز 10 رقمی!! با حافظه است نکته جالب (شاید اصلا جالب نباشه) این که با قطع برق حافظش از بین نمی ره ؟! خصوصیت دوم این پروژه این که قطعاتش خیلی کم و با کمی حوصله بسیار زیبا و کوچک می توان اون رو درست کرد .همچنین شما می تونید هر وقت که خواستید رمز اونو با فشردن یک دکمه با رمز دلخواه جدید تغییر بدید.
کاربرد :
1)شما می تونین با وصل کردن رله این کیت به هر وسیله برقی که دوست دارید مدیریت اون رو در دست بگیرید یعنی هرکسی نتون اون رو روشن کنه و فقط شما با کدی که دارید می تونید اون رو روشن کنید./
2) با خریدن برابری برقی ((ی چیزی تومایهای در بازکن اف اف )) و وصل کردن اون به در اتاقتون و به رله کیت در اتاقتونو با کد باز کنین و هرکسی رو نذارین که با اتاقتون وارد بشه!
قطعات:
1)میکروکنترلر
2)6 تا مقاومت
3)یک رله
3 کوچک Led4)
5)یک بازر
6)و یک آی سی درایور
طریقه استفاده:
در ایتدا که شما میکرو رو برنامه ریزی می کنید دو رمز به صورت پیش فرض قرار میگیرند که به ترتیب از راست به چپ عبارت اند از:(1234567890) و (0987654321) که شما می تونید با روشی که الان بهتون می گم روزو عوض کنید. با وارد کردن رمز از طریق کی برد و زدن کلید (*) به مدت 15 ثانیه رله اول وصل شده و همزمان با اون(( )) روشن می شود . در صورتی که رمز اشتباه وارد شده باشد بازر به 5الی 10 ثانیه به صدا در می آید و اگر سه بار رمز اشتباه وارد شود به مدت 15 ثانیه به صدا در می آید و همزمان (( )) روشن می شود.
طریقه عوض کردن رمز اول :
با وارد کردن رمز و فشردن کلید (#) می توان رمز را عوض کرد در صورتی که رمز وارد شده درست باشد .
1.بعد از وارد کردن رمز و فشردن کلید (#) رمز جدید خود را از یک 1تا 10 رقم وارد کنید و کلید (*) را فشار دهید و سپس رمز جدید خود را دوباره وارد کنید و همین عمل را انجام دهید اگر هر دو رمز باهم مطابقت کنند رمز را پذیرفته و آلارمی در یافت می کنید وگر نه هشداری به صورت بوق ممتد دریافت می کنید .
رمز دوم:
برای عوض کردن رمز دوم ابتدا رمز را وارد کنید و کلید (#) را فشار دهید . و تنها فرقی که با مرحله قبل داره این که پس از فشار دادن کلید (#) کلید (*) را هم فشار دهید . رمز جدید خود را وارد کنید و کلید (*) فشار دهید و برای تایید رمز خود را مجددا وارد کنید اگر رمز مطابقت کند دستگاه با الارمی شما را از این مو ضوع مطلع می سازد و اگر هم اشتباه باشد بوق ممتد می زند.
نکته:
1.حتما یکی از رمزها را به خاطر داشته باشید .
2.در صورت فراموش کردن یکی از رمز ها نگران نباشید حتی ترتیب آنها هم مهم نیست.
در صورتی که شما فقط یکی از رمزها را به خاطر دارید و اصلا نمی دانید کدام رمز است به این صورت عمل کنید :
رمزی را که به خاطر دارید را وارد کنید و اگه کلید (#) را بزنید و بعدش رمز جدید رو وارد کنید رمز اول عوض می شود .و در صورتی که پس از فشار دادن (#)کلید (*) بزنید رمز دوم عوض می شود که مراحل آ« شبیه مراحل بالا می باشد .
'****************************************************************
'* Name : lock.BAS *
'* NAME :nima *
'* POCKET : atmega8 *
'* EMAIL : nima_kharposht@yahoo.com *
'* Date : 2006/4/30 *
'* SITE : WWW.nrobot.blogfa.com *
'* scribe : n.rastkar *
'* : *
'****************************************************************
$regfile = "m8def.dat"
$crystal = 8000000
'*************************
Config Portd = &B11110001
Config Portc = &B111111
Portc = &B000000
Led1 Alias Portc.0
Led2 Alias Portc.1
Led3 Alias Portc.2
Buzzer Alias Portc.3
Relay1 Alias Portc.4
Relay2 Alias Portc.5
'''''''''''''''''''''
D7 Alias Portd.7
D6 Alias Portd.6
D5 Alias Portd.5
D4 Alias Portd.4
Dim Key As Byte
Dim Old As Byte
Dim P1 As Byte
Dim P2 As Byte
Dim P3 As Byte
Dim P4 As Byte
Dim P5 As Byte
Dim P6 As Byte
Dim P7 As Byte
Dim P8 As Byte
Dim P9 As Byte
Dim P10 As Byte
Dim P11 As Byte
Dim P12 As Byte
Dim P13 As Byte
Dim P14 As Byte
Dim P15 As Byte
Dim P16 As Byte
Dim P17 As Byte
Dim P18 As Byte
Dim P19 As Byte
Dim P20 As Byte
Dim Scan1 As Byte
Dim Scan2 As Byte
Dim Scan3 As Byte
Dim Scan4 As Byte
Dim Scan5 As Byte
Dim Scan6 As Byte
Dim Scan7 As Byte
Dim Scan8 As Byte
Dim Scan9 As Byte
Dim Scan10 As Byte
Dim Vs As Byte
Dim P As Byte
Dim Count As Byte
'*************************
Dim Flag As Bit
Dim C As Bit
Dim C2 As Bit
Dim T As Bit
Dim E As Byte
Dim T1 As Byte
Dim T2 As Byte
Dim T3 As Byte
Dim T4 As Byte
Dim T5 As Byte
Dim T6 As Byte
Dim T7 As Byte
Dim T8 As Byte
Dim T9 As Byte
Dim T10 As Byte
'**********************
Ready:
'''''*******************''''''start'''''''*****************
Buzzer = 1
Waitms 300
Buzzer = 0
Waitms 100
Buzzer = 1
Waitms 50
Buzzer = 0
'******************
Old = 0
T = 0
E = 0
C = 0
C2 = 0
P = 0
Vs = 0
Count = 0
Gosub Clr2
Gosub Clr3
Gosub Clr4
'***********************
Readeeprom P1 , 1
Readeeprom P2 , 2
Readeeprom P3 , 3
Readeeprom P4 , 4
Readeeprom P5 , 5
Readeeprom P6 , 6
Readeeprom P7 , 7
Readeeprom P8 , 8
Readeeprom P9 , 9
Readeeprom P10 , 10
Readeeprom T1 , 11 'ÊÓÊ ÑãÒ
Readeeprom P11 , 12
Readeeprom P12 , 13
Readeeprom P13 , 14
Readeeprom P14 , 15
Readeeprom P15 , 16
Readeeprom P16 , 17
Readeeprom P17 , 18
Readeeprom P18 , 19
Readeeprom P19 , 20
Readeeprom P20 , 21
Readeeprom T2 , 22 ' ÊÓÊ ÑãÒ
'******************************
If T1 = 0 Then ' ÑãÒ ÚæÖ ÔÏå¿
Goto Next1
Else
P1 = 1
P2 = 2
P3 = 3
P4 = 4
P5 = 5
P6 = 6
P7 = 7
P8 = 8
P9 = 9
P10 = 0
End If
Next1:
If T2 = 0 Then ' ' ÑãÒ ÚæÖ ÔÏå¿
Goto Main
Else
P11 = 0
P12 = 9
P13 = 8
P14 = 7
P15 = 6
P16 = 5
P17 = 4
P18 = 3
P19 = 2
P20 = 1
End If
'**************************************
D7 = 0 : D6 = 1 : D5 = 1 : D4 = 1
Gosub Column
If Flag = 1 Then Goto Result1
D7 = 1 : D6 = 0 : D5 = 1 : D4 = 1
Gosub Column
If Flag = 1 Then Goto Result2
D7 = 1 : D6 = 1 : D5 = 0 : D4 = 1
Gosub Column
If Flag = 1 Then Goto Result3
D7 = 1 : D6 = 1 : D5 = 1 : D4 = 0
Gosub Column
If Flag = 1 Then Goto Result4
Goto Main
Result1:
Select Case Key
Case 0 : Old = 1
Case 1 : Old = 2
Case 2 : Old = 3
End Select
Goto Test
Result2:
Select Case Key
Case 0 : Old = 4
Case 1 : Old = 5
Case 2 : Old = 6
End Select
Goto Test
Result3:
Select Case Key
Case 0 : Old = 7
Case 1 : Old = 8
Case 2 : Old = 9
End Select
Goto Test
Result4:
Select Case Key
Case 0 : Old = 10
Case 1 : Old = 0
Case 2 : Old = 11
End Select
Goto Test
'ÊÓÊ ÓØÑ
Column:
Waitms 15
Flag = 1
Key = 0
If Pind.3 = 0 Then Goto Exit1
Key = Key + 1
If Pind.2 = 0 Then Goto Exit1
Key = Key + 1
If Pind.1 = 0 Then Goto Exit1
Key = Key + 1
Flag = 0
Return
Exit1:
Return
'**********************
Test:
Led1 = 1
Buzzer = 1
Waitms 30
'ãØãÆä ÇÒ ÑåÇ ÔÏä
D7 = 0 : D6 = 0 : D5 = 0 : D4 = 0
If Pind.3 = 1 And Pind.2 = 1 And Pind.1 = 1 Then
Key = 0
Buzzer = 0
Led1 = 0
Goto Next0
Else
Goto Test
End If
'***********************
Next0:
If T = 1 And Old = 10 Then ' ÑãÒ Ïæã ÚæÖ ÔæÏ
C2 = 1
T = 0
P = 0
C = 0
Goto Main
Else
If T = 1 And Old <> 10 Then ' ÑãÒ Çæá ÚæÖ ÔæÏ
C = 1
C2 = 0
T = 0
Goto Next2
End If
End If
'********************************************
If Old = 10 Or Old = 11 Then Goto Test1
Next2:
P = P + 1
On P Goto A , Pa1 , Pa2 , Pa3 , Pa4 , Pa5 , Pa6 , Pa7 , Pa8 , Pa9 , _
Pa10 , A , Error
A:
Goto Main
Pa1:
T1 = Old
Goto Main
Pa2:
T2 = Old
Goto Main
Pa3:
T3 = Old
Goto Main
Pa4:
T4 = Old
Goto Main
Pa5:
T5 = Old
Goto Main
Pa6:
T6 = Old
Goto Main
Pa7:
T7 = Old
Goto Main
Pa8:
T8 = Old
Goto Main
Pa9:
T9 = Old
Goto Main
Pa10:
T10 = Old
Goto Main
'************************ 'ÑãÒ Çæá
Test1:
If C = 1 Then
Goto Chang2
Else
If C2 = 1 Then Goto Chang3
End If
If T1 = P1 And T2 = P2 And T3 = P3 And T4 = P4 And T5 = P5 And T6 = P6_
And T7 = P7 And T8 = P8 And T9 = P9 And T10 = P10 Then
Goto Ok ' ÊÓÊ ÑãÒ Çæá
Else
If T1 = P11 And T2 = P12 And T3 = P13 And T4 = P14 And T5 = P15 And _
T6 = P16 And T7 = P17 And T8 = P18 And T9 = P19 And T10 = P20 Then
Goto Ok
Else
Goto Error
End If
End If
'*********************
Ok:
Gosub Clr2
If Old = 10 Then Goto Ok1
If Old = 11 Then Goto Chang
Ok1:
Led2 = 1
Relay1 = 1 ' æÕá Ñáå Çæá
Waitms 1500
Relay1 = 0
Led2 = 0
Gosub Clr0
Count = 0
Goto Main
'**********************
Chang:
T = 1
Gosub Clr2
Gosub Clr0
Goto Main
'***********************
Chang2:
Vs = Vs + 1
If Vs = 2 Then
Goto Next3
Else
If Vs => 3 Then
Vs = 0
Gosub Clr3
Gosub Clr4
Goto Error
End If
End If
Scan1 = T1
Scan2 = T2
Scan3 = T3
Scan4 = T4
Scan5 = T5
Scan6 = T6
Scan7 = T7
Scan8 = T8
Scan9 = T9
Scan10 = T10
Gosub Clr0
Gosub Clr2
Goto Main
Next3:
If T1 = Scan1 And T2 = Scan2 And T3 = Scan3 And T4 = Scan4 And _
T5 = Scan5 And T6 = Scan6 And T7 = Scan7 And _
T8 = Scan8 And T9 = Scan9 And T10 = Scan10 Then
Vs = 0
Goto Next4
Else
Gosub Clr2
Gosub Clr0
Gosub Clr3
Gosub Clr4
Goto Error
End If
Next4:
Writeeeprom T1 , 1
Waitms 4
Writeeeprom T2 , 2
Waitms 4
Writeeeprom T3 , 3
Waitms 4
Writeeeprom T4 , 4
Waitms 4
Writeeeprom T5 , 5
Waitms 4
Writeeeprom T6 , 6
Waitms 4
Writeeeprom T7 , 7
Waitms 4
Writeeeprom T8 , 8
Waitms 4
Writeeeprom T9 , 9
Waitms 4
Writeeeprom T10 , 10
Waitms 4
Writeeeprom E , 11
Waitms 4
C = 0
T = 0
Gosub Buzz
Goto Ready
'**************************************
Chang3:
Vs = Vs + 1
If Vs = 2 Then
Gosub Clr4
Goto Next5
Else
If Vs => 3 Then
Vs = 0
Gosub Clr3
Gosub Clr4
Goto Error
End If
End If
Scan1 = T1
Scan2 = T2
Scan3 = T3
Scan4 = T4
Scan5 = T5
Scan6 = T6
Scan7 = T7
Scan8 = T8
Scan9 = T9
Scan10 = T10
Gosub Clr0
Gosub Clr2
Goto Main
Next5:
If T1 = Scan1 And T2 = Scan2 And T3 = Scan3 And T4 = Scan4 And _
T5 = Scan5 And T6 = Scan6 And T7 = Scan7 And _
T8 = Scan8 And T9 = Scan9 And T10 = Scan10 Then
Vs = 0
Goto Next6
Else
Gosub Clr2
Gosub Clr0
Gosub Clr3
Gosub Clr4
Goto Error
End If
Next6:
Writeeeprom T1 , 12
Waitms 4
Writeeeprom T2 , 13
Waitms 4
Writeeeprom T3 , 14
Waitms 4
Writeeeprom T4 , 15
Waitms 4
Writeeeprom T5 , 16
Waitms 4
Writeeeprom T6 , 17
Waitms 4
Writeeeprom T7 , 18
Waitms 4
Writeeeprom T8 , 19
Waitms 4
Writeeeprom T9 , 20
Waitms 4
Writeeeprom T10 , 21
Waitms 4
Writeeeprom E , 22
Waitms 4
Gosub Buzz
Goto Ready
'*********************
Error:
Gosub Clr2
Gosub Clr0
Count = Count + 1
If Count = 3 Then
Led3 = 1
Buzzer = 1 ' Buzzer Alarm
Wait 15
Buzzer = 0
Led3 = 0
Count = 0
Vs = 0
Else
Led3 = 1
Buzzer = 1
Waitms 1500
Buzzer = 0
Led3 = 0
Vs = 0
Goto Main
End If
Goto Main
Error2:
Goto Main
Clr0:
Old = 0
P = 0
Return
Clr2:
T1 = 255
T2 = 255
T3 = 255
T4 = 255
T5 = 255
T6 = 255
T7 = 255
T8 = 255
T9 = 255
T10 = 255
Return
Clr3:
Scan1 = 255
Scan2 = 255
Scan3 = 255
Scan4 = 255
Scan5 = 255
Scan6 = 255
Scan7 = 255
Scan8 = 255
Scan9 = 255
Scan10 = 255
Return
Clr4:
C = 0
T = 0
C2 = 0
Return
Buzz:
Buzzer = 1
Waitms 150
Buzzer = 0
Waitms 10
Buzzer = 1
Waitms 70
Buzzer = 0
Waitms 10
Buzzer = 1
Waitms 150
Buzzer = 0
Waitms 10
Buzzer = 1
Waitms 70
Buzzer = 0
Return
End


سلام دوستان امروز می خوام بهتون آموزش راه اندازی lcd با میکروکنترلر رو آموزش بدم ..
خوب برای شروع ابتدا برنامه رو براتون توضیح می دم :
خط اول برای معرفی میکروست که من در این جا از میکروat mega 8 استفاده کردم . خط دوم هم فرکانس کریستال رو مشخص می کنه و خط چهارم هم نوع lcd . رو تعریف می کنه.و اما خط چهارم که تقریبا می شه گفت خیلی مهمه مربوط می شه به پیکربندیlcd به زبون ساده تر یعنی اینکه مشخص کنیم کهlcd به کدوم پورت از میکرو وصل شه که شما می تونید از پرتهای دیگه هم استفاده کنید .و اما خط چهارم این دستور مربوط به این میشه کهlcd باید چه نوشته ای رو نمایش بده که من اینجا همین طور که می بینید عبارت نیما رو نوشتم ولی شمه می تونید بین این د و" " علامت هرنوشته ای رو که می خاین بنویسید و نمایش بدید.و اما خط آخر هم که پایان برنامه رو مشخص می کنه. راتی هرکی برنامه رو خواست میل بزن براش بفرستم .
امید وارم که از این پروژه ساده خوشتون اومده باشه.
خوب،اینطرحی که امروز براتون آوردم یه چیز استثناییه یعنی منظورم نوع کاربردیه که براش اختراع کردم .همانطوریکه شما توی کتابهای مختلف دیدید از فرستنده های کوچولوی کم مصرف به عنوان استراق سمع یا دستگاه شنود یاد میکنند.با توجه به اینکه فرستنده های تک ترانزیستوری اصلاً نمی تونند صداها رو از دور دست ها جمع آوری کنندولی باز هم به چنین عنوانهایی برخورد میکنیم .
ولی من پس از دریافت این نقشه از اینترنت تحت عنوان میکروفن مخفی و ساختنش دیدم که باید بلند جلوی میکروفن اون صحبت کنیم تا صدا رو سند کنه.
طرحی که من دارم اینه که خیلی ها دوست دارن که موسیقی موجود در یکی از اون دستگاه هایی که پایین می گم و صدای بلند توی ماشینشون پخش کنند ولی چون اوتوموبیلهای معمولی معمولاً ورودی آمپلی فایر ندارن و سی دی هم نمیخورن (بعضی هاشون حتی نوار هم نمیخورن!)ولی معمولا ً اکثرشون یه رادو اف ام نسبتاً خوب دارن .میگفتم طرح من اینه که بیلییم میکروفن این کیت رو برداریم و پس از لحیم کردن یک مقاومت 2700 اهم به جای میکروفن ، خروجی گوشی ام پیتری پلیر یا موبایل رو به دو سر مقاومت (میکروفن مجازی) تزریق کنیم و با رادیوی اف ام ماشین صدای (استریوی مجازی ) دستگاه رو دریافت کنیم.
خوبی این نقشه اینه که با 3 ولت فقط 1.8 الی 3 میلی آپر مصرف میکنه ولی ترجیها با یک باطری کتابی 9ولت توپ و قوی خارجی راه اندازی اش کنید خیلی بهتر میشه .مجموعه رو توی یک جعبه کوچک پلاستیکی قرار بدید. آنتن رو20 سانتیمتر سیم مسی انتخاب کنید. در مورد فیش استریوی ورودی ؛ چون ساخت فرستنده استریو از عهده ما خارجه (یه دونه آی سی میخواد که فکر کنم تو ایران نباشه چه برسه به جهان !) و به فرض اگه فرستنده استریو هم بسازیم گیرنده استریو به ندرت یافت میشه پس مجبوریم که استریوی مجازی بسازیم.
میتونید از یه فیش استریوی سالم استفاده کنید و خازن های عدسی 104رو توی جعبه لحیم کنید که تمیز تر هم از کار در میاد.
اگه موبایل و ام پی تری پلیر و ماشین ندارید (مثل من!) باز هم این مدار به دردتون میخوره .میتونید از اون به عنوان پخش صدای موزیک کامپیوتر روی رادیو ایتفاده کنید . اگه کامپیوتر هم ندارید ... ! پس .. الان با چی دارید این متن ها رو میخونید !؟
چی؟.. تو کافی نت اید ؟ عمراً کسی تو کافی نت تو سایت علمی نمیره .. حداقلش اصلا تو سایت نمیره ..فقط چت ! بگذریم.

