اطلاعیه

Collapse
No announcement yet.

uartپروتکل

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

    uartپروتکل

    سلام.
    برنامه ی زیر رو نوشتم تا یه مقدار آنالوگ رو از طریق uart به کامپیوتر انتقال بدم.نرم افزار رو هم هموم uart terminal نرم افزار mikrobasic انتخاب کردم.سیم کشی مدار رو هم عینا مثل help-uart نرم افزار mikrobasic انجام دادم. برنامه هم کارکردش به این شکله هر 500میلی ثانیه یه مقدار جدید رو ارسال میکنه یعنی تو هر ثانیه دو مقدار.
    تنظیمات باود و...هم به شکل زیر تنظیم شدن. baud rate:2400 stop bitne stop bit parity :none data bite:eight buffer size:1024 با تنظیمات گفته شده اتصال برقرار میشه بعضی مواقع تو هر ثانیه 20 تا 30 تا مقدار صفر ارسال میکنه ،بعضی مواقع ام که به حساب درست کار میکنه (تو هر ثانیه 2 مقدار ارسال میکنه) بازم مقادیر صفره .
    هر جور هم برنامه رو تغییر میدن هیچ فایده ای نداره! خواهشا اگه نکته خاصی واسه اتاصل هم عزیزان یه راهنمایی بکنن. ممنون

    #2
    پاسخ : uartپروتکل


    dim uart_rd as byte
    res as word
    res1 as byte
    res2 as string[3]
    main:
    TRISC=%01000000 '''C7=0 C6=1
    TRISA=1
    ADCON1=%10001110 'AN0 IS ANALOG INPUT
    ADCON0=%010000010 'A/D CLOCK IS INTERNAL .select an0 , turn a/d converter
    UART1_Init(2400) 'proirity =none enight=8 1 stop bit
    PORTC=%01000000 ' tx is 1 beacause disable send data for 100 ms
    delay_ms(100)
    UART1_Write(10) ' Line Feed
    UART1_Write(13) ' Carriage Return
    while(1)
    res=adc_read(0)
    res1=res/10
    bytetostr(res1,res2)
    UART1_WRITE_TEXT(res2)
    delay_ms(500)
    wend
    end.

    دیدگاه


      #3
      پاسخ : uartپروتکل

      بر این اساس تنظیمش کن 9600N81
      اونور کامپیوتره؟

      دیدگاه


        #4
        پاسخ : uartپروتکل

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

        دیدگاه


          #5
          پاسخ : uartپروتکل

          همون تنزیمات بیتهاست none 8bit stop bit 1
          سرعت ارسال رو از 2400 بکن 9600 فقط

          دیدگاه


            #6
            پاسخ : uartپروتکل

            این کار رو هم کردم بازم صفر ارسال میکه . البته تو هر ثانیه حدود 30 عدد ارسال میکنه در صورتی که بایستی حداکث ردو مقدار ارسال کنه.روشی برای سیموله سازی با پروتئوس هست؟

            دیدگاه


              #7
              پاسخ : uartپروتکل

              سلام.
              شما میتونید مسئله رو ب بخش های کوچکتری تقسیم کنید.
              به این صورت که ابتدا فقط ارتباط سریال رو عملی ببندید و در یک متغییر عددی رو قرار بدید و وظیفه برنامه این باشد که فقط این عدد را ارسال کند.
              ببینید این را ارسال میکند؟
              اصلا ارتباط سریال درست کانفیگ میشود یانه؟
              اگر مدار را تکه تکه ببندید و بعد ب هم وصل کنید هر اشکالی رو زود میفهمید از کجاست و رفعش میکنید.
              رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
              ....

              دیدگاه


                #8
                پاسخ : uartپروتکل

                باشه .ولی هر برنامه ای مینویسنم(حتی کپی پیس)بازم همون صفر ها رو دایم میفرسته .اصلان هم متوقف نمیشه .حالا نرم افزار vspd رو گرفتم تا باهاش کار کنم ببینم نتیجه چی میشه.

                دیدگاه


                  #9
                  پاسخ : uartپروتکل

                  ارتباط میکرو با کامپیوتر رو امتحان کردید؟
                  رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
                  ....

                  دیدگاه


                    #10
                    پاسخ : uartپروتکل

                    اتصالات فیزیکی رو چک کن جای سیم ها رو اشتباه نزنی! Tx میکرو باید به Rx کامپیوتر و Rx کامپیوتر به TX میکرو وصل کردی؟

                    یه عکسم از مدار فیزیکی که بستی بزار

                    دیدگاه


                      #11
                      پاسخ : uartپروتکل

                      اقا آروین ممنون از راهنماییتون .ولی متاسفانه درست بستم!دقیقا عین شکل روبه رو بستم منتهی از ای سی 876استفاده کردم .که دقیقا هم به همین پایه ها اتصال دادم.برنامه مشکلی نداره؟

                      اضافه شده در تاریخ :
                      کسی مثال کاملی سراغ نداره که عملی هم باشه.بدا موندم سخت افزاری مشکل داره یا نرم افزاری .راستی ولتاز vs+ , vs-حدود 18 ولته .نباید 24 باشه؟

                      دیدگاه


                        #12
                        پاسخ : uartپروتکل

                        شما rx و tx رو به هم وصل کنید و داده مشخصی رو بفرستید و فرض بر اینست ک در طرف میکرو ال سی دی و در طرف کامپیوتر هم ک ترمینال دارید،برای داده گرفته شده. وقتی دوتا سیم rx و tx رو بهم وصل کنید باید داده فرستاده شده به خودش برگرده دیگه درسته؟
                        امتحان کنید و نتیجه را بیان کنید.
                        رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
                        ....

                        دیدگاه


                          #13
                          پاسخ : uartپروتکل

                          اره درست بود این تستم انجام داد..مشکل دوتا مورد بود یکی جمپر های که تو شکل سمت پورت 9 پین دیده میشه اون ها رو باز کردم. بعدم برد بورد رو عوض کردم .مشکل حل شد.البته احتمال اینکه از برد بورد بوده باشه بیشتره چون پین ها خیلی لق میزد. خیلی خیلی ممنونم ازتون amanver وarvinfx خیلی لطف کردین.
                          حالا اگه بخوایم سرعت نمیونه گیری رو بالا ببریم امکانش هست ،مثلا در هر 20 میلی ثانیه مقدار انالوگ رو ارسسال کنه؟

                          دیدگاه


                            #14
                            پاسخ : پاسخ : uartپروتکل

                            نوشته اصلی توسط zahra-meh
                            اره درست بود این تستم انجام داد..مشکل دوتا مورد بود یکی جمپر های که تو شکل سمت پورت 9 پین دیده میشه اون ها رو باز کردم. بعدم برد بورد رو عوض کردم .مشکل حل شد.البته احتمال اینکه از برد بورد بوده باشه بیشتره چون پین ها خیلی لق میزد. خیلی خیلی ممنونم ازتون amanver وarvinfx خیلی لطف کردین.
                            حالا اگه بخوایم سرعت نمیونه گیری رو بالا ببریم امکانش هست ،مثلا در هر 20 میلی ثانیه مقدار انالوگ رو ارسسال کنه؟
                            من بودم انقدر سرعتو میبردم بالا که قاط بزنه بعد برای امنیت نصف اون سرعت رو تنظیم میکردم

                            دیدگاه


                              #15
                              پاسخ : uartپروتکل

                              من هیچ تغییری روی مدار یا برنامه ندادم فقط مدار بصورت صفر تا صد روی یک برد بورد جدید بستم. خوشبختانه راه افتد بیشتر از برد بورد بود الانم بعضی مواقع گیر میکنه یه دستی که به خازن های maxمیزنی دوباره راه میفته!! oo: :read:

                              دیدگاه

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