اطلاعیه

Collapse
No announcement yet.

سوال درباره بسکام

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

    سوال درباره بسکام

    یه سوالی درباره بسکام داشتم:چطوری میشه در بسکام یه برنامه نوشت با استفاده از میکرو mega32 که 4 تا عدد سه رقمی را از صفحه کلید دریافت کنه و میانگین اونها را روی lcd نشون بده.

    #2
    پاسخ : سوال درباره بسکام

    این برنامه یک مثاله که یک عدد سه رقمی از صفحه کلید رو میگیره و رو lcd نمایش میده
    کد:
    $regfile = "m32def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pb.0 , Db5 = Pb.1 , Db6 = Pb.2 , Db7 = _
     Pb.3 , E = Pb.5 , Rs = Pb.4
    Config Kbd = Portd , Debounce = 50 , Delay = 100
    
    dim a as byte
    dim b as word
    dim i as byte
    Display On : Cls
    
    For I = 1 To 3
    Main:
    A = Getkbd()
    If A > 15 Then Goto Main
    B = B * 10
    B = B + A
    Next
    
    Cls : Lcd "B =" ; B
    
    Do : Loop
    
    End
    شما همین رو برای چهار عدد تعمیم بده و بعد از اون چهار عدد میانگین بگیر و نمایش بده
    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org

    دیدگاه


      #3
      پاسخ : سوال درباره بسکام

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

      دیدگاه


        #4
        پاسخ : سوال درباره بسکام

        نوشته اصلی توسط velakat
        سلام
        این برنامه با بسکام نوشته شده ؟!!!!
        بله با بیسیک هست
        من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
        آلبرت اینشتین
        منبع: http://fa.wikiquote.org

        دیدگاه


          #5
          پاسخ : سوال درباره بسکام

          من اینطوری نوشتم ولی ارور میده.نمیدونم مشکل از کجاست

          $regfile = "m32def.dat"
          $crystal = 8000000
          Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7 , E = Pinb.3 , Rs = Pinb.2
          Config Lcd = 16 * 2
          Config Kbd = Portc , Debounce = 50 , Delay = 100
          Dim A(3) As Byte
          Dim I As Byte
          Dim V(4) As Integer
          Dim J As Byte
          Dim Ave As Integer
          J = 0
          Do
          J = J + 1

          For I = 1 To 3

          A(i) = Getkbd()

          Next

          V(j) = A(1) * 100 + A(2) * 10 + A(3)


          Loop Until J = 4

          Ave =(v(1) + V(2) + V(3) + V(4) ) / 4


          Lcd "ave=" ; Ave

          End

          مشکل از کجاست ؟

          دیدگاه


            #6
            پاسخ : سوال درباره بسکام

            این قسمت کلا اشتباه هست چون با این روش نمیشه 3 رقم رو گرفت
            کد:
            For I = 1 To 3
            
                   A(i) = Getkbd()
            
                  Next
            لطفا به برنامه مثال دقت کنید

            ضمنا برای انجام محاسبات سعی کنید هر عمل رو بصورت جداگانه انجام بدین یعنی مثلا اگر می خواید 2 را به توان 3 برسونید و تقسیم بر 5 کنید اینطوری عمل کنید :
            a=2^3
            a=a/5
            من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
            آلبرت اینشتین
            منبع: http://fa.wikiquote.org

            دیدگاه


              #7
              پاسخ : سوال درباره بسکام

              نوشته اصلی توسط silicon0
              این قسمت کلا اشتباه هست چون با این روش نمیشه 3 رقم رو گرفت
              کد:
              For I = 1 To 3
              
                     A(i) = Getkbd()
              
                    Next
              لطفا به برنامه مثال دقت کنید

              ضمنا برای انجام محاسبات سعی کنید هر عمل رو بصورت جداگانه انجام بدین یعنی مثلا اگر می خواید 2 را به توان 3 برسونید و تقسیم بر 5 کنید اینطوری عمل کنید :
              a=2^3
              a=a/5
              من متوجه نشدم برنامه ای که نوشتین چطوریه
              نفهمیدم چرا این کارو کردین : B = B * 10 چون تا این قسمت برنامه b اصلا مقداری نداره که ضرب در 10 بشه
              یه مشکل دیگه هم اینه که نفهمیدم چطور عدد 3 رقمی را ساختین باید رقم اول در 100 ضرب بشه و رقم دوم در 10 و در نهایت با رقم سوم جمع بشه مثل این : V(j) = A(1) * 100 + A(2) * 10 + A(3)
              ولی تو این برنامه این کارو نکردین چطوری با B = B * 10 و B = B + A عدد 3 رقمی را ساختین ؟

              دیدگاه


                #8
                پاسخ : سوال درباره بسکام

                نوشته اصلی توسط m.riahi
                من متوجه نشدم برنامه ای که نوشتین چطوریه
                نفهمیدم چرا این کارو کردین : B = B * 10 چون تا این قسمت برنامه b اصلا مقداری نداره که ضرب در 10 بشه
                یه مشکل دیگه هم اینه که نفهمیدم چطور عدد 3 رقمی را ساختین باید رقم اول در 100 ضرب بشه و رقم دوم در 10 و در نهایت با رقم سوم جمع بشه مثل این : V(j) = A(1) * 100 + A(2) * 10 + A(3)
                ولی تو این برنامه این کارو نکردین چطوری با B = B * 10 و B = B + A عدد 3 رقمی را ساختین ؟
                شما فرض کن دو تا متغیر داری a و b
                حالا رابطه زیر را 3 بار با a های مختلف تکرار کن
                b=b*10
                b=b+a
                نتیجه یک عدد 3 رقمی هست که مورد نظر ماست دلیلش هم اینه که شما کافیه
                هر رقمی که میگیری اونو در 10 ضرب کنی و به اضافه رقم بعدی کنی اینطوری هر عددی رو میتونی از ورودی بگیری ( خودتون عدد بدین و تست کنین)

                و اینکه برای اولین عدد b برابر a میشه چون باید همین طور بشه وگرنه محاسبه اشتباه در میاد به همین دلیل b=b*10 رو اول قرار میدیم
                من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                آلبرت اینشتین
                منبع: http://fa.wikiquote.org

                دیدگاه


                  #9
                  پاسخ : سوال درباره بسکام

                  نوشته اصلی توسط silicon0
                  شما فرض کن دو تا متغیر داری a و b
                  حالا رابطه زیر را 3 بار با a های مختلف تکرار کن
                  b=b*10
                  b=b+a
                  نتیجه یک عدد 3 رقمی هست که مورد نظر ماست دلیلش هم اینه که شما کافیه
                  هر رقمی که میگیری اونو در 10 ضرب کنی و به اضافه رقم بعدی کنی اینطوری هر عددی رو میتونی از ورودی بگیری ( خودتون عدد بدین و تست کنین)

                  و اینکه برای اولین عدد b برابر a میشه چون باید همین طور بشه وگرنه محاسبه اشتباه در میاد به همین دلیل b=b*10 رو اول قرار میدیم
                  ممنون از جوابتون ، مشکلمو فهمیدم.

                  حالا برای 4 تا این طوری نوشتم . درست نوشتم ؟
                  $regfile = "m32def.dat"
                  $crystal = 8000000
                  Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7 , E = Pinb.3 , Rs = Pinb.2
                  Config Lcd = 16 * 2
                  Config Kbd = Portc , Debounce = 50 , Delay = 100
                  Dim A As Byte , B As Integer , I As Byte , V(4) As Integer , J As Byte , Ave As Single , Sum(3) As Integer

                  J = 0

                  Do
                  J = J + 1

                  For I = 1 To 3
                  Main:
                  A = Getkbd()
                  If A > 15 Then Goto Main
                  B = B * 10
                  B = B + A
                  Next

                  V(j) = B

                  Loop Until J = 4

                  Sum(1) = V(1) + V(2)
                  Sum(2) = V(3) + V(4)
                  Sum(3) = Sum(1) + Sum(2)
                  Ave = Sum(3) / 4

                  Lcd "ave=" ; Ave

                  End

                  دیدگاه


                    #10
                    پاسخ : سوال درباره بسکام

                    بله درسته
                    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                    آلبرت اینشتین
                    منبع: http://fa.wikiquote.org

                    دیدگاه


                      #11
                      پاسخ : سوال درباره بسکام

                      سلام
                      در مورد استفاده از مد کپچر تایمر ، کسی میتونه کمک کنه برنامه ای بنویسم که بشه باهاش عرض پالس رو اندازه گرفت ؟ نوشتم ولی درست کار نمیکنه .
                      عظمت را در چشم کسانی دیدم که بی توقع مهربانند .

                      دیدگاه

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