با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ماشین حسابl
#1
سلام دوستان
من یه ماشین حساب ساختم که الان یه مشکل داره اینکه اطلاعات میکرو رو نمی تونه بخونه به این صورت که lcd روشن میشه ولی چیزی نشون نمیده
اینم مدار تو پروتئوس:
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

اینم برنامه اش:
کد:
'+++++++++++++++++++++++++ shoroe"e barname ++++++++++++++++++++++++++++++++++++
$regfile = "m16def.dat"
$crystal = 1000000
'+++++++++++++++++++++++++ tarif LCD +++++++++++++++++++++++++++++++++++++++++++
Config Lcdpin = Pin Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , E = Pinb.0 , Rs = Pinb.1
Config Lcd = 16 * 2
'+++++++++++++++++++++++++ moshakhasat +++++++++++++++++++++++++++++++++++++++++
Lcd " bename khoda "
Locate 2 , 1
Lcd "ehsan shahriary"
Wait 3
Cls
Locate 1 , 3
Lcd "emam khomini"
Locate 2 , 6
Lcd "qaen"
Wait 3
Cls
'+++++++++++++++++++++++++ tarif motaghaier ++++++++++++++++++++++++++++++++++++
Config Kbd = Portc , Debounce = 50 , Delay = 50

'VAR Calculator Advance
Config Portd.0 = Input
Sh Alias Pind.0
Dim Shft As Bit
Dim Op3 As Byte
'Calculator Advance

   Dim Key As Byte , A As Byte , B As Byte , S As Bit , N As Bit
   Dim Op As String * 1 , Op2 As String * 1
   Dim K As Byte , Ans As Single , F1 As Single , F2 As Single , F3 As Single
   Dim In1(8) As Byte , I1 As Byte
   Dim In2(8) As Byte , I2 As Byte , Stn(9) As Long
Stn(1) = 1 : Stn(2) = 10 : Stn(3) = 100 : Stn(4) = 1000 : Stn(5) = 10000
Stn(6) = 100000 : Stn(7) = 1000000 : Stn(8) = 10000000

'+++++++++++++++++++++++ mani program ++++++++++++++++++++++++++++++++++++++++++

Cursor Noblink
Start_new:
  Cursor Off
  I1 = 0 : I2 = 0 : S = 0 : N = 0 : Shft = 0
  Cls : Locate 2 , 1 : Lcd "0"

  Do
     Op = ""
     Gosub Set_number1
     If S = 1 Then Goto Start_new
     If Shft = 1 Then Gosub Cal_fun
     Cls
     Gosub Set_number2
     If S = 1 Then Goto Start_new
     Gosub Functions
     Cls
     Locate 1 , 1 : Lcd "ANS="
     Locate 2 , 1 : Lcd Ans

   Do
   K = Getkbd()
   Loop Until K <> 16
   Goto Start_new
  Loop

End                                              'end program

'+++++++++++++++++++++++ Function SIN COS SQR ... ++++++++++++++++++++++++++++++
Cal_fun:
        Cls
                    Lcd "1=SIN2=COS3=TAN"
        Locate 2 , 1 : Lcd "4=LOG5=ATN6=SQR"
        Shft = 0 : I1 = 0 : I2 = 0 : S = 0 : N = 0
        Gosub Keypad : Op3 = Key
        Cls
        Gosub Set_number1

    Select Case Op3
        Case 1:
          Ans = Sin(f1)
          Cls : Lcd "SIN " ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans

        Case 2:
          Ans = Cos(f1)
          Cls : Lcd "COS " ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans
        Case 3:
          Ans = Tan(f1)
          Cls : Lcd "TAN " ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans
        Case 4:
          Ans = Log(f1)
          Cls : Lcd "LOG " ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans
        Case 5:
          Ans = Atn(f1)
          Cls : Lcd "ATN " ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans
        Case 6:
          Ans = Sqr(f1)
          Cls : Lcd "SQR" ; F1 ; " ="
          Locate 2 , 1 : Lcd Ans
    End Select

   Do
   K = Getkbd()
   Loop Until K <> 16
   Goto Start_new

Return

'+++++++++++++++++++++++ 4 Function ++++++++++++++++++++++++++++++++++++++++++++
Functions:
  If Op2 = "+" Then Ans = F1 + F2
  If Op2 = "-" Then Ans = F1 - F2
  If Op2 = "*" Then Ans = F1 * F2
  If Op2 = "/" Then Ans = F1 / F2
Return

'+++++++++++++++++++++++ Functions +++++++++++++++++++++++++++++++++++++++++++++
Keypad:
  Do
    K = Getkbd()
     If Sh = 0 Then
      Shft = 1 : Waitms 100
      Return
     End If
    Select Case K
        Case 7 : Key = 0
        Case 2 : Key = 7
        Case 6 : Key = 8
        Case 10 : Key = 9
        Case 1 : Key = 4
        Case 5 : Key = 5
        Case 9 : Key = 6
        Case 0 : Key = 1
        Case 4 : Key = 2
        Case 8 : Key = 3
        Case 3 :
        Op = "c"
        Case 11 :
        Op = "="
        Case 12 :
        Op = "+"
        Case 13 :
        Op = "-"
        Case 14 :
        Op = "*"
        Case 15 :
        Op = "/"
    End Select
  Loop Until K <> 16

   Do
   K = Getkbd()
   Loop Until K = 16
   K = 0

  Return

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set_number1:
I1 = 0 : F3 = 0 : F1 = 0
Locate 1 , 1
   Do
     Gosub Keypad
       If Shft = 1 Then Return
      If Ans = 0 And Op = "-" And N = 0 Then
       N = 1 : Op = ""
       Locate 1 , 1 : Lcd "-"
       Goto End_action
      End If
           If I1 = 0 Then
            If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Then
            F1 = Ans
            Goto No_c
            End If
           End If
       If Op = "c" Then
       S = 1
       Cls
       Goto No_c
       End If

       If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Or Op = "=" Then Goto Lable1
     If I1 < 8 Then
        Incr I1
        In1(i1) = Key
        Lcd In1(i1)
     End If
End_action:
   Loop

Lable1:
      B = I1
        For A = 1 To B Step 1
          F3 = In1(a) * Stn(i1)
          F1 = F1 + F3
          Decr I1
        Next
        If N = 1 Then F1 = F1 * -1
        N = 0

No_c:
Op2 = Op
If Op = "=" Then Op2 = ""
Return

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set_number2:
I2 = 0 : F3 = 0 : F2 = 0 : Op = ""
Locate 1 , 1
  Lcd F1 ; Op2
   Do
     Gosub Keypad
       If Op = "c" Then
       S = 1
       Cls
       Goto No_c2
       End If

       If Op = "+" Or Op = "-" Or Op = "/" Or Op = "*" Or Op = "=" Then Goto Lable2
     If I2 < 8 Then
        Incr I2
        In2(i2) = Key
        Lcd In2(i2)
     End If

   Loop

Lable2:
      B = I2
        For A = 1 To B Step 1
          F3 = In2(a) * Stn(i2)
          F2 = F2 + F3
          Decr I2
        Next
No_c2:
Return
اساتید یه نگاه بندازن ببینن برای اینکه کدار عملا جواب بده باید چیکار کنم چون تو پرتئوس جواب میده ؟؟؟؟
اینم بگم که من دقیقا همین طوری که تو پرتطوس هستش بستم
پایه های 10 و 11 و 30 و 31 و 32 میکرو رو وصل کردم (تغذیه)
پایه ای کیپد رو با مقاومتی که گفته وصل کردم
*****عيب جامعه اين است که همه مي خواند آدم مهمي باشند ولي هيچ کس نمي خواهد فرد مفيدي باشد.*****
پاسخ
#2
من برنامه رو نگاه نکردم.ولی چون خودم یه ماشین حساب بستم و جواب نگرفتم .البته کی پد رو خودم درست کرده بودم به همین دلیل لیحیم کاریم زیاد شده بود .حالا چرا جواب نگرفتم؟یه تیکه خیلی خیلی کوچیک لحیم که با چشم به سختی دیده میشد اتصال بین دوتا پایه میشد.حتی با تست دیود مولتی متر هم نشون نمیداد.اون یه تیکه لحیم رو ورداشتم و مدار مثل هلو کار میکرد
پاسخ
#3
لینک فایل پروتیوس خرابه. لطفا دوباره بگذار
پاسخ
#4
لینکش مشکل نداره دوباره امتحان کن و یا از نرم افزار های دانلود استفاده کن.

دوستان لطف کنن بگن برای راه اندازی میکروش چیکار کنم کدوم پایه ها رو بایس وصل کرد . ببینم درست کار کردم یا نه؟
مرسی
*****عيب جامعه اين است که همه مي خواند آدم مهمي باشند ولي هيچ کس نمي خواهد فرد مفيدي باشد.*****
پاسخ
#5
مشکلم حل شد :
پایه 3 ال سی دی رو بزمین وصل نکرده بودم.
مرسی از همتون
*****عيب جامعه اين است که همه مي خواند آدم مهمي باشند ولي هيچ کس نمي خواهد فرد مفيدي باشد.*****
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: