اطلاعیه

Collapse
No announcement yet.

ارسال دیتا به میکرو کنترلر AVR و در یافت آن توسط یک میکرو کنترلر دیگر

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

    ارسال دیتا به میکرو کنترلر AVR و در یافت آن توسط یک میکرو کنترلر دیگر

    سلام
    از دوستان عزیز خواهشمندم که یک مثال عملی از ارسال دیتا به میکرو کنترلر AVR و در یافت آن توسط یک میکرو کنترلر دیگر را در این تاپیک مطرح کنند
    زبان برنامه نویسیBASCOM

    #2
    پاسخ : طرح یک مثال عملی(فوری)

    ساده ترین حالت اینه که باود رو تو هر دو تا برنامه یه جور تعیین کنی. مثلا 9600
    در میکروی فرستنده با دستور print ارسال کنی و در میکروی گیرنده با input دریافت کنی
    همین

    دیدگاه


      #3
      پاسخ : طرح یک مثال عملی(فوری)

      سلام
      برنامه send در ساده ترین حالت:

      $regfile = "m16def.dat"
      $crystal = 8000000
      $baud = 16000
      Config Adc = Single , Prescaler = Auto , Reference = internal
      Dim A As Word
      Start Adc
      Do
      A = Getadc(1)
      Print A
      Loop
      End



      برنامه recieve در ساده ترین حالت:


      $regfile = "m16def.dat"
      $crystal = 8000000
      $baud = 16000
      Dim A As Word
      Dim B As Byte
      Dim C As Byte
      Config Portc = Output
      Config Portb = Output
      Do
      A = Inkey()
      Input A
      B = Low(A)
      C = High(A)
      Portb = B
      Portc = C
      Loop
      End



      یه جور دیگش:


      RS-232 CONFIGURATION

      SEND PART

      $regfile = "m16def.dat"
      $crystal = 8000000
      $baud = 8000
      Config Adc = Single , Prescaler = Auto , Reference = Avcc
      Dim A As Word
      Config Portb = Output
      Start Adc
      Do
      A = Getadc(0)
      Print A
      Portb = A
      Loop
      End


      RECEIVE PART

      $regfile = "m16def.dat"
      $crystal = 8000000
      $baud = 8000
      Dim A As Word
      Config Portb = Output
      Do
      A = Inkey()
      Input A
      Portb = A
      Loop
      End


      حسین خواجه جعفری
      اللهم صل علی فاطمة و ابیها، و بعلها و بنیها، و سر المستودع فیها،
      بعدد ما احاط به علمک...

      دیدگاه


        #4
        پاسخ : طرح یک مثال عملی(فوری)

        سلام دوست عزیز
        چرا در مثالی که ذکر کردید ADC را فعال کردید
        لطفا مثالی بزنید که بتوان با آن کدهای ASCII را ارسال کرد و پس از دریافت آن را بروی lcd نمایش داد متشکرم

        دیدگاه


          #5
          پاسخ : طرح یک مثال عملی(فوری)

          سلام
          این یه بخشی از یک پروژه بود که من تغییرش ندادم و برای شما فرستادم
          توی اون بخش کار من، سیستم عدد رو از ورودی adc می خوند.
          من صدا رو دیجیتال می کردم و میفرستادم اونور
          با اون یکی میکرو میخوندمش میذاشتم روی یه پورت دیگه و با استفاده از یه dac دوباره سیگنال صدا رو تحویل می گرفتم

          حسین خواجه جعفری
          اللهم صل علی فاطمة و ابیها، و بعلها و بنیها، و سر المستودع فیها،
          بعدد ما احاط به علمک...

          دیدگاه


            #6
            پاسخ : طرح یک مثال عملی(فوری)

            سلام>
            خیلی سادست>
            برای ارسال متن یا در کل یک رشته کافیه از دستور print بصورت زیر اسفاد کنی:
            print"s"
            که در بالا ما حرف S رو فرستادیم.
            برای خوندن هم دو روش وچود داره یکی بصورت وقفه یکی هم با دستور input
            که راه دوم از همش بهتره:
            برای اینکار باید اینتراپت و urxc (وقفه سریال ) رو enable کنی:
            enable interrupts
            enable urxc
            بعد باید یه فلق تعریف کنی مثلا:
            on urxc eca
            بعد در برچسب که در این مثال eca اسمشو
            گذاشتیم از متغییر udr داده هاتو دریافت کنی.داده های ورودی کدهای اسکی
            هستند که ما بصورت رشته تعریف کرده بودیم برای اینکه ما اونا رو بصورت رشته ای
            داشته باشیم کافیه از دستور chr استفاده کنیم:
            a=chr(udr)
            البته باید a رو هم از نوع رشته تعریف کنی
            چون udr فقط یه بایت یه بایت تحویلت میده
            با یه ترفند نرم افزاری ساده میتونی کل یه کلمه و عبارت رو داشته باشی.

            دیدگاه


              #7
              پاسخ : طرح یک مثال عملی(فوری)

              سلام>
              http://www.4shared.com/file/27688699...ea/serial.html
              pass:www.eca.ir
              این بسته شامل 2 تا فایله که یکیش شامل کدهای گیرنده و دومی فرستنده هست
              برنامه مربوط به فرستنده با 0 شدن pinb.0 دستور" print "salam رو اجرا میکنه.
              در قسمت گیرنده هم برنامه تا زمانی که داده ای دریافت نکرده یک پین رو
              toggle (صفر و یک) میکنه وقتی برنامه پیام رو دریافت کرد اونرو با با پیامی که
              منتظرش بود(یعنی "salam&quot مقایسه میکنه و اگه شرط درست بود یه پین رو ست میکنه
              و ...
              تو خود برنامه بصورت command نوشتم
              چون مدار اماده برای تست نبود اگه ایرادی احیانا پیدا شدکلیاتش همینه با چندتا تغییر
              جزئی حل میشه

              دیدگاه

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