اطلاعیه

Collapse
No announcement yet.

راهنمایی در حل تمرین

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

    راهنمایی در حل تمرین

    سلام اساتید و دانشجویان

    راستش استاد ما اصلا کار نمیکنه توو کلاس و فقط هی تمرین میده

    سوال من به صورت تصویری پایین اومده

    این مدار رو داریم


    و میخوایم نتایج به صورت زیر باشد



    اینو باید در کدویژن به صورت سی بزنیم

    ولی اصلا نمیدونم دستور نصف کردن یه ثبات چیه
    و اصلا باید چه کنم
    و همچنین برای جمع و کم به چه صورت باید عمل کنم
    لطفا کمکم کنید یا مرجعی معرفی کنید

    اون قطعه من اتمگا 16 هست

    ُS0 کلید بالایی
    S1 کلید پایینی

    ( عنوان ویرایش شد )

    #2
    پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

    سلام برای نصف کردن یک بایت به اسم Mکه 8 بیت داره میشه به این صورت عمل کرد : مثلاً 4 بیت کم ارزش رو میخوایم پس باید بایت رو به 16 تقسیم کنیم و باقی مانده ی تقسیم رو در یک بایت دیگر ذخیره می کنیم که میشه 4 بیت کم ارزش. مثلاً توی متغیر A ذخیره کردیمش:
    AL=0000(4bit kam arzesh

    و جواب خارج قسمت تقسیم میشه 4 بیت پرارزش که مثلاً توی متغیر B ذخیره میکنیم:
    AH=0000(4bit por arzesh

    دستور بدست آوردن جواب خارج قسمت:
    AH=M/16;
    دستور بدست آوردن جواب باقی مانده تقسیم:
    AL=M%16;

    حالا برای بدست آوردن 2 بیت کم ارزش مثلاً ALL باید متغیر AL رو به 4 تقسیم کنید و جواب باقی مانده میشه 2 بیت کم ارزش و اگر 2 بیت پر ارزش یا همون ALH رو بخوایم باید AL رو به 4 تقسیم کنیم و جواب خارج قسمت میشه همون ALH . برای AHL و AHH باید به همین صورت عمل کنید.

    در نهایت میگید اگه اگر PINB.0 یک بود و PINB.1 هم یک بود این کار رو بکن و یا اگر . . . .

    در کل 4 تا شرط باید بنویسید .
    if(PINB.0==1 && PINB.1==1)
    {
    PORTC=AHL-ALL;
    }

    علامت && به معنای و هست و علامت || که استفاده نکردم به معنای یا هست.

    مرجع هم که زیاد هست توی اینترنت. توی کتاب ها هم که زیاده.

    ضمناً اسم تاپیکتون خیلی نا مناسب هست. به یه اسم مناسب تغییرش بدین

    دیدگاه


      #3
      پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

      در مورد جمع و تفریقشم توضیح بدید لطفا

      دیدگاه


        #4
        پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

        نوشته اصلی توسط man0123
        در مورد جمع و تفریقشم توضیح بدید لطفا
        در مورد جمع و تفریق هم توضیح داده شده:

        نوشته اصلی توسط E.N

        PORTC=AHL-ALL;
        برای جمع هم از + استفاده کنید.

        دیدگاه


          #5
          پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

          یعنی خودش میاد به صورت باینری جمع و تفریق میکنه

          دیدگاه


            #6
            پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

            نوشته اصلی توسط man0123
            یعنی خودش میاد به صورت باینری جمع و تفریق میکنه
            وقتی ما به یه متغیر مقدار میدیم مثلاً 10. این عدد 10 به صورت باینری توی یه بایت ذخیره میشه و وقتی ما 10 رو با یه عدد دیگه جمع می کنیم یعنی دو تا عدد که در اصل باینری هستن با هم جمع شدن. درسته؟ پس نباید مشکلی باشه

            دیدگاه


              #7
              پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

              متغیر از نوع بایت رو چه طور تعریف میکنند
              ؟؟؟؟؟؟؟؟؟
              نیاز به کتابخانه ای داره تا فراخوانی بشه؟


              اضافه شده در تاریخ :
              کسی جواب نمیده؟؟؟؟

              دیدگاه


                #8
                پاسخ : من تازه واردم و همش تمرینایی میده استادمون که اصلا نمیدونم باید ار کجا پیدا کنم

                نوشته اصلی توسط E.N
                سلام برای نصف کردن یک بایت به اسم Mکه 8 بیت داره میشه به این صورت عمل کرد : مثلاً 4 بیت کم ارزش رو میخوایم پس باید بایت رو به 16 تقسیم کنیم و باقی مانده ی تقسیم رو در یک بایت دیگر ذخیره می کنیم که میشه 4 بیت کم ارزش. مثلاً توی متغیر A ذخیره کردیمش:
                AL=0000(4bit kam arzesh

                و جواب خارج قسمت تقسیم میشه 4 بیت پرارزش که مثلاً توی متغیر B ذخیره میکنیم:
                AH=0000(4bit por arzesh

                دستور بدست آوردن جواب خارج قسمت:
                AH=M/16;
                دستور بدست آوردن جواب باقی مانده تقسیم:
                AL=M%16;

                حالا برای بدست آوردن 2 بیت کم ارزش مثلاً ALL باید متغیر AL رو به 4 تقسیم کنید و جواب باقی مانده میشه 2 بیت کم ارزش و اگر 2 بیت پر ارزش یا همون ALH رو بخوایم باید AL رو به 4 تقسیم کنیم و جواب خارج قسمت میشه همون ALH . برای AHL و AHH باید به همین صورت عمل کنید.

                در نهایت میگید اگه اگر PINB.0 یک بود و PINB.1 هم یک بود این کار رو بکن و یا اگر . . . .

                در کل 4 تا شرط باید بنویسید .
                if(PINB.0==1 && PINB.1==1)
                {
                PORTC=AHL-ALL;
                }

                علامت && به معنای و هست و علامت || که استفاده نکردم به معنای یا هست.
                جواب از این بهتر دیگه ! :eek:

                شما به جای متغیر M بنویس PINA و بعد همون عملیات تقسیم و باقیمانده که دوستمون گفتن رو انجام بده .

                و همین تور باز دوباره داده هات رو ریز تر کن تا متغییر ای ALL , ... به دست بیاد .

                بعد عملیات جمع و ... و انجام بده مساوی PORTC بزار خود میکرو به صورت باینری نشون میده .
                که با اين درد اگر دربند درمانند درمانند
                فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

                دیدگاه


                  #9
                  پاسخ : راهنمایی در حل تمرین

                  نوشته اصلی توسط man0123
                  متغیر از نوع بایت رو چه طور تعریف میکنند
                  ؟؟؟؟؟؟؟؟؟
                  نیاز به کتابخانه ای داره تا فراخوانی بشه؟
                  متغیر از نوع یک بایتی و بدون علامت :
                  unsigned char a;
                  که از صفر تا 255 میتونه مقدار داشته باشه.

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

                  دیدگاه


                    #10
                    پاسخ : راهنمایی در حل تمرین

                    بچه درکم کنید

                    دیگه توو این زمینه من تقریبا از 100 نمره 5 یا 10 هستم

                    چون واقعا فقط برای پاسی این دارس دارم اینارو یادمیگیرم

                    یه توضیح از اینکه چرا خارج قسمت میشه پرد ارزش و باقیمانده میشه کم ارزش بدید لطفا

                    و آیا از شیفت و اینجور چیزا نباید استفاده کرد؟


                    دیدگاه


                      #11
                      پاسخ : راهنمایی در حل تمرین

                      نوشته اصلی توسط man0123
                      یه توضیح از اینکه چرا خارج قسمت میشه پرد ارزش و باقیمانده میشه کم ارزش بدید لطفا
                      خوب خودت با چندتا عدد امتحان کن تا کار دستت بیاد

                      نوشته اصلی توسط man0123
                      و آیا از شیفت و اینجور چیزا نباید استفاده کرد؟
                      نیازی نیست

                      بیبینم اصلا تا حالا با سی کار کردی ؟؟؟؟؟
                      که با اين درد اگر دربند درمانند درمانند
                      فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

                      دیدگاه


                        #12
                        پاسخ : راهنمایی در حل تمرین

                        آقا مهرداد میشه آیدی یاهو بدی بهم باهات در ارتباط باشم

                        دیدگاه


                          #13
                          پاسخ : راهنمایی در حل تمرین

                          نوشته اصلی توسط man0123
                          من هنوز نفهمیدم چرا میگی خارج قسمت میشه با ارزش و باقیمانده میشه کم ارزش
                          مثلا عدد 18 رو در نظر بگیر که باینریش میشه 00010010 این تا اینجا پس باارزشش 0001 و کم ارزش 0010 درست شد .


                          18 تقسم بر 16 میشه 1 و خورده ای(خوردش رو میکرو حساب نمیکنه ok) که همون بیت های باارزششمونه 0001


                          18 باقی موندش بر 16 میشه 2 که همون 4 بیت های کم ارزشمونه 0010


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

                          پس حالا 4 تا عدد 2 بیتی داریم .

                          وسلام نامه تمام
                          نوشته اصلی توسط man0123
                          و اینکه چیجوری این عملیات نصف شدن داره انجام میگیره؟
                          با همین عملیات تقسیم و باقیمونده


                          ************************
                          اینم سورس کد به همراه پروتئوس که با ال سی دی برات گذاشتم تا بهتر متوجه بشی

                          http://s5.picofile.com/file/8149439992/sum.rar.html

                          موفق باشی
                          که با اين درد اگر دربند درمانند درمانند
                          فاميل دور : اشاره داره به درهايي که واقعا در نيستن ، مثل نقاشي در روي ديوار. يعني اين دردها مارو شبيه اون درها ميکنه .

                          دیدگاه


                            #14
                            پاسخ : راهنمایی در حل تمرین

                            به من گفتن محاسبات باید two's complement باشه

                            اصلا نمیدونم یعنی چی

                            میشه بگید همین کدایی که دادید رو محاسبات two's complemetn اونو بهم توضیح بدید

                            دیدگاه

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