اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه ارتباط بین دو میکرو

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

    مشکل در برنامه ارتباط بین دو میکرو

    سلام به همگی
    یه سوالی داشتم اگه ممکنه کمکم کنید
    من میخوام وقتی عددی رو میفرستم در گیرنده led مخصوص به همون عدد روشن شود که بفهمم آن عدد ارسال شده است(مثلا از 1 تا 30)
    فرستنده:

    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    Print "start"
    Config Int0 = Low Level
    Config Portc = Input
    Config Portb.0 = Output
    Config Portd.4 = Output
    Enable Int0
    Enable Interrupts
    On Int0 Int0_isr
    Print "power down"
    Dim B As Byte , A As Byte , S As String * 5
    Do
    Powerdown
    Loop
    End
    Int0_isr:
    B = Pinc
    For A = 1 To 10
    Print "mnt" ; B
    Next A
    Wait 1
    Return

    گیرنده:

    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 9600
    Config Portc = Output
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , _
    Db7 = Portc.0 , Rs = Portc.5 , E = Portc.4
    Cursor Off
    Dim A As String * 10 , Ss As String * 10 , B As Byte
    Dim P As Byte , X As String * 10 , S As String * 10
    Cls
    Do
    Input S
    S = Mid(s , 2 , 5)
    Ss = Left(s , 3)
    If Ss = "mnt"then
    A = Mid(s , 4 , 3)
    P = Val(a)
    Locate 1 , 1 : Lcd A ; " "
    Wait 2
    Cls
    End If
    Loop
    به نظرتون باید چه تغییری باید در برنامم ایجاد کنم؟ به نظرم باید از لچ استفاده کنم درسته؟
    ممنون میشم

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

    کسی نمی تونه کمکم کنه

    دیدگاه


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

      سلام
      اول پاور دن رو پاک کنید بعد عدد رو با دستور PRINTBIN بفرسید توی گیرنده با اینتراپت دریافت کنید بعد توی گیرنده شرط بزارید که اگه این عدد بود این پین رو 1 کنه

      دیدگاه


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

        در گیرنده میتونم از لچ استفاده کنم؟
        ممنوم میشم

        دیدگاه


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

          نوشته اصلی توسط hossein6355
          در گیرنده میتونم از لچ استفاده کنم؟
          ممنوم میشم
          بله از همه چی می تونید استفاده کنید
          ولی فکر نکنم این برنامه ای که گذاشتید با این چیزی که می خواید درست کنید ربطی داشته باشه oo:

          دیدگاه


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

            بله درست میگید برنامه در گیرنده باید تغییر کند به نظرتون در صورت استفاده از لچ باید چه تغییری در برنامه بدم
            یک دنیا ممنون میشم

            دیدگاه


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

              نوشته اصلی توسط hossein6355
              بله درست میگید برنامه در گیرنده باید تغییر کند به نظرتون در صورت استفاده از لچ باید چه تغییری در برنامه بدم
              یک دنیا ممنون میشم
              برنامه کلا مشکل داره oo:
              یه برنامه دیگه با کمک دوستان از اول بنویسید :agree:
              برم بیام برنامه رو توضیح بدم

              دیدگاه


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

                میشه کمکم کنید برنامه رو تغییر بدم
                یک دنیا ممنون میشم

                دیدگاه


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

                  $regfile = "m8def.dat"
                  $crystal = 4000000
                  $baud = 9600
                  Dim A As Byte
                  Do
                  Printbin A
                  Waitms 500
                  Incr A
                  Loop
                  end

                  1.اسم میکرو
                  2.مقدار کریستال
                  3.مقدار باود (سرعت ارسال)
                  4.تعریف یک متغیر به اسم A (که می تواند از 0 تا 255 تغییر کند مشخص کنن این تغیرات BYTE هست )
                  4.حلقه (شروع حلقه DO ) (برای تکرار برنامه)
                  5.فرستادن منغیر A به پورت سریال (UART یا RS232 )
                  6.توقف در برنامه به مدت 500 میکرو ثانیه
                  7.اضافه کردن به متغیر A (هر چقدر بود + 1 می کنه)
                  8.حلقه (برگشت به DO)
                  9.پایان برنامه (اختیاری) (هیچ وقت این قسمت خونده نمیشه چون وقتی به LOOP میرسه برمیگرده به DO)

                  حالا برنامه گیرنده :

                  $regfile = "m8def.dat"
                  $crystal = 4000000
                  $baud = 9600
                  Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , _
                  Db7 = Portc.0 , Rs = Portc.5 , E = Portc.4
                  Dim S As Byte
                  Cls
                  Enable Interrupts
                  Enable Urxc
                  On Urxc Ua

                  Do
                  Lcd S
                  Waitms 400
                  Cls
                  Loop
                  End

                  Ua:
                  S = Udr
                  Return


                  1.اسم میکرو
                  2.مقدار کریستال
                  3.مقدار باود (سرعت ارسال)(هر دو باید به یک اندازه باشه)
                  4.تعریف پایه های LCD
                  5.تعریف پایه های LCD
                  6.تعریف یک متغیر به اسم A (که می تواند از 0 تا 255 تغییر کند مشخص کنن این تغیرات BYTE هست )
                  7.پاک کردن LCD (اختیاری)
                  8.فعال کردن اینتراپت (اخرش میگم اینتراپت چیه)
                  9.فعال کردن وقفه دریافت از پورت سریال (UART یا RS232)
                  10.تعریف برچسب برای پرش (اخرش توضیح بیشتری میدم)
                  11.حلقه (شروع حلقه DO ) (برای تکرار برنامه)
                  12.نوشت روی LCD مقدار متغیر S
                  13.توقف در برنامه به مدت 400 میکرو ثانیه
                  14.پاک کردن LCD (اگر بعد از هر بار نوشتن صحفه نمایش پاک نشود LCD پر از نوشته میشود)
                  15.حلقه (برگشت به DO)
                  16.پایان برنامه (اختیاری) (هیچ وقت این قسمت خونده نمیشه چون وقتی به LOOP میرسه برمیگرده به DO)
                  17.برچسب برای پرش
                  18.خوندن از پورت سریال و ذخیره کردن توی متغیر S
                  19.برای برگرداندن یک متغیر


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

                  اگه یکم ساده توضیح دادم ببخشید

                  لج و ... رو بعدا میگم

                  دیدگاه


                    #10
                    پاسخ : مشکل در برنامه ارتباط بین دو میکرو

                    الان برنامه یه مشکلی داره که نمایش عدد روی ال سی دی منظم نیست

                    $regfile = "m8def.dat"
                    $crystal = 4000000
                    $baud = 9600
                    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , _
                    Db7 = Portc.0 , Rs = Portc.5 , E = Portc.4
                    Dim S As Byte
                    Cls
                    Enable Interrupts
                    Enable Urxc
                    On Urxc Ua





                    Do
                    Loop




                    Ua:
                    S = Udr
                    Cls
                    Lcd S
                    Return

                    الان وقتی که ارسال بشه از فرستنده روی LCD نمایش میده

                    دیدگاه


                      #11
                      پاسخ : مشکل در برنامه ارتباط بین دو میکرو

                      ممنون از راهنمایتون

                      دیدگاه


                        #12
                        پاسخ : مشکل در برنامه ارتباط بین دو میکرو

                        .

                        دیدگاه


                          #13
                          پاسخ : مشکل در برنامه ارتباط بین دو میکرو

                          اینو نوشتم برای 5 تا LED بقیشو خودتون بنویسید :biggrin:
                          http://www.wobzip.org/file/84dJP/zip

                          اگه به مشکلی برخورید بگید :rolleyes:

                          دیدگاه


                            #14
                            پاسخ : مشکل در برنامه ارتباط بین دو میکرو

                            ممنون
                            حتما میگم

                            دیدگاه

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