اطلاعیه

Collapse
No announcement yet.

راهنمایی در مورد ارتباط سریال( Rs232)

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

    #31
    پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

    نوشته اصلی توسط skiboys
    راستی دوتا سوال جدید دارم ؟
    1_ تو بعضی از برنامه ها دیدم برای ارتباط از پورت سریال از کریستال خواصی(مقدار خواصی) استفاده می کنند که خطا کم بشه کسی در مورد این چیزی می دونه کمک کنه؟ :question:
    2_ در ویژال بیسیک این دستور VAl چی کار می کنه اسکی رو تبدیل می کنه ؟ به چی تبدیل می کنه؟
    Private Sub Timer1_Timer()
    s = MSComm1.Input
    d = Val(s)
    باودی که انتخاب می کنی باید مضربی از کریستال باشه که کم ترین خطا رو داشته باشه مثلا کریستال 11.059 در باود های بالای 4800 خطاش صفر میشه بعد باود رابطه مستقیمی با کریستال داره توی ارتباط اگر 1% خطا باشه مورد قبول نیست برای همین میگن سیم بلند نباشه یه سیمت خوب باشه
    بعد برای اینه کمترین خطا رو داشته باشی یه محاسبه توی کتاب علی کاهه هست که نوشته 11.059/9600=1152 من که نفهمیدم چیه :mrgreen:

    یه توضیح کلی هم درباره ی uart بدم
    توی پروتکل SPI یه پایه کلاک برای تنظیم هست که مشخص میکنه که بیت کجاس ولی توی UART هیچ پایه ای برای هماهنگی نیست که طبق زمان بندی باید تنظیم بشه باود یعنی نرخ بیت بر ثانیه برای همین اگه کریستال اشتباه باشه زمان بندی بهم می خوره به UART میگن اسنکرون یعنی هیچ کلاکی برای هماهنگ سازی وجود ندارد
    کلا uart یک بیت اول برای استارته بعد 8 بیت دیتا بعد 2 یا 1 بیت استپ
    http://upload.wikimedia.org/wikipedia/commons/3/3d/Charactercode.png

    http://en.wikipedia.org/wiki/UART

    2.نمی دونم :biggrin:
    دستور رو برای UART برای ویژال بیسک رو دارای ؟ :wow:

    دیدگاه


      #32
      پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

      نوشته اصلی توسط erfan m
      باودی که انتخاب می کنی باید مضربی از کریستال باشه که کم ترین خطا رو داشته باشه مثلا کریستال 11.059 در باود های بالای 4800 خطاش صفر میشه بعد باود رابطه مستقیمی با کریستال داره توی ارتباط اگر 1% خطا باشه مورد قبول نیست برای همین میگن سیم بلند نباشه یه سیمت خوب باشه
      بعد برای اینه کمترین خطا رو داشته باشی یه محاسبه توی کتاب علی کاهه هست که نوشته 11.059/9600=1152 من که نفهمیدم چیه :mrgreen:

      یه توضیح کلی هم درباره ی uart بدم
      توی پروتکل SPI یه پایه کلاک برای تنظیم هست که مشخص میکنه که بیت کجاس ولی توی UART هیچ پایه ای برای هماهنگی نیست که طبق زمان بندی باید تنظیم بشه باود یعنی نرخ بیت بر ثانیه برای همین اگه کریستال اشتباه باشه زمان بندی بهم می خوره به UART میگن اسنکرون یعنی هیچ کلاکی برای هماهنگ سازی وجود ندارد
      کلا uart یک بیت اول برای استارته بعد 8 بیت دیتا بعد 2 یا 1 بیت استپ
      http://upload.wikimedia.org/wikipedia/commons/3/3d/Charactercode.png

      http://en.wikipedia.org/wiki/UART

      2.نمی دونم :biggrin:
      دستور رو برای UART برای ویژال بیسک رو دارای ؟ :wow:
      ممنون یعنی هر کریستالی نمی شه گذاشت درصد خطا چطوری محاسبه میشه؟
      عرفان جان دستور را که گذاشتم
      Private Sub Timer1_Timer()
      s = MSComm1.Input
      d = Val(s
      معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
      اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
      آموزش Modelsim

      دیدگاه


        #33
        پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

        نوشته اصلی توسط skiboys
        Private Sub Timer1_Timer()
        s = MSComm1.Input
        d = Val(s
        سلام. تابع Val یک رشته عددی ( یعنی رشته ای که کاراکترهاش شامل کاراکترهای 0 الی 9 است) رو به یک مقدار عددی مثل بایت یا Long تبدیل میکنه. تو مثالی که زدی متغییر s از نوع string یا رشته و متغیر d از نوع عددی مثل Long باید باشه. اگه بخوای روی یک رشته عددی اعمال ریاضی انجام بدی باید اول با این تابع به عدد تبدیلش کنی. با تابع str هم میشه برعکس این کار رو انجام داد.

        دیدگاه


          #34
          پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

          سلام خدوت دوستان گرامی در ادامه کار با پورت سریال می خواهم یک LED را توسط برنامه VB6 و همچنین توسط PWM نور این LED را کم وزیاد کنم ولی نور LEDثابت هستش برنامه میکرو را می گذارم دوستان واساتید نظر بدهند که ایراد از کجاست :
          $regfile = "m32def.dat"
          $crystal = 8000000
          $baud = 9600
          Config Portc = Output
          Config Timer0 = Timer , Prescale = 1
          Dim Receive As Byte , G As Byte
          Dim S As String * 20
          Dim Pm As Byte
          Dim A As Byte
          G = 0
          '----------------------------------------
          Enable Interrupts
          Enable Ovf0
          Enable Urxc
          On Ovf0 Makepwm
          On Urxc Lable
          Stop Timer0
          Start Timer0
          G = 0
          '-------------------------------------
          Do
          Enable Serial
          Loop
          End
          '----------------------------------
          Lable:
          Receive = Inkey()
          Select Case Receive
          Case 10:
          G = Val(s)
          End Select
          Return
          '-----------------------------------
          Makepwm:
          If Pm = 255 Then Pm = 0
          If Pm = G Then Set Portc.1
          If Pm < G Then Reset Portc.1
          Incr Pm
          Return
          معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
          اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
          آموزش Modelsim

          دیدگاه


            #35
            پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

            atmega32 خودش واحد تولید pwm داره. تو بسکام خیلی راحت کانفیگ میشه. تایمر رو در مد pwm راه اندازی کنید و از خروجی pwm مثل پین OC1A استفاده کنید به هلپ بسکام (تایمر) و دیتاشیت mega32 نگاه کنید

            دیدگاه


              #36
              پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

              نوشته اصلی توسط aed
              atmega32 خودش واحد تولید pwm داره. تو بسکام خیلی راحت کانفیگ میشه. تایمر رو در مد pwm راه اندازی کنید و از خروجی pwm مثل پین OC1A استفاده کنید به هلپ بسکام (تایمر) و دیتاشیت mega32 نگاه کنید
              سلام می دونم که واحد PWM داره قبلا هم زیاد باهاش کار کردم ولی اینجا من دارم باتایمر این کار را می کنم ایراد برنامه را بگویید لطفا
              معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
              اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
              آموزش Modelsim

              دیدگاه


                #37
                پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                با pwm هم نوشتم برنامه را ولی نورled ثابت هستش به نظرم ایراد از گرفتن عدد از پورت سریال هستش برنامه را با pwm می گزارم ببینید درسته یا نه؟
                $regfile = "m32def.dat"
                $crystal = 8000000
                $baud = 9600
                Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1
                Config Portc = Output
                Config Portd = Output
                Dim Receive As Byte , G As Byte
                Enable Interrupts
                Enable Urxc
                On Urxc Lable
                G = 0
                Do
                Enable Serial
                Loop
                End
                '----------------------------------
                Lable:
                Receive = Inkey()
                G = Val(s)
                Ocr1a = G
                return
                معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                آموزش Modelsim

                دیدگاه


                  #38
                  پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                  چرا PWM 10 بیتی گذاشتی ؟ 8 بیتی بزار

                  دیدگاه


                    #39
                    پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                    نوشته اصلی توسط erfan m
                    چرا PWM 10 بیتی گذاشتی ؟ 8 بیتی بزار
                    اول 8بیتی گذاشتم بعد گفتم 10 بیتی بگذارم بازه ای که نشون می ده بیشتر باشه و اختلاف نور بهتر معلوم بشه
                    8بیتی یا 10 بیتیش فکر نکنم فرق کنه ایراد باید از جای دیگه باشه :angry: :angry: :angry: :angry:
                    معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                    اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                    آموزش Modelsim

                    دیدگاه


                      #40
                      پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                      همچنان منتظر یاری سبزتان هستم :cry2: :cry2: :cry2: :cry2: :cry2:
                      معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                      اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                      آموزش Modelsim

                      دیدگاه


                        #41
                        پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                        نوشته اصلی توسط skiboys
                        اول 8بیتی گذاشتم بعد گفتم 10 بیتی بگذارم بازه ای که نشون می ده بیشتر باشه و اختلاف نور بهتر معلوم بشه
                        8بیتی یا 10 بیتیش فکر نکنم فرق کنه ایراد باید از جای دیگه باشه :angry: :angry: :angry: :angry:
                        چرا میزنی

                        متغیری که تعریف کردی Byte هست یعنی بین 0 تا 255 که میشه 8 بیت 10 بیت میشه بین 0 تا 1023

                        برنامه VB هم بزار ببینم

                        دیدگاه


                          #42
                          پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

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

                          دیدگاه


                            #43
                            پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                            نوشته اصلی توسط علی حیاتی
                            سلام
                            شما ابتدا بیاید برنامه VB را داخل هایپرترمینال خود بسکام تست کنید و ببینید دیتا از کامپیوتر درست ارسال میشه بعد بیاید به میکرو وصل کنید و دیتا مورد نظر را دریافت و بر روی LCDنمایش دهید ببینید میکرو درست دیتا رو دریافت میکنه تا بعد برسیم به مراحل بعدی.
                            چون تعداد خطوط برنامه زیاده و آنالیز برنامه یکم زمان بر میباشد و شما بیاید این مراحل رو پله پله جواب بگیرید تا در نهایت مشکل حل بشه.
                            موفق و پیروز باشید
                            ممنون می رم که چیز هایی که گفتید تست کنم
                            معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                            اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                            آموزش Modelsim

                            دیدگاه


                              #44
                              پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                              نوشته اصلی توسط erfan m
                              چرا میزنی

                              متغیری که تعریف کردی Byte هست یعنی بین 0 تا 255 که میشه 8 بیت 10 بیت میشه بین 0 تا 1023

                              برنامه VB هم بزار ببینم
                              مرسی درست می گویید از اون غافل شده بودم :eek:
                              برنامه vb هم می گذارم
                              معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                              اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                              آموزش Modelsim

                              دیدگاه


                                #45
                                پاسخ : راهنمایی در مورد ارتباط سریال( Rs232)

                                به نظرتون این قسمت درست هستش
                                رشته ای که از طریق پورت سریال می آید را به عدد متناظر آن تبدیل می کند و به عنوان مقدار مقایسه ای برای ساخت PWM می گذاریم ؟ :question:
                                Lable:
                                Receive = Inkey()
                                G = Val(s)
                                Ocr1a = G
                                return
                                معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                                اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                                آموزش Modelsim

                                دیدگاه

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