اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام به همه دوستان.از طریق 232 با استفاده از ویژال بیسیک (chr(20رو به میکرو میفرستم و در میکرو با استفاده از وقفه مربوط به 232 برنامه رو نوشتم اما وقتی مینویسم
    if f=20 then
    set portd.5
    اصلا مقدار f رو برابر 20 نمیدونه و هیچ عملی رو انجام نمیده.به نظر شما مشکل از نوع داده ارسالی یا دریافتی است یا مشکل دیگه ای.با تشکر
    شکر گذاری دست دادار ,گرفتن دست دیگران است.

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

    احتمال زیاد از نوع متغیر هست که تعریف کردید . اطلاعاتی که از کانمپیوتر میاد رو باید با یه متغیر از نوع char دریافت کنید . اما قبل از هر کاری تو وقفه سریال بذارید تا یه led رو روشن کنه ببینید اصلا وقفه اجرا میشه یا نه . اگر هم می تونید یه lcd وصل کنید تا مقدار متغیرو ببینید
    Don't hesitate to ask any question ..

    دیدگاه


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

      سلام
      دوست عزیز آموزش ارتباط با سریال با ویژوال بیسیک را می توانی از لینک زیر دانلود کنید:
      http://www.hayatieng.com/index.php?option=com_remository&Itemid=75

      موفق باشی

      دیدگاه


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

        به نام خدا
        دوست گرامی شما داده های خود را به صورت ارایه باد دریافت کنی در غیر این صورت باد از حالت str کمک گیری .

        دیدگاه


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

          سلام.البته می تونه مشکلتون سخت افزاری هم باشه.از سخت افزار مطمئن هستید؟

          دیدگاه


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

            برای ارسال داده در صورتی که از دستور input استفاده می کنید باید در ویژوال بیسیک به صورت زیر عمل کنید
            مثلا برای ارسال عدد 20

            mscomm.output="20" & vbcrlf

            و در صورتی که با دستور inkey داده ها رو می خونید یادآوری می کنم که این دستور فقط در هر بار خواندن یک بایت رو می خواند مثلا یا اول عدد 0 و سپس 2 که باید این دستور رو داخل حلقه قرار بدین که بخونید یا به تعداد کافی دستور رو فراخوانی کنید و در هر بار باید برای بازخوانی عدد ارسالی آن را با دستور chr به کاکتر عددی تنظیم کنید
            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


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

              با تشکر.برنامه رو با interrupts نوشتم و در زیر برنامه متغیر f رو برابر udr قرار دادم و f رو در شرط if به کار بردم.در زیر خود برنامه رو نوشتم
              $regfile = "2313def.dat "
              $crystal = 11059200
              $baud = 9600
              Dim F As Byte
              Dim C As Long
              Enable Interrupts
              On Urxc Computer
              Enable Urxc
              Open "com1:9600,8,n,1" For Binary As #2
              Do
              Loop
              End 'end program
              ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''
              Computer:
              Set Portd.5
              Wait 1
              Reset Portd.5
              F = Udr
              Disable Urxc
              If F = 5 Then 'forward
              Set Portb.0
              Reset Portb.1
              Set Portb.4
              Set Portb.2
              Reset Portb.3
              Set Portb.5
              Elseif F = 64 Then 'back
              Set Portb.1
              Reset Portb.0
              Set Portb.4
              Set Portb.3
              Reset Portb.2
              Set Portb.5
              Elseif F = 74 Then 'right
              Reset Portb.1
              Set Portb.0
              Set Portb.4
              Set Portb.3
              Reset Portb.2
              Set Portb.5
              Elseif F = 84 Then 'left
              Set Portb.1
              Reset Portb.0
              Set Portb.4
              Reset Portb.3
              Set Portb.2
              Set Portb.5
              Elseif F = 94 Then 'stop
              Reset Portb.1
              Reset Portb.0
              Reset Portb.4
              Reset Portb.3
              Reset Portb.2
              Reset Portb.5
              Elseif F = 20 Then 'muscle1 left ccw
              Reset Portd.4
              While F <> 30
              While F <> 60
              Set Portd.2
              Waitms 100
              Reset Portd.2
              Wend
              Wend
              Elseif F = 30 Then 'muscle1 right cw
              Set Portd.4
              While F <> 60
              While F <> 20
              Set Portd.2
              Waitms 100
              Reset Portd.2
              Wend
              Wend
              Elseif F = 40 Then 'muscle2 left cww
              Reset Portd.4
              While F <> 70
              While F <> 50
              Set Portd.3
              Waitms 100
              Reset Portd.3
              Wend
              Wend
              Elseif F = 50 Then 'muscle2 right cw
              Set Portd.4
              While F <> 70
              While F <> 40
              Set Portd.3
              Waitms 100
              Reset Portd.3
              Wend
              Wend
              Elseif F = 60 Then 'muscle1 stop
              Reset Portd.2
              Reset Portd.4
              Elseif F = 70 Then 'muscle2 stop
              Reset Portd.3
              Reset Portd.4
              End If
              Enable Urxc
              Return
              شکر گذاری دست دادار ,گرفتن دست دیگران است.

              دیدگاه

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