اطلاعیه

Collapse
No announcement yet.

تفکیک اعداد در بیسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تفکیک اعداد در بیسکام

    با سلام خدمت دوستان عزیز
    من یک عدد مثلاً2563 رو تو بیسکام میخوام تفکیک کنم و جدا جدا روی سون سگمنت نشونش بدم مثلاً یکبار 2 و بعد 5 و بعد 6 و بعد 3 ممنون میشم کمکم کنید :biggrin:

    راستی کسی تابع تبدیل میلادی به شمسی برای ds1307 نداره؟

    از همگی ممنون

    #2
    پاسخ : تفکیک اعداد در بیسکام

    سلام.
    میتونی از این دستور استفاده کنی:


    a=2563
    for i=1 to 4
    xi=a mod 10
    a=a/10
    next


    حالا xi ها رو روی سگمنت نمایش بده

    دیدگاه


      #3
      پاسخ : تفکیک اعداد در بیسکام

      سلام . ardavanzzz عزیز از اینکه وسط پستت میام معذرت میخام . بیکار بودم گفتم یه جوابی هم من بدم .
      آقای امیر خان؛ برای این کار در صورتی که می دونی چند رقمیه عددت همون روشی که دوستمون گفتن عالیه .
      ولی اگر نمی دونی یه حلقه ی بی نهایت تشکیل بده و توش اینهارو بنویس :
      مثلا a = 52142

      Do
      if a > 10 then
      b = a mod 10
      a = a/10
      elseif a<10 then
      b =a
      'break or goto
      end if
      'Inja b ro roo 7seg neshoon bede
      loop
      اگرهم کار کردن با سون سگمنتو خواستی تو سایته زیر هست .
      و همین تکه کد که خواسته بودی هم سایته پایین هست


      براي داشتن چيزهايي که تا کنون نداشته ام - بايد کسي باشم که تا کنون نبوده ام .
      http://www.elec4u.ir

      دیدگاه


        #4
        پاسخ : تفکیک اعداد در بیسکام

        از جوابهاتون خیلی خیلی ممنون :applause:

        حالا کسی تابع تبدیل میلادی به شمسی رو در بیسکام نداره؟

        دیدگاه


          #5
          پاسخ : تفکیک اعداد در بیسکام

          سلام.یه سر به این لینک بزن

          http://www.eca.ir/forum2/index.php?topic=17622.msg86107#msg86107

          دیدگاه


            #6
            پاسخ : تفکیک اعداد در بیسکام

            من برنامه رو آزمایش کردم ولی بیسکام خطا میگرفت oo: لطفاً میشه فایل کاملشو با پسوند .bas بذارید؟

            دیدگاه


              #7
              پاسخ : تفکیک اعداد در بیسکام

              شما متغییر هاتو تعریف نکردی .

              $regfile = "M16def.dat"
              $crystal = 8000000

              $hwstack = 32 ' default use 32 for the hardware stack

              $swstack = 10 ' default use 10 for the SW stack

              $framesize = 40 ' default use 40 for the frame space


              Dim A As Word
              Dim I As Byte
              Dim Xi As Byte
              a=2563
              for i=1 to 4
              xi=a mod 10
              a=a/10
              Next

              دیدگاه


                #8
                پاسخ : تفکیک اعداد در بیسکام

                آقا مجید حرف شما کاملاً درسته و ولی من منظورم تفکیک اعداد نبود چون اونو که به جواب رسوندم :nerd:
                منظور من در تبدبل تاریخ میلادی به شمسی بود این لینکی که ardavanzzz عزیز داده بودند برنامه رو با بیسکام باز کردم و کامل متغیر ها و نام میکرو و کریستال و پایان و هرچی که به نظرم میرسید گذاشتم به جواب نرسیدم oo:که بیسکام خطا میگرفت اگه لطف کنید فایل تبدیل رو برام بذارید ممنون میشم :cry:

                به حر حال دست گلتون درد نکنه که جواب میدید :applause:

                دیدگاه


                  #9
                  پاسخ : تفکیک اعداد در بیسکام

                  سلام.
                  زیر برنامه هارو هم تعریف کردی؟
                  فکر نکنم مشکلی داشته باشه! :redface:

                  دیدگاه


                    #10
                    پاسخ : تفکیک اعداد در بیسکام

                    منظورتون کدوم زیر برنامه هاست؟
                    Select_m؟ oo:
                    ...؟ oo:
                    نه من تعریف نکردم :eek:

                    دیدگاه


                      #11
                      پاسخ : تفکیک اعداد در بیسکام

                      منظورم Jalili_to_gregorian بود.

                      دیدگاه


                        #12
                        پاسخ : تفکیک اعداد در بیسکام

                        بله اونو تعرف کردم :angry:
                        اگه میشه لطفاً فایل کامل با تعریف آی سی ، کریستال و... با فرمت .bas بذارد ممنون میشم
                        تشکر

                        دیدگاه


                          #13
                          پاسخ : تفکیک اعداد در بیسکام

                          سلام.اینم برنامه بدون error :



                          $regfile = "m32def.dat"
                          $crystal=4000000
                          Dim Jy As Word
                          Dim Jm As Byte
                          Dim Jd As Byte

                          Dim Gy As Word
                          Dim Gm As Byte
                          Dim Gd As Byte

                          Dim Gm_array(12) As Word

                          Dim Gmonth_a(12) As Byte
                          Declare Sub Jalili_to_gregorian
                          Gmonth_a(1) = 31
                          Gmonth_a(2) = 28
                          Gmonth_a(3) = 31
                          Gmonth_a(4) = 30
                          Gmonth_a(5) = 31
                          Gmonth_a(6) = 30
                          Gmonth_a(7) = 31
                          Gmonth_a(8) = 31
                          Gmonth_a(9) = 30
                          Gmonth_a(10) = 31
                          Gmonth_a(11) = 30
                          Gmonth_a(12) = 31


                          '********************************** Jalili_to_gregorian
                          Sub Jalili_to_gregorian
                          Gm_array(1) = 287
                          Gm_array(2) = 318
                          Gm_array(3) = 346
                          Gm_array(4) = 12
                          Gm_array(5) = 42
                          Gm_array(6) = 73
                          Gm_array(7) = 103
                          Gm_array(8) = 134
                          Gm_array(9) = 165
                          Gm_array(10) = 195
                          Gm_array(11) = 226
                          Gm_array(12) = 256
                          Local Temp1 As Integer
                          Local Temp2 As Integer
                          Local Temp3 As Integer
                          Local Temp4 As Integer
                          Local Gyp As Word

                          Local Z As Integer
                          Local Mid_day As Integer
                          Local Mid_cabise As Single
                          Local Mid_2 As Word
                          Local Cabise As Byte
                          Local Total_day_of_year As Integer
                          Local Total_day_g As Integer
                          Local Mid_3 As Word
                          Local Cabisemiladi As Byte
                          Local Cabise_p As Byte

                          If Jm < 7 Then
                          Total_day_of_year = Jm - 1
                          Total_day_of_year = Total_day_of_year * 31
                          Total_day_of_year = Total_day_of_year + Jd
                          Else
                          Total_day_of_year = Jm - 7
                          Total_day_of_year = Total_day_of_year * 30
                          Total_day_of_year = 186 + Total_day_of_year
                          Total_day_of_year = Total_day_of_year + Jd
                          End If


                          Mid_cabise = Jy / 4
                          Mid_2 = Mid_cabise * 100
                          Mid_2 = Mid_2 Mod 100
                          If Mid_2 = 75 Then
                          Cabise = 1
                          Mid_3 = 287

                          Else
                          Cabise = 0
                          For Z = 1 To 12
                          Gm_array(z) = Gm_array(z) - 1
                          Next

                          Mid_3 = 286
                          End If

                          If Total_day_of_year =< Mid_3 Then
                          Gy = Jy + 621
                          Else
                          Gy = Jy + 622
                          End If

                          Temp1 = Gy Mod 4
                          Temp2 = Gy Mod 100
                          Temp3 = Gy Mod 400
                          Temp4 = Temp1 And Temp2
                          If Temp4 <> 0 Or Temp3 = 0 Then

                          Gmonth_a(2) = 28
                          Cabisemiladi = 0
                          Else
                          Gmonth_a(2) = 29
                          Cabisemiladi = 1
                          End If



                          If Cabise = 1 Or Cabisemiladi = 1 Then
                          Gm_array(3) = 346
                          End If

                          If Gm_array(3) < Total_day_of_year Or Total_day_of_year =< Gm_array(4) Then
                          Z = 3
                          Goto Select_m

                          End If
                          If Gm_array(12) < Total_day_of_year And Total_day_of_year =< Gm_array(1) Then
                          Z = 12
                          Goto Select_m

                          End If
                          For Z = 1 To 11 Step 1

                          If Z = 3 Then Incr Z
                          If Gm_array(z) < Total_day_of_year And Total_day_of_year =< Gm_array(z + 1) Then Goto Select_m
                          Next


                          Select_m:
                          Gm = Z
                          Temp4 = Gm - 1
                          If Temp4 > 0 Then
                          For Z = 1 To Temp4
                          Total_day_g = Total_day_g + Gmonth_a(z)
                          Next
                          End If


                          If Total_day_of_year < Mid_3 Or Total_day_of_year = Mid_3 Then
                          Mid_day = Total_day_of_year + 79
                          Else
                          Mid_day = Total_day_of_year - Mid_3
                          End If
                          Gd = Mid_day - Total_day_g
                          Gy = Gy - 2000

                          End Sub
                          End 'end program

                          دیدگاه

                          لطفا صبر کنید...
                          X