اطلاعیه

Collapse
No announcement yet.

ارتباط سریال دو میکرو

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

    ارتباط سریال دو میکرو

    سلام دوستان
    میخوام 2 میکرو رو با ارتباط سریال با max232 به هم متصل کنم. اما متاسفانه کار نمی کنه.
    ممنون میشم کمکم کنین.
    یکی از میکروها ATMEGA128 با اسیلاتور 8مگ است و دیگری ATMEGA8 با کریستال 8مگ است، کارکرد میکروها درسته و فقط ارسال و دریافت درست نیست.
    برنامه ها :

    $crystal = 8000000
    regfile = "m8def.dat$
    Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0

    Config Lcd = 16 * 2

    Config Serialout = Buffered , Size = 20
    Config Serialin = Buffered , Size = 20
    $baud = 4800
    Dim B As Byte , S As Single
    Enable Interrupts

    Do
    Cls
    B = Waitkey()
    S = B / 2.048
    Lcd S
    Waitms 100
    Loop
    End

    برنامه میکرو دیگری :
    $regfile = "m128def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5

    Config Lcd = 20 * 2
    Config Adc = Single , Prescaler = Auto , Reference = Off
    Config Serialout = Buffered , Size = 20
    Config Serialin = Buffered , Size = 20

    $baud = 4800
    Config Timer1 = Timer , Prescale = 256
    Enable Interrupts
    Do
    cls
    Ad2 = Getadc(0)
    Asn2 = Ad2 / 2.048
    Lcd Asn2
    Print Ad0
    Wait 1
    Loop
    End

    #2
    پاسخ : ارتباط سریال دو میکرو

    کسی نبود کمک کنه
    حتی TX , RX میکرو ATMEGA128 رو با ATMEGA8 RX,TX وصل کردم ولی میکرو دریافت کننده فقط عدد 10 رو میگیره
    چیکار کنم ممنون میشم کمکم کنین

    دیدگاه


      #3
      پاسخ : ارتباط سریال دو میکرو

      پیشنهاد میکنم قبل از اینکه چنین کاری بکنی به این لینک بری توضیحات به شدت کامله :
      http://elecshare.com/showthread.php?tid=27990

      دیدگاه


        #4
        پاسخ : ارتباط سریال دو میکرو

        من خیلی از سایت ها رفتم و مطالب زیادی خوندم اما نمیدانم چرا مدار مشکل دارد.
        حالا نمیدانم دستور ارسال و دریافت شاید درست نباشد.
        به نظر ارسال صورت میگیره، چون2تا led وصل کردم به TX,RX و چشمک می زنه

        دیدگاه


          #5
          پاسخ : ارتباط سریال دو میکرو

          نوشته اصلی توسط mousivand
          من خیلی از سایت ها رفتم و مطالب زیادی خوندم اما نمیدانم چرا مدار مشکل دارد.
          حالا نمیدانم دستور ارسال و دریافت شاید درست نباشد.
          به نظر ارسال صورت میگیره، چون2تا led وصل کردم به TX,RX و چشمک می زنه
          برای ارتباط سریال ساده ی ین دو میکرو نهایتن به 2 تا مقاومت و مقداری سیم احتیاج دارید.
          MAX232 یک مبدل سطح ولتاژ هست و اطلاعات رو دستکاری نمیکنه.
          ضمنن گفتن نداره که بایس RX و TX دو میکرو رو ضربدری وصل کنید. 2 مقاومت رو هم سری کنید با اتصالات بین دو میکرو.

          دیدگاه


            #6
            پاسخ : ارتباط سریال دو میکرو

            ممنونم از پاسختون
            درسته TX,RX رو ضربدری وصل کردم
            یه مشکلی داشت این بود که از CONFIG SERILIN , CONFIG SERIALOUT استفاده کرده بودم که با حذف این دو تا اکثر مشکل حل شد.
            اما نمیدونم چرا به همون ترتیبی که ارسال می کنم دریافت نمی کنه!!

            دیدگاه


              #7
              پاسخ : ارتباط سریال دو میکرو

              سلام
              دو تا میکرو دارم که با ارتباط سریال به هم متصلند، اجرای دستورات در یکی از میکرو ها منوط به ارسال دیتایی از میکرو دیگر است چون از دستور WAITKEY بسکام استفاده کردم .
              حال میخوام شرایطی را ایجاد کنم که در صورت عدم اتصال میکرو دوم، میکرو یک کارش را ادامه بدهد و روی دستور WAITKEY گیر نکند.
              یکبار از تایمر استفاده کردم و تایمر رو 0.3 ثانیه گذاشتم و در برنامه تایمر نوشتم که به دستور بعدی برود اما متاسفانه روند کار میکرو متوقف می شود.
              ممنونم کمکم کنین.

              برنامه:
              Start Timer1
              '--------------------------------DARYAFT---------------------------------------
              B1ib = Waitkey()
              Bb = Waitkey()
              Bi = B1ib * 4
              Ad1 = Bi + Bb
              '----------------------------------ERSAL---------------------------------------
              Main:
              Waitms 10
              B1 = Ad4 / 4


              برنامه تایمر:

              Lable:
              Stop Timer1
              Timer1 = 56161
              Goto Main
              Return

              دیدگاه

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