اطلاعیه

Collapse
No announcement yet.

ارسال اطلاعات از میکرو به کامپیوتر

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

    ارسال اطلاعات از میکرو به کامپیوتر

    با سلام خدمت دوستان.

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

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

    سلام
    متداولترین شکل ارسال اطلاعات از میکرو به کامپیوتر روش استفاده از پورت RS232 یا همون ارتباط سریال هست با استفاده از آی سی MAX232 اگه سرچ کنی همه چی دستگیرت میشه
    چشم ها را باید شست ، جور دیگر باید دید . . .

    دیدگاه


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

      سلام.
      همونطور که آقای ترابی گفتن RS232 متداول ترینه و میتونید از مبدلهای rs232 به USB هم استفاده کنید.
      اطلاعات رو به صورت بایت به بایت و یا رشته میشه ارسال کرد.
      اگر با #C برنامه مینویسید. ابتدا پورتهای باز رو سرچ میکنید و بعد تنظیمات پورت مربوطه رو با تنظیماتی که در میکرو مشخص کرید یکی میکنید و بعد از کامپیوتر یک مقدار به میکرو میفرستید و میکرو متوجه ارتباط میشه.

      حالا میکرو اطلاعات رو با توجه به فرمت مورد نظر شما برای کامپیوتر ارسال میکنه و ...
      و در نهایت در آخر اگر نیاز به ارتباط نبود پورت رو میبندید.
      شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

      دیدگاه


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

        دوستان خیلی خیلی ممنون از جوابتون. در این پروژه استارت کار با میکرو هستش و تا میکرو اطلاع ندهد کامپیوتر چیزی دریافت نمی کند.

        حالا یه سوال مهم :
        من چطور میتونم اطلاعات رو به صورت DLL به کامپیوتر بفرستم ؟؟؟

        دیدگاه


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

          چیکار میخوای انجام بدی؟
          شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

          دیدگاه


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

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

            دیدگاه


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

              شما برای ارسال یک بایت فقط نیازه که پورت کامپیوتر را باز کنی و بعد با میکرو مقدار رو ارسال کنی و داده رو از بافر کامپیوتر دریافت کنی.
              شما فایل dll. رو چیکار داری؟
              با چه نرم افزاری برای میکرو برنامه مینویسی؟
              با چه نرم افزاری برای کامپیوتر اپلیکیشن (application) مینویسی؟
              شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

              دیدگاه


                #8
                پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                نوشته اصلی توسط شهاب طاهری
                شما برای ارسال یک بایت فقط نیازه که پورت کامپیوتر را باز کنی و بعد با میکرو مقدار رو ارسال کنی و داده رو از بافر کامپیوتر دریافت کنی.
                شما فایل dll. رو چیکار داری؟
                با چه نرم افزاری برای میکرو برنامه مینویسی؟
                با چه نرم افزاری برای کامپیوتر اپلیکیشن (application) مینویسی؟
                مرسی داداش. من با کدویژن کار میکنم اما اپلیکیشن کامپیوترو نمیدونم چون من نمی نویسم.

                دیدگاه


                  #9
                  پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                  اینجا دقیقا قراره که از میکرو به کامپیوتر داده ارسال بشه. مهم نیست که حتما فایل DLL باشه.

                  دیدگاه


                    #10
                    پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                    پس یه برنامه بنویس که در ابتدا تنظیمات رو مشخص کنی و در کامپیوتر هم تنظیمات همون باشه.
                    بعد بیا مقدار رو به صورت بایت بفرست با putchar یا اینکه اول تبدیلش کن به رشته با sprintf یا itoa و بعد ارسالش کن توسط printf و در نهایت مقدارهای 10 و 13 (یا اول 13 و بعد 10) رو به صورت بایت بفرست.
                    از کسی هم که App رو مینویسه بپرس چه فرمت و چه تنظیماتی داره.
                    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                    دیدگاه


                      #11
                      پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                      خلی ممنون. حالا در مورد همین ارسال بیتی اطلاعات میشه یکم بیشتر توضیح بدی.
                      روش کار چطوره؟
                      اطلاعات باید با USB فرستاده بشه

                      دیدگاه


                        #12
                        پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                        خواهش میکنم.
                        اول راجع به usb: شما باید یک مبدل سریال به usb خریداری کنید مثل FT232RL فقط سعی کنید اصلش رو پیدا کنید و به شرط اصل بودن بخرید. چون تقلبیاش با دردسر نصب میشه. یا از CH340 استفاده کنید که ارزونتره حدود 1700 تومنه ودرایورش توی اینترنت هست.
                        FT232RL حدود 11000 تومنه.
                        شما مستقیم هم میتونی با COM Port کامپیوتر ارتباط برقرار کنید با MAX233.


                        ارسال اطلاعات:
                        الف. به صورت بایت:
                        1. تنظیمات سرعت کامپیوتر و میکرو رو یک شکل قرار میدید.
                        2. صبر میکنید تا UDR (بافر پورت سریال) خالی بشه.
                        3. مقدار بایت مورد نظرتون رو داخل UDR قرار میدید.
                        4. اجرای مرحله 2
                        نکته: برای دیدن کاراکترهای ارسالی از هایپر ترمینال یا کدویژن یا بیسکام استفاده کنید و فقط برخی از اونها رو میتونید ببینید ولی در محیط کدویژن وقتی کلید کانکت رو زدید یه کلید دیگه هم هست که روش نوشته HEX وشما اون رو بزنید تا مقدار ارسال شده شما نمایش داده بشه.
                        وقتی شما مقدار 100 دسیمال رو میفرستید باید در کدویژن با تنظیمات گفته شده در خط بالا مقدار 64 هگزادسیمال رو ببینید.


                        ب. به صورت رشته:
                        وقتی یک مقدار به صورت دسیمال باشه برای نشون دادن اون روی مانیتور و یا LCD باید اول تبدیل صورت بگیره وگرنه اگر به طور مثال شما مقدار 48 رو بخواید نمایش بدید و مستقیم ارسال کنید هنگام نمایش میبینید عدد 0 نمایش داده میشه چون مدار مقدار اسکی کاراکتر 0 برابر 48 ه.
                        خوب برای رفع این مشکل چند راه هست:
                        1. sprintf: ابتدا یک متغیر از نوع کاراکتر آرایه ای میسازید که تعدادش یکی بیشتر از مقدار شما باشه یعنی مثلا عدد 100 که 3 رقمی هست شما آرایه ای از کاراکترها با تعداد 4 میسازید. و اگر هم تعدادش رو نمیدونید حداکثر مقدار ممکن + 1 رو میسازید.
                        در تابع
                        sprintf دومین عبارت داخل "" مشخص کننده فرمت نمایش هست به طور مثال "c%" تولید کننده کاراکتر قابل نمایش از عدد وارد شده هست یعنی ورودی 48 خروجی نمایش 0 و ورودی 49 خروجی
                        نمایش 1 و ...
                        فرمت d% نمایش دهنده مقدار به همان صورت یعنی ورودی 100 خروجی نمایش 100 که خروجی تشکتل شده از کاراکتر 1 با مقدار اسکی 49 و کاراکتر 0 با مقدار اسکی 48.
                        فرمتهی دیگه هم هست که اگر ناز بود توضیح میدم و توی help کدویژن و اینترنت بسیار توضیح داده شده.
                        2. itoa و itol: این 2 تابع به صورت مستقیم مقدار رو به یک رشته تبدیل میکنن
                        3. تابع تبدیل رو خودتون بنویسید که سادست و شبیه گزینه 2 میشه.
                        نکته: تابع sprintf نسبت
                        به itoa و itol کارایی بیشتری داره ولی حجم بیشتری از فضا رو اشغال میکنه و در نتیجه زمان بیشتری میگیره.
                        با توجه به نیاز، یک فایل با نمونه های مختلف رو ساخته و upload میکنم چون اینجا محدودیت ابزار دارم.
                        در انتها رجوع میکنیم به گزینه الف.2 به بعد
                        شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                        دیدگاه


                          #13
                          پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                          بازم ممنون . خیلی زحمت میکشی.
                          شاید گفتن این نکته هم مهم باشه که سرعت ارسال اطلاعات تو این پروژه خیلی مهمه. یعنی وقتی یک کلید فشرده میشه سریعا باید اطلاعات به کامپیوتر منتقل بشه. تاخیر در حد چند میلی ثانیه قابل چشم پوشیه.
                          به امید خدا این پروژه رو شروع کردم. تا به حال با کامپیوتر اطلاعات رد و بدل نکردم این اولین پروژمه.
                          بازم ممنون که کمک میکنی.

                          دیدگاه


                            #14
                            پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                            خواهش میکنم.
                            در باودریت 9600 ارسال هر بایت دیتا همراه با متعلقاتش 1.14583 میلی ثانیه طول میکشه و در باودریت 115200 هر بایت 95.4861 میکرو ثانیه.
                            فقط برای باودریت بالا باید خطای کمی داشته باشید و از کریستال مثل 14.7456 یا 7.3728 مگاهرتز که در بازار موجوده استفاده کنید که خطا به حداقل برسه.
                            شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                            دیدگاه


                              #15
                              پاسخ : ارسال اطلاعات از میکرو به کامپیوتر

                              مهندس سرعت عملکرد آیسی 4514 که یه دیکدر 4 به 16 هستش چقدره؟
                              من با این آیسی با چه سرعتی میتونم بدون خطا اطلاعات رد و بدل کنم؟

                              دیدگاه

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