اطلاعیه

Collapse
No announcement yet.

ارتباط سریال در بسکام

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

    ارتباط سریال در بسکام

    دوستان این برنامه رو ببینید:
    کد:
    $regfile = "M8def.dat"
    $crystal = 8000000
    $baud = 9600
    Dim A As String * 2
    Enable Interrupts
    Enable Urxc
    Enable Utxc
    Config Portb = Output
    Config Portc.5 = Input
    
    Do
    A = Inkey()
    If A = "A" Then
    Set Portb.1
    Print "ON"
    End If
    If A = "B" Then
    Reset Portb.1
    Print "OFF"
    End If
    
    If Pinc.5 = 1 Then
    Print "Meysam"
    Waitms 50
    End If
    Loop
    
    End
    گفتم اگه ورودی سریال حرف A بود فلان کارو کن و الی آخر
    حالا یه سوالی که از مهندسین و دوستان عزیز دارم اینه که چطور میتونم ورودی سریال رو چند کلمه ای کنم
    If A = "XXXXXXX" Then
    Set Portb.1
    Print "ON"
    End If

    به جای X کلمه مورد نظر خودمو بذارم مثلا 6 حرفی یا بیشتر

    دوستان کمک کنید :angry: oo:
    I WORK HARDLY AND I HAVE BIG DREAMS

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

    اولا که شما یه سرچی بزن بعد تاپیک ایجاد کن
    دوما کد ها رو در کادر مخصوص خودش قرار بده
    سوما شما که اینتر پت نیاز نداری و داخل حلقه ورودی یوزارت رو میخونی چه نیاز به این دو دستوره؟
    کد:
    enable urxc
     و 
    enable interrup
    ?????????????
    دستور بالا که نوشتی برای راه اندازی یوزارت با متدی که شما داری ، کافیه
    منظورم:
    $baud=9600

    برای دریافت کارکتر
    ابتدا و برای مثال متغیر ها را بر اساس تعداد ورودی تعریف:
    کد:
    Dim E As Byte , P As Byte , A As Bit , F As Byte , G As Byte , H As Byte , I As Byte , J As Byte , K As Byte
    Dim C(12)as String * 1
    Dim Code As String * 6
    و سپس برای دریافت آن از این دستور استفاده کن:
    کد:
      Incr E
       C(e) = Inkey()
       If E < 6 Then Goto S1
       For E = 1 To 6
       Incr P
       Mid(code , P , 1) = C(e)
      Next
       E = 0 : P = 0
    اگر دستور گویا نیست بگو توضیح بدم

    دیدگاه


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

      نوشته اصلی توسط Rezash86
      اولا که شما یه سرچی بزن بعد تاپیک ایجاد کن
      دوما کد ها رو در کادر مخصوص خودش قرار بده
      سوما شما که اینتر پت نیاز نداری و داخل حلقه ورودی یوزارت رو میخونی چه نیاز به این دو دستوره؟
      کد:
      enable urxc
       و 
      enable interrup
      ?????????????
      دستور بالا که نوشتی برای راه اندازی یوزارت با متدی که شما داری ، کافیه
      منظورم:
      $baud=9600

      برای دریافت کارکتر
      ابتدا و برای مثال متغیر ها را بر اساس تعداد ورودی تعریف:
      کد:
      Dim E As Byte , P As Byte , A As Bit , F As Byte , G As Byte , H As Byte , I As Byte , J As Byte , K As Byte
      Dim C(12)as String * 1
      Dim Code As String * 6
      و سپس برای دریافت آن از این دستور استفاده کن:
      کد:
        Incr E
         C(e) = Inkey()
         If E < 6 Then Goto S1
         For E = 1 To 6
         Incr P
         Mid(code , P , 1) = C(e)
        Next
         E = 0 : P = 0
      اگر دستور گویا نیست بگو توضیح بدم
      مرسی از پاسخت این برنامه ساده کردم وگرنه خیلی خیلی کار داشت.

      فقط یه کوچولو بیشتر توضیح بده
      I WORK HARDLY AND I HAVE BIG DREAMS

      دیدگاه


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

        نوشته اصلی توسط Rezash86
        اولا که شما یه سرچی بزن بعد تاپیک ایجاد کن
        دوما کد ها رو در کادر مخصوص خودش قرار بده
        سوما شما که اینتر پت نیاز نداری و داخل حلقه ورودی یوزارت رو میخونی چه نیاز به این دو دستوره؟
        کد:
        enable urxc
         و 
        enable interrup
        ?????????????
        دستور بالا که نوشتی برای راه اندازی یوزارت با متدی که شما داری ، کافیه
        منظورم:
        $baud=9600

        برای دریافت کارکتر
        ابتدا و برای مثال متغیر ها را بر اساس تعداد ورودی تعریف:
        کد:
        Dim E As Byte , P As Byte , A As Bit , F As Byte , G As Byte , H As Byte , I As Byte , J As Byte , K As Byte
        Dim C(12)as String * 1
        Dim Code As String * 6
        و سپس برای دریافت آن از این دستور استفاده کن:
        کد:
          Incr E
           C(e) = Inkey()
           If E < 6 Then Goto S1
           For E = 1 To 6
           Incr P
           Mid(code , P , 1) = C(e)
          Next
           E = 0 : P = 0
        اگر دستور گویا نیست بگو توضیح بدم
        منظور از این دستور یعنی چه
        If E < 6 Then Goto S1

        آخه S1 تو برنامه نیست
        I WORK HARDLY AND I HAVE BIG DREAMS

        دیدگاه


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

          نوشته اصلی توسط meysamjet
          منظور از این دستور یعنی چه
          If E < 6 Then Goto S1

          آخه S1 تو برنامه نیست
          با بسکام کار نکردم ولی اگه با C یکی باشه باید این بشه:
          "اگه E کوچکتر از 6 بود پس برو به S1"
          S1 هم یه لیبل هستش که دستور Goto پرش میکنه بهش. شاید Rezash86 یادش رفته بذارش.

          دیدگاه


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

            Rezash86 منتظر پاسختون هستم
            I WORK HARDLY AND I HAVE BIG DREAMS

            دیدگاه


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

              سوال دیگه راجع به برنامتون اینه که چرا همه ی متغیر ها byte هستن ولی متغیر A بیتbit هست؟
              I WORK HARDLY AND I HAVE BIG DREAMS

              دیدگاه


                #8
                پاسخ : ارتباط سریال در بسکام

                نوشته اصلی توسط meysamjet
                سوال دیگه راجع به برنامتون اینه که چرا همه ی متغیر ها byte هستن ولی متغیر A بیتbit هست؟
                ببین اون متغیر هایی که من اونجا تعریف کردم گوشه ای از یه برنامست که تقریبا 400 خطه
                زیاد اهمیت نداره
                اما s1 لیبلی هستش که قبل از دستور incr گذاشته بودم که اینجا جا افتاد...عذر مندم
                مفهوم دستور به این صورته
                s1 که لیبلی است برای شروع دستور
                سپس یک عدد به e اضافه میشه
                حالا منتظر میمونیم تا یک کاراکتر به وروردی یوزارت وارد شه
                به محض ورود شرط if چک میشه
                در اینجا شما باید تعیین کنید که مقدار کاراکتری که قرار هست دریافت کنید چند تاست
                در این کد 6 عدد است
                بنابر این چک میشه که آیا مقدار کاراکتر های دریافتی به 6 عدد رسیده یا نه
                اگه نرسیده بود دوباره به سطر قبل یعنی s1 برمیگرده و منتظر کاراکتر دوم میمونه
                این روند تا کاراکتر 6 ادامه داره و وقتی به کاراکتر 6 رسید شرط تائید میشه و بنابر این ابه خط بعد میره
                شاید این دو سه خط گویا باشه
                اما جهت راهنمایی این دو سه خط بعد جهت اینه که تمامی کاراکتر ها را در یک استرینگ واحد قرار بدی تا بتونی اون رو یا در ال سی دی نمایش بدی و یا اون رو پردازش کنی
                ینی با دستور for یکی یکی اون کد های که چند گانه ذخیره شدند رو در یک استرینگ به نام code ذخیره میکنی
                به این روند اگر از مثلا 6 کاراکتر دریافت شده 3 کاراکتر اول یا وسط یا آخر رو نیاز داشته باشی میتونی اونا رو جدا کنی و استفاده کنی
                ساختار دستور رو حتما در راهنمای بسکام بررسی کن و بعد از اون استفاده ببر
                دقیقا همین متد در زبان سی هم جواب میده و باید نوع نوشتار اون کمی تغییر کنه
                موفق باشید

                دیدگاه


                  #9
                  پاسخ : ارتباط سریال در بسکام

                  راه راحتتر هم این که از این کد استفاده کنی
                  کد:
                  Dim Code As String * 10
                  Dim S1 As String * 1
                  Dim Rt_recive As String * 5
                  dim L as byte
                  
                  S2:
                  Incr L
                  S1 = Waitkey(#1)
                  Rt_recive = Rt_recive + S1
                  If L < 5 Then Goto S2
                  اگه کد بالا رو خوب فهمیده باشی این کد دیگه کاری نداره

                  دیدگاه

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