NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4018 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: درخواست راهنمایی برای برنامه نوشتهشده هم اکنون نیازمند یاری سبزتان هستم

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Mar 2011
    نوشته ها
    23
    تشکر
    9
    تشکر شده 6 بار در 5 پست

    Exclamation درخواست راهنمایی برای برنامه نوشتهشده هم اکنون نیازمند یاری سبزتان هستم

    سلام ئوستان عزیز من یه برناه قفل رمز دیجیتال نوشتم که به وسیله دو ال ایی دی قسمت رمز دهی و رمز گیریش رو تقسیم کردم اولین بار ه پروگرامش کردم خوب کار میکرد ولی بعد از دو سه ساعت ال ایی دی مربوط به رمز گیی شروع بع چشمک زدن کرد حالا هم که دیگه از اول چشمک میزنه نمیدونم چیکارش کنم لطفا راهنماییم کنید این برنامش
    کد:
    '$sim
    $regfile = "m8def.dat"
    $crystal = 4000000
    Config Portb = Output
    Config Portc = Input
    Config Kbd = Portd , Debounce = 100 , Delay = 5
    '===============================================================================
    Dim A As Byte , B As Byte , C As Dword , D As Byte , R As Byte , Z As Byte , Q As Byte , F As Byte , _
     G As Dword , E As Byte , K As Dword , X As Byte , L As Dword,
    
     Declare Sub Main
     Declare Sub Ese
     Declare Sub Firest
     Declare Sub Check
     Declare Sub Ok
     Declare Sub Wrong
    
    Portc.0 = 1
    
    Readeeprom K , 1
    
    C = 0
    G = 0
    X = 0
    E = 0
    
    Main:
    
    Reset Portb.7
    Set Portb.6
    
    A = Getkbd()
    If Pinc.0 = 0 Then Goto Firest
    If A = 16 Then Goto Main
    Ese:
    D = Getkbd()
    If D <> 16 Then Goto Ese
    B = Lookup(a , Keydata)
    
    Select Case B
    '===============================================================================
    Case 0 To 9:
    
    Incr X
    C = C * 10
    C = C + B
    
    Sound Portb.3 , 100 , 25
    
    Goto Main
    '===============================================================================
    Case 23:
     Readeeprom K , 1
    
      L = K
    If C = L Then Goto Ok
    
    If X < 6 Then Goto Wrong
    
    If C <> L Then Goto Wrong
    
    Case Else
    Goto Main
    '===============================================================================
    End Select
    
    End
    
    '===============================================================================
    Ok:
    Sound Portb.3 , 100 , 20
    Sound Portb.3 , 100 , 40
    Sound Portb.3 , 100 , 60
    Sound Portb.3 , 100 , 85
    Sound Portb.3 , 100 , 100
    Sound Portb.3 , 100 , 125
    Sound Portb.3 , 100 , 150
    Sound Portb.3 , 100 , 180
    Sound Portb.3 , 100 , 200
    
    Set Portb.4
    Waitms 500
    Reset Portb.4
    
    C = 0
    G = 0
    X = 0
    E = 0
    L = 0
    K = 0
    Goto Main
    '===============================================================================
    Wrong:
    
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    C = 0
    G = 0
    X = 0
    E = 0
    L = 0
    K = 0
    
    Goto Main
    '=======================================================
    Firest:
    Reset Portb.6
    Set Portb.7
    
    Z = Getkbd()
    If Z = 16 Then Goto Firest
    Check:
    R = Getkbd()
    If R <> 16 Then Goto Check
    F = Lookup(z , Keydata)
    Select Case F
    '===============================================================================
    Case 0 To 9:
    
    Incr E
    G = G * 10
    G = G + F
    
    Sound Portb.3 , 100 , 30
    If E > 6 Then
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
     End If
       Goto Firest
    
    
     Goto Firest
    
    Case 23:
    
    If E < 6 Then
    
     Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
    
    Goto Firest
    End If
    
      If E > 6 Then
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
       Goto Firest
     End If
    If E = 6 Then
     K = G
    Sound Portb.3 , 100 , 20
    Sound Portb.3 , 100 , 40
    Sound Portb.3 , 100 , 60
    Writeeeprom K , 1
      Readeeprom K , 1
      Reset Portb.7
    Goto Main
    
    
    End If
    End Select
    
     '========================================================================
    
    '===============================================================================
    Keydata:
    Data , 7 , 8 , 9 , 20 , 4 , 5 , 6 , 21 , 1 , 2 , 3 , 22 , 23 , 0 , 24 , 25

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

    سلام.دوست‏ ‏عزیز‏ ‏این‏ ‏طور‏ ‏که‏ پیداست‏ ‏فکر‏ ‏کنم‏ ‏از‏ ‏متغیری‏ ‏که‏ ‏از‏ ‏نوع‏ ‏eeprom تعریف‏ ‏میکنی‏‏ ‏.‏ ‏اونو‏ ‏یک‏ ‏بار‏ ‏سفرش‏ ‏کن‏‏ ‏و‏ ‏حافظه‏ ‏‏eeprom‏ ‏پاک‏ ‏کن‏ ‏و‏ ‏حالا‏ ‏یکه‏ ‏بار‏ ‏دیگه‏ ‏میکرو‏ ‏پروگرام‏ ‏کن.هم‏ ‏flash , eeprom .
    بعد‏ ‏اگه‏ ‏دوباره‏ ‏مشکل‏ ‏پیش‏ ‏ا‏ومد‏ ‏اشکال‏ ‏از‏ ‏تو‏ ‏برنامته.

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Mar 2011
    نوشته ها
    23
    تشکر
    9
    تشکر شده 6 بار در 5 پست

    پیش فرض

    میشه بیشتر توضیح بدید
    از یک استاد دیگه ایی پرسیدم میگفت باید ساب هات اند داشته باشه و حتما برنامه رو توی do
    loop بنویسی نظر شما چیه آیا این بنامه مشکل داره

  5. #4
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sajadgreat نمایش پست ها
    میشه بیشتر توضیح بدید
    از یک استاد دیگه ایی پرسیدم میگفت باید ساب هات اند داشته باشه و حتما برنامه رو توی do
    loop بنویسی نظر شما چیه آیا این بنامه مشکل داره
    سلام.دوست‏ ‏عزیز‏ ‏مگه‏ ‏اول‏ ‏کار‏ ‏برنامت‏ ‏درست‏ ‏کار‏ ‏نمی‏ ‏کرد؟
    شما‏ ‏توضیحی‏ ‏جلوی‏ ‏بعضی‏ ‏از‏ ‏دستورات ‏ ‏اصلی‏ ‏و‏‏ ‏همچنین‏ ‏ساب‏ ‏روتین‏ ‏ها‏ ‏‏ ‏قرار‏ ‏دهید‏ ‏‏بعد‏ ‏اون‏ ‏موقع‏ ‏می‏ ‏تونم‏ ‏کامل‏ ‏راهنماییت‏ ‏کنم.
    ویرایش توسط wantedboy : 26-04-2013 در ساعت 01:00

  6. #5
    کاربر علاقه مند esmaeil57 آواتار ها
    تاریخ عضویت
    Nov 2008
    نوشته ها
    66
    تشکر
    46
    تشکر شده 14 بار در 7 پست

    پیش فرض

    نقل قول نوشته اصلی توسط wantedboy نمایش پست ها
    سلام.دوست‏ ‏عزیز‏ ‏مگه‏ ‏اول‏ ‏کار‏ ‏برنامت‏ ‏درست‏ ‏کار‏ ‏نمی‏ ‏کرد؟
    شما‏ ‏توضیحی‏ ‏جلوی‏ ‏بعضی‏ ‏از‏ ‏دستورات ‏ ‏اصلی‏ ‏و‏‏ ‏همچنین‏ ‏ساب‏ ‏روتین‏ ‏ها‏ ‏‏ ‏قرار‏ ‏دهید‏ ‏‏بعد‏ ‏اون‏ ‏موقع‏ ‏می‏ ‏تونم‏ ‏کامل‏ ‏راهنماییت‏ ‏کنم.
    نقل قول نوشته اصلی توسط sajadgreat نمایش پست ها
    سلام ئوستان عزیز من یه برناه قفل رمز دیجیتال نوشتم که به وسیله دو ال ایی دی قسمت رمز دهی و رمز گیریش رو تقسیم کردم اولین بار ه پروگرامش کردم خوب کار میکرد ولی بعد از دو سه ساعت ال ایی دی مربوط به رمز گیی شروع بع چشمک زدن کرد حالا هم که دیگه از اول چشمک میزنه نمیدونم چیکارش کنم لطفا راهنماییم کنید این برنامش
    کد:
    '$sim
    $regfile = "m8def.dat"
    $crystal = 4000000
    Config Portb = Output
    Config Portc = Input
    Config Kbd = Portd , Debounce = 100 , Delay = 5
    '===============================================================================
    Dim A As Byte , B As Byte , C As Dword , D As Byte , R As Byte , Z As Byte , Q As Byte , F As Byte , _
     G As Dword , E As Byte , K As Dword , X As Byte , L As Dword,
    
     Declare Sub Main
     Declare Sub Ese
     Declare Sub Firest
     Declare Sub Check
     Declare Sub Ok
     Declare Sub Wrong
    
    Portc.0 = 1
    
    Readeeprom K , 1
    
    C = 0
    G = 0
    X = 0
    E = 0
    
    Main:
    
    Reset Portb.7
    Set Portb.6
    
    A = Getkbd()
    If Pinc.0 = 0 Then Goto Firest
    If A = 16 Then Goto Main
    Ese:
    D = Getkbd()
    If D <> 16 Then Goto Ese
    B = Lookup(a , Keydata)
    
    Select Case B
    '===============================================================================
    Case 0 To 9:
    
    Incr X
    C = C * 10
    C = C + B
    
    Sound Portb.3 , 100 , 25
    
    Goto Main
    '===============================================================================
    Case 23:
     Readeeprom K , 1
    
      L = K
    If C = L Then Goto Ok
    
    If X < 6 Then Goto Wrong
    
    If C <> L Then Goto Wrong
    
    Case Else
    Goto Main
    '===============================================================================
    End Select
    
    End
    
    '===============================================================================
    Ok:
    Sound Portb.3 , 100 , 20
    Sound Portb.3 , 100 , 40
    Sound Portb.3 , 100 , 60
    Sound Portb.3 , 100 , 85
    Sound Portb.3 , 100 , 100
    Sound Portb.3 , 100 , 125
    Sound Portb.3 , 100 , 150
    Sound Portb.3 , 100 , 180
    Sound Portb.3 , 100 , 200
    
    Set Portb.4
    Waitms 500
    Reset Portb.4
    
    C = 0
    G = 0
    X = 0
    E = 0
    L = 0
    K = 0
    Goto Main
    '===============================================================================
    Wrong:
    
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    C = 0
    G = 0
    X = 0
    E = 0
    L = 0
    K = 0
    
    Goto Main
    '=======================================================
    Firest:
    Reset Portb.6
    Set Portb.7
    
    Z = Getkbd()
    If Z = 16 Then Goto Firest
    Check:
    R = Getkbd()
    If R <> 16 Then Goto Check
    F = Lookup(z , Keydata)
    Select Case F
    '===============================================================================
    Case 0 To 9:
    
    Incr E
    G = G * 10
    G = G + F
    
    Sound Portb.3 , 100 , 30
    If E > 6 Then
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
     End If
       Goto Firest
    
    
     Goto Firest
    
    Case 23:
    
    If E < 6 Then
    
     Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
    
    Goto Firest
    End If
    
      If E > 6 Then
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    Sound Portb.3 , 200 , 40
    Sound Portb.3 , 200 , 20
    
     E = 0
     G = 0
       Goto Firest
     End If
    If E = 6 Then
     K = G
    Sound Portb.3 , 100 , 20
    Sound Portb.3 , 100 , 40
    Sound Portb.3 , 100 , 60
    Writeeeprom K , 1
      Readeeprom K , 1
      Reset Portb.7
    Goto Main
    
    
    End If
    End Select
    
     '========================================================================
    
    
    '===============================================================================
    Keydata:
    Data , 7 , 8 , 9 , 20 , 4 , 5 , 6 , 21 , 1 , 2 , 3 , 22 , 23 , 0 , 24 , 25

    سلام دوست گرامی
    مشکل شما در نحوه تعریف پایه های ورودی و خروجیتونه. در ظاهر درسته و به هر استادی هم بگی میگن خوبه! توی سیمولاتور هم خوب کار میکنه!!! ولی در عمل قضیه خیلی فرق میکنه.
    شما باید تک تک پایه های ورودی و خروجی رو به صورت جداگانه تعریف کنید.
    بعنوان مثال اگه ال ای دی رو portb.1 تعریف کردین باید بنویسین :
    Config portb.1=output
    در مورد پورت C هم حتما باید موقع پروگرام Jtag رو Disable کنید. نکته دیگر هم اینکه در مورد مقاومتهای پول آپ یا پول داون حتما سعی کنید از مقاوت خارجی استفاده کنید.
    موفق باشین
    ویرایش توسط esmaeil57 : 28-04-2013 در ساعت 12:41

  7. #6
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

    سلام دوست گرامی
    مشکل شما در نحوه تعریف پایه های ورودی و خروجیتونه. در ظاهر درسته و به هر استادی هم بگی میگن خوبه! توی سیمولاتور هم خوب کار میکنه!!! ولی در عمل قضیه خیلی فرق میکنه.
    شما باید تک تک پایه های ورودی و خروجی رو به صورت جداگانه تعریف کنید.
    بعنوان مثال اگه ال ای دی رو portb.1 تعریف کردین باید بنویسین :
    Config portb.1=output
    در مورد پورت c هم حتما باید موقع پروگرام jtag رو disable کنید.
    موفق باشین
    دوست‏ ‏عزیز‏ ‏برای‏ ‏تعریف‏ ‏پورت‏ ‏به‏ ‏عنوان‏ ‏خروجی‏ ‏فرقی‏ ‏نداره‏ ‏و‏ ‏هردو‏ ‏صورت‏ ‏جواب‏ ‏میده.
    در‏ ‏مورد‏ ‏دومی‏ ‏هم‏‏‏ ‏حق‏ ‏با‏ ‏شماست.
    ولی‏ ‏فکر‏ ‏کنم‏ ‏اشکال‏ ‏داخل‏ ‏برنامست.

  8. #7
    کاربر علاقه مند
    تاریخ عضویت
    Mar 2011
    نوشته ها
    23
    تشکر
    9
    تشکر شده 6 بار در 5 پست

    پیش فرض

    من در ندار هم خیلی ساده عمل کردم آیا قرار ندادن دیود بین ترانزیستورو و میگرو همچنین دیگر عناصر مدار و میکرو باعث این اتفاق میشه و به میکرو آسیب میرسه این هم مداری که من بستم به ن ظرتون مشکلی توش هست
    فايل هاي پيوست شده فايل هاي پيوست شده

موضوعات مشابه

  1. آشنایی با دستگاه های مبدل فرکانس یا afg ها
    توسط mamad...56 در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 4
    آخرين نوشته: 18-12-2013, 01:44
  2. راهنمایی برای استفاده از وقفه
    توسط sniper-70 در انجمن AVR
    پاسخ: 4
    آخرين نوشته: 06-01-2013, 13:46
  3. راهنمایی میخواستم
    توسط nima_elc در انجمن مباحث کلی ARM
    پاسخ: 4
    آخرين نوشته: 30-06-2012, 23:33
  4. بازتاب جهانی خبر استقرار ماهواره نوید علم و صنعت در مدار زمین
    توسط رهتازالکترونیک در انجمن گفت و گوي آزاد
    پاسخ: 24
    آخرين نوشته: 06-02-2012, 21:54

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •