اطلاعیه

Collapse
No announcement yet.

اعمال دو متغیر به صورت هم زمان روی یک پورت

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

    اعمال دو متغیر به صورت هم زمان روی یک پورت

    سلام دوستان من دو متغیر دارم که به صورت هم زمان روی اونها تغییراتی اعمال میکنم و نیاز دارم که هر دو روی یک پورت بریزم
    لطفا منو راهنمایی کنید
    کد:
    Dim B As Byte
    Dim D As Byte
    B = &B0001
    D = &B1000
    PortA = B + D

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

    برنامه شما به این صورت میشه :
    $regfile = "m32def.dat".dat "
    $crystal = 8000000
    Dim A As Byte , B As Byte , C As Byte
    Config Portc = Output

    A = &B0001
    B = &B1000
    C = A
    Swap C
    C = C Or B
    Portc = C
    Do : Loop
    End

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

    دیدگاه


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

      نوشته اصلی توسط silicon0
      برنامه شما به این صورت میشه :
      $regfile = "m32def.dat".dat "
      $crystal = 8000000
      Dim A As Byte , B As Byte , C As Byte
      Config Portc = Output

      A = &B0001
      B = &B1000
      C = A
      Swap C
      C = C Or B
      Portc = C
      Do : Loop
      End

      حالا بسته به اینکه بخواهید a بایت بالا باشه یا b اول اونو میریزین تو c
      البته این فقط به شرطی ممکنه که متغیرهای شما از نیم بایت تجاوز نکنن
      لطفا یکم روی کد توضیح بدید ممنون

      دیدگاه


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

        چهار خط اول: که مربوط به تعاریف هست
        خط پنجم و ششم :مقادیر مورد نظر رو روی متغیر a و b میریزه(که هر دو نیم بایت پایین هستن)
        خط هفتم: متغیر c رو برابر متغیر a قرار میده یعنی نیم بایت پایین c برابر a میشه
        خط هشتم :نیم بایت بالا و پایین c رو جابجا میکنه در نتیجه مقدار a در نیم بایت بالای c قرار میگیره و نیم بایت پایین c هم صفر هست

        خط نهم :متغیر c رو با متغیر b یای(or) منطقی میکنه در نتیجه نیم بایت پایین c برابر میشه با b ونیم بایت بالاهم که برابر a بود تغییری نمیکنه(چون با صفر or میشه)

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

        دیدگاه


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

          نوشته اصلی توسط silicon0
          چهار خط اول: که مربوط به تعاریف هست
          خط پنجم و ششم :مقادیر مورد نظر رو روی متغیر a و b میریزه(که هر دو نیم بایت پایین هستن)
          خط هفتم: متغیر c رو برابر متغیر a قرار میده یعنی نیم بایت پایین c برابر a میشه
          خط هشتم :نیم بایت بالا و پایین c رو جابجا میکنه در نتیجه مقدار a در نیم بایت بالای c قرار میگیره و نیم بایت پایین c هم صفر هست

          خط نهم :متغیر c رو با متغیر b یای(or) منطقی میکنه در نتیجه نیم بایت پایین c برابر میشه با b ونیم بایت بالاهم که برابر a بود تغییری نمیکنه(چون با صفر or میشه)

          خط دهم: پورت c رو برابر متغیر c قرار میدیم و به هدف میرسیم
          خط یازدهم هم حلقه بینهایت هست که برای اینکه program counter به end نرسه قرار میدیم
          خیلی جالب بود
          پس در حقیقت بیتها با هم or میشن من خیال میکردم متغیرها or میشن یعنی یکی انتخاب میشه
          بازم ممنون

          دیدگاه

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