تبليغاتX
الکترونیک

قفل رمز دیجیتال:

سلام دوستان امروز می خوام آموزش یک پروژه تقریبا حرفه ای ر و بدم. ؟!!!!!!!!!!

توضیح مدار:

خوب بگذریم این پروژه یک قفل رمز که دارای دو رمز 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

         '**************************************

Main:                                                       'keyboard

 

      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

 

 

 

 

 

 

 

+ نوشته شده در  سه شنبه هشتم اسفند 1385ساعت 7:56  توسط n.r  | 

سلام دوستان امروز می خوام بهتون آموزش راه اندازی  lcd  با میکروکنترلر رو   آموزش بدم ..

خوب برای شروع ابتدا برنامه رو براتون توضیح می دم :

خط اول برای معرفی میکروست که من در این جا از میکروat mega 8 استفاده کردم . خط دوم هم فرکانس کریستال رو مشخص می کنه و خط چهارم هم نوع lcd . رو تعریف می کنه.و اما خط چهارم که تقریبا می شه گفت خیلی مهمه مربوط می شه به پیکربندیlcd به زبون ساده تر یعنی اینکه مشخص کنیم کهlcd به کدوم پورت از میکرو وصل شه که شما می تونید از پرتهای دیگه هم استفاده کنید .و اما خط چهارم این دستور مربوط به این میشه کهlcd باید چه نوشته ای رو نمایش بده که من اینجا همین طور که می بینید عبارت نیما رو نوشتم ولی شمه می تونید بین این د و"   " علامت هرنوشته ای رو که می خاین بنویسید و نمایش بدید.و اما خط آخر هم که پایان برنامه رو مشخص می کنه. راتی هرکی برنامه رو خواست میل بزن براش بفرستم . 

امید وارم که از این پروژه ساده خوشتون اومده باشه.

 

 

+ نوشته شده در  چهارشنبه بیست و پنجم بهمن 1385ساعت 20:42  توسط n.r  | 
+ نوشته شده در  چهارشنبه بیست و پنجم بهمن 1385ساعت 20:38  توسط n.r  | 

خوب،اینطرحی که امروز براتون آوردم یه چیز استثناییه یعنی منظورم نوع کاربردیه که براش اختراع کردم .همانطوریکه شما توی کتابهای مختلف دیدید از فرستنده های کوچولوی کم مصرف به عنوان استراق سمع یا دستگاه شنود یاد میکنند.با توجه به اینکه فرستنده های تک ترانزیستوری اصلاً نمی تونند صداها رو از دور دست ها جمع آوری کنندولی باز هم به چنین عنوانهایی برخورد میکنیم .

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

طرحی که من دارم اینه که خیلی ها دوست دارن که موسیقی موجود در یکی از اون دستگاه هایی که پایین می گم و صدای بلند توی ماشینشون پخش کنند ولی چون اوتوموبیلهای معمولی معمولاً ورودی آمپلی فایر ندارن و سی دی هم نمیخورن (بعضی هاشون حتی نوار هم نمیخورن!)ولی معمولا ً اکثرشون یه رادو اف ام نسبتاً خوب دارن .میگفتم طرح من اینه که بیلییم میکروفن این کیت رو برداریم و پس از لحیم کردن یک مقاومت 2700 اهم به جای میکروفن ، خروجی گوشی ام پیتری پلیر یا موبایل رو به دو سر مقاومت (میکروفن مجازی) تزریق کنیم و با رادیوی اف ام ماشین صدای (استریوی مجازی ) دستگاه رو دریافت کنیم.

خوبی این نقشه اینه که با 3 ولت فقط 1.8 الی 3 میلی آپر مصرف میکنه ولی ترجیها با یک باطری کتابی 9ولت توپ و قوی خارجی راه اندازی اش کنید خیلی بهتر میشه .مجموعه رو توی یک جعبه کوچک پلاستیکی قرار بدید. آنتن رو20 سانتیمتر سیم مسی انتخاب کنید. در مورد فیش استریوی ورودی ؛ چون ساخت فرستنده استریو از عهده ما خارجه (یه دونه آی سی میخواد که فکر کنم تو ایران نباشه چه برسه به جهان !) و به فرض اگه فرستنده استریو هم بسازیم گیرنده استریو به ندرت یافت میشه پس مجبوریم که استریوی مجازی بسازیم.

میتونید از یه فیش استریوی سالم استفاده کنید و خازن های عدسی 104رو توی جعبه لحیم کنید که تمیز تر هم از کار در میاد.

اگه موبایل و ام پی تری پلیر و ماشین ندارید (مثل من!) باز هم این مدار به دردتون میخوره .میتونید از اون به عنوان پخش صدای موزیک کامپیوتر روی رادیو ایتفاده کنید . اگه کامپیوتر هم ندارید ... ! پس .. الان با چی دارید این متن ها رو میخونید !؟

چی؟.. تو کافی نت اید ؟ عمراً کسی تو کافی نت تو سایت علمی نمیره .. حداقلش اصلا تو سایت نمیره ..فقط چت ! بگذریم.

 

+ نوشته شده در  سه شنبه بیست و چهارم بهمن 1385ساعت 23:8  توسط n.r  |