صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 10 از 20

موضوع: نمایش عدد اعشاری روی سون سگمنت

  1. #1
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست

    نمایش عدد اعشاری روی سون سگمنت

    سلام خدمت دوستان عزیز
    در حال ساخت دماسنج با سنسور ds1820 هستم
    می خوام دما رو با یک رقم اعشار رو سه تا سون سگمنت نشون بده
    لطفا راهنمایی کنید که چه طور نمایش میدن؟ خودم خیلی تلاش کردم ولی نشد
    ممنونم

  2. #2
    مدیر انجمن agraphic آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    168
    تشکر
    69
    تشکر شده 132 بار در 93 پست
    سلام
    من یکمی سوال رو شاید بد فهمیدم ولی اون چیزی که فهمیدم شما برای روشن کردن دات مشکل داری.
    خب روی سون سگمنت که پایه مخصوص برای دات هست و راحت وصلش کن.
    ولی برای برنامه یه رویه دیگست.

  3. #3
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست
    نه مشکل من با دات نیست با نمایش رقم اعشاره. مثلا21.8 ، میخوام اعشارشو نشون بدم

  4. #4
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,119
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست
    سوالتون واضح نیست. الان شما برای آنالیز داده مشکل دارین یا عدد بدست اومده بعد از آنالیز رو نمی تونین با فرمت درست به خروجی بفرستین؟اگر برای مورد آخری باشه که اصولا باید شما عدد حاصل رو به چند سگمنت مجزا تقسیم کنید.بر فرض عدد 21.8 که خودتون میگین رو باید به سه عدد 2،1،8 تقسیم کنید. برای این مورد هم باید از تقسیم متوالی استفاده کنید. به صورت زیر:
    21.8÷10 = 2 باقیمانده 1.8
    1.8 ÷ 1 = 1 باقیمانده 0.8
    0.8 ÷ 0.1 = 8 باقیمانده صفر
    یعنی تقسیم بر ضرایب 10 رو تا زمانی ادامه بدین که باقیمانده صفر بشه. البته در این مورد شما حداکثر به 100،10،1 و 0.1 باید تقسیم کنید
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  5. کاربران زیر از این پست مفید LightIran تشکر نموده اند:

    hadadi500 (01-21-2018)

  6. #5
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست
    با انالیز داده مشکل ندارم . عدد دما رو بدست میارم با اعشار مشکل همینه که شما توضیح دادین . چند جا دیدم تو بسکام از دستور mod استفاده میکنن ولی سر در نیاوردم . یعنی با تقسیم کردن ، جواب میگیرم؟

  7. #6
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,119
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست
    خب این عمل همون Mod کردنه. توام باید تقسیم و Mod داشته باشین. باقیمانده با دستور mod بدست میاد. در زبان سی هم با اپراتور % بدست میاد
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  8. #7
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست
    فقط از دستور mod استفاده کنم؟
    دیگه نباید از دستور تقسیم ( / ) استفاده کنم؟

  9. #8
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,119
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست
    روال رو اگر نگاه بکنین اول تقسیم میشه بعد از باقیمانده برای تقسیم دومی استفاده میشه.اینجوری میشه NUM عدد اولیه، INT یک متغیر میانی و A,B,C رقم های حاصل
    A=NUM/10
    INT=NUM mod 10
    B = INT / 1
    INT = INT mod 1
    C = INT / 0.1
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  10. کاربران زیر از این پست مفید LightIran تشکر کرده اند:

    hadadi500 (01-21-2018),hamed_avr (12-08-2014),omid20 (01-01-2016)

  11. #9
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست
    ممنون تست میکنم ببینم نتیجه چیه

  12. #10
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 24 بار در 19 پست
    تست کردم . برنامه err نمیده ولی تو پروتئوس اعشارو نشون نمیده.
    امکان داره مشکل از پروتئوس باشه؟ اخه مطمئنم برنامه درسته
    کدش و میزارم ببینید :
    کد:
    Temp = Y
    Yekan = Temp / 10
    Num = Temp Mod 10
    Dahgan = Num / 1
    D = Num Mod 1
    Sadgan = D / 0.1
    
    
    Portc = &B1111110
    Portd = Lookup(sadgan , Lable1)
    Waitms 10
    Portc = &B1111101
    Portd = Lookup(dahgan , Lable1)
    Waitms 10
    Portc = &B1111011
    Portd = Lookup(yekan , Lable1)
    Waitms 10
    
    Lable1:
    Data &B00111111                                             '0
    Data &B00000110                                             '1
    Data &B01011011                                             '2
    Data &B01001111                                             '3
    Data &B01100110                                             '4
    Data &B01101101                                             '5
    Data &B01111101                                             '6
    Data &B00000111                                             '7
    Data &B01111111                                             '8
    Data &B01101111                                             '9
    Data &B01000000                                             '-

صفحه 1 از 2 12 آخرینآخرین

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

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