اطلاعیه

Collapse
No announcement yet.

نمایش صحیح اعداد روی ال سی دی

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

    نمایش صحیح اعداد روی ال سی دی

    با سلام
    وقتی که میخواهیم یک متغیر رو (مثلا a) که دارای یک عدد هست روی ال سی دی نشون بدیم میشه از دستور :
    lcd a
    استفاده کرد.
    اما اینکار یه مشکل داره و اونم اینه که اگه اعداد زیر 10 باشن به صورت 1 و 2 و 3 و ... 9 نشون داده میشن. کسی میدونه چطور میشه به صورت 01 و 02 و 03 و 04و ... 09 درشون آورد؟(رشته ، BCD ، ASCII) چطور؟
    کل متغیر رو با دستور str تبدیل به رشته کردم اما دوباره به صورت 1 و 2 ... نشون میداد.


    با تشکر
    نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

    #2
    پاسخ : نمایش صحیح اعداد روی ال سی دی

    سلام
    فکر کنم با بیسیک می نویسید منم بیسیک خیلی بلد نیستم فقط اینو می دونم که باید وقتی به رشته تبدیلش کردید یک کاراکتر 0 بهش اضافه کنید.
    مثلا تو C:
    کد:
    char str[2];
    unsigned char m_num;
    m_num = 0;
    while(1)
    {
    if(m_num<10)
    sprintf(str ,"0%d" ,m_num++);
    else
    sprintf(str ,"%d" ,m_num++);
    .
    .
    .
    
    }
    البته این 1نمونه بود حواست باشه مقدار m_num ماکزیمم می تونه 255 باشه (اینم ربط به تعریف نوع متغییرت داره)
    موفق باشی
    برای انسان های بزرگ بن بستی وجود ندارد!
    چون بر این باورند که:
    - یا راهی خواهم یافت
    - یا راهی خواهم ساخت
    پس...

    دیدگاه


      #3
      پاسخ : نمایش صحیح اعداد روی ال سی دی

      بله
      زبان برنامه نویسی بیسیک هست
      اما من نمیخوام با شرط و شروط کار کنم که اگه قرار شد زیر 10 باشه بهش صفر اضافه کنم. فکر کنم با تبدیل متغیر ها بشه درستش کرد. فقط نمیدونم چطوریه
      نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

      دیدگاه


        #4
        پاسخ : نمایش صحیح اعداد روی ال سی دی

        منظور از تغییر متغیر چیه؟
        شرط لازمه وگرنه قبل همه اعداد 0 میذاره
        مثلا 011
        اونی که گفتم بیشتر از 255 نشه مربوط به نوعی بود که من انتخاب کردم(unsigned char)این نوع در سی ماکزیمم 255 رو قبول میکنه(1بایت)ولی این مسئله در بیسیک مطرح نیس شما می تونین Integer رو انتخاب کنید برای دونستن بازه قابل قبول هم 1 سری اینجا بزنید بد نیس
        http://forum.aca-ac.ir/viewtopic.php?f=20&t=11
        پایین صفحه
        اگه نتونستم کمکتون کنم کمی بیشتر توضیح بدین شاید...
        برای انسان های بزرگ بن بستی وجود ندارد!
        چون بر این باورند که:
        - یا راهی خواهم یافت
        - یا راهی خواهم ساخت
        پس...

        دیدگاه


          #5
          پاسخ : نمایش صحیح اعداد روی ال سی دی


          بابا من منظورم چیز دیگه ای هست و شما گیر دادین به نظر خودتون.
          من میدونم بایت چیه و شرط چیه و .......
          فکر کنید میخواهید یه برنامه چند هزار خطی بنویسید که همه جاش یه جورایی همینی رو که گفتم داره. حالا به نظرتون عاقلانه هستش که بیایم و برای نمایش شرط بزاریم که اگه عدده از 10 کمتر بود به رشته 0 اضافه کنه؟؟؟
          خودتون متوجه شدید؟
          من قبلا یه فایل داشتم که با یه تبدیل ساده اینکارو کرده بود. اما حالا هرچی میگردم پیداش نمیکنم. فرقی هم نداشت متغیرش چی باشه.
          لطفا دیگه به اینکه باید شرط گذاشت گیر ندید :mrgreen:
          با تشکر از کمکتون
          نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

          دیدگاه


            #6
            پاسخ : نمایش صحیح اعداد روی ال سی دی

            گیر نیس واقعیته
            برای موضوعی هم که گفتی(برنامه 1000خطی با nخطی) یک راه حل هست که ما بهش میگیم استفاده از توابع!!!
            به هر حال
            پیروز باشید
            برای انسان های بزرگ بن بستی وجود ندارد!
            چون بر این باورند که:
            - یا راهی خواهم یافت
            - یا راهی خواهم ساخت
            پس...

            دیدگاه


              #7
              پاسخ : نمایش صحیح اعداد روی ال سی دی

              درود.
              این برنامه رو نگاه کن :
              کد:
              [left]
              $regfile = "m32def.dat"
              $crystal = 8000000
              
              
              Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7_
               = Porta.7 , E = Portc.7 , Rs = Portc.6
              
              
              Dim A As Byte
              Dim B As Byte
              Dim A1 As String * 10
              Dim B1 As String * 10
              Dim R As Byte
              
              
              Do
              
              A = 0
              B = 0
              
              For R = 0 To 9
              
              A = A + R
              B = 0
              A1 = Str(a)
              Print A1
              B1 = Str(b)
              Print B1
              Cls
              Lcd B1 ; A1
              Waitms 1
              A = 0
              
              Next R
              
              Loop
              
              End
              
              
              [/left]
              http://www.sharjweb.com/

              دیدگاه


                #8
                پاسخ : نمایش صحیح اعداد روی ال سی دی

                با Fusing کارتون حل میشه.
                مثلا:

                Lcd Fusing(n, "###&quot


                که همواره n رو با سه رقم نشون میده.

                دیدگاه

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