اطلاعیه

Collapse
No announcement yet.

sensor

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

    #16
    سوء تفاهم نشه

    سلام اقای مخمد خان
    مثل به خدا قصد دعوا نداشتم
    من راستش رو بخواهین برنامه رو نوشتم به این صورت است:
    $sim
    $large
    'IN THE NAME OF GOD
    '--------------------------
    'CONFIGURE STATEMENT-------
    $regfile = "reg51.dat"
    $crystal = 12000000
    Enable Timer0
    Enable Timer1
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Timer0 = Counter , Mode = 1 , Gate = Internal
    Config Timer1 = Counter , Mode = 1 , Gate = Internal
    On Timer0 F_time0 'for wave 40 khz 'f
    On Timer1 F_time1
    Dim T_resault As Word
    Dim X As Word
    'SAVEs time of timer0 and 1
    Dim Ix_t0 As Word
    Dim Ix_t1 As Word
    Dim T0 As Word
    Dim T1 As Word
    Dim T0_timer As Word 'save time timer0
    Dim T1_timer As Word 'save time timer1
    'SETINGs and load OF TIMER----------

    Th0 = &HF4 'for create wave 40 khz
    Tl0 = &H43

    Th1 = &HB8
    Tl1 = &HFA
    'SETTING OF LCD-------------
    Cls
    Cursor Off
    Lcd "HI"
    Wait 1
    Cls
    Lcd "PROJECT RANGE"
    Lowerline
    Lcd "METER WITH 8051"
    Wait 2
    Cls
    'MAIN PROGRAM--------------
    Do
    Gosub F_recive
    Delay
    T_resault = T0 - T1
    X = T_resault * 330
    Cls
    Lcd "RANGE:" ; X
    Wait 1
    Loop
    F_recive:
    T0 = Counter0
    Stop Counter0
    Waitms 10
    If P2.6 = 1 Then
    T1 = Counter1
    Stop Counter1
    Start Counter1
    Start Counter0
    Else
    nop
    End If
    Return



    'ROUTINEs TIMERS------------------
    F_time0:
    $asm 'send pules to sensor transmiter
    cpl p2.7
    $end Asm

    Return
    F_time1:
    Incr Ix_t1
    T1_timer = Ix_t1
    If Ix_t1 = 47354 Then
    Ix_t1 = 0
    End If
    Return
    End

    ایا برنامه من درست است
    و من نقشه زیر رو بستم و به جای pic 8051 رو بستم و لی نمی دانم پایه ccpi از pic رو به چیه 8051 وصل کنم ایا شما هم همین نقشه رو بستید در صورت امکان نقشه ان رو برام بفرستید یا در همین تاپیک قرار دهید با تشکر

    شکل مدار:http://i12.tinypic.com/4hkvyfq.gif
    اول توکل
    دوم پشتکار
    سوم مشورت
    چهارم عمل
    -----------------------------------------------------------------------------------------------------------------
    نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

    دیدگاه


      #17
      sensor

      لام دوست عزیز من شوخی کردم ببخشید اگه ناراحت شدین به هر حال بگذریم

      راستش من برنامتون رو دیدم ولی من با اسمبلی میکرو کار کردم و با c کار نکردم از این بابت

      شرمنده

      راستش من هم اولش میخواستم تو این نقشه ها تغییر بدم و لی آخر بی خیال شدم

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

      کلا تو تمام مدارات آلتراسونیک بخش فرستنده و گیرنده تقریبا تو یک مایه هستش با تفاوتهای

      جزئی ، من در ادامه مداری رو که روش کار کردم گذاشتم البته من قسمت تشخیص فاصله و

      نمایش رو عوض کردم اما قسمت فرستنده و گیرنده تا خروجی آی سی 358 مانند همین

      مدار میباشد


      http://www.4shared.com/file/4462954/14b46fda/srm1_1e.html
      چنین گفت زردشت:....عاشق عاشقی باش و دوست داشتن را دوست بدار ، از تنفر متنفر باش ، به مهربانی مهر بورز با آشتی آشتی کن و از جدایی جدا باش ......

      دیدگاه


        #18
        ok

        سلام محمد اقا راستش رو بخواهید برنامه من به زبان bascom 8051 است نهc
        ببخشید پایه ی res در تایمر555 در فرستنده و گیرنده رو به میکرو وصل کنم و پالس بدم
        اول توکل
        دوم پشتکار
        سوم مشورت
        چهارم عمل
        -----------------------------------------------------------------------------------------------------------------
        نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

        دیدگاه


          #19
          sensor

          سلام شرمنده من چون اصلا با سی و چیز دیگه کار نکردم برای همین اشتباه شد به هر حال ببخشید

          بله پایه ریست توسط میکرو کنترل میشه یعنی 555 موج رو میسازه ولی شما با پایه ریست

          کنترلش می کنید که کی بفرسته و کی نفرسته

          چنین گفت زردشت:....عاشق عاشقی باش و دوست داشتن را دوست بدار ، از تنفر متنفر باش ، به مهربانی مهر بورز با آشتی آشتی کن و از جدایی جدا باش ......

          دیدگاه


            #20
            راستی

            راستی مهندس جان ببخشید این قدر مزاحم میشم و سوال می کنم حتما ازدست من کلافه شدی مهندس
            راستی ببخشیدمن مداری رو که گذاشتم و شما دیدید اصلا نمیشه باهش کار کرد چون من در این صورتمجبورم فردا برم سعدی منظورم مخلی است در مشهد که قطعاتالکترونیکی می فروشند و تایمر 555 و ...رو بخرم و حتما باید برم
            البته من منظور شما رو درباره اینکه فرمودید که فاصله های که شما در پروژه خودتان نشان می دادید من در اوردی بود یعنی چه طوری این کار رو کردی تو این طوری استاد خیلی زود می فهمه :cry: :cry: :cry: :cry: :cry: :cry: :shock: :shock: :shock: :shock: :roll: :roll: :roll: :roll: :roll: :idea:
            اول توکل
            دوم پشتکار
            سوم مشورت
            چهارم عمل
            -----------------------------------------------------------------------------------------------------------------
            نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

            دیدگاه


              #21
              sensor

              سلام دوست عزیز

              اول این رو بگم که من مهندس نیستم رشتم کاردانی سخت افزاره و اصلا مزاحم نیستید و من از سوال کردن های شما کلافه نیستم پس ناراحت نباشید :P

              اما در مورد اینکه گفتم من در بیاری منظورم این بود که روش تشخیص فاصله رو من خودم درستش کردم و از این روشهایی که همه جا میگن نیست البته هنوز مدارش رو نساختم و لی تا حدود زیادی تو پروتئوس جواب میده ولی در کل منظورم روش تشخیص فاصله بود که گفتم من در بیاری هستش نه اعداد فاصله
              اعداد فاصله تا 95 درصد صحیح هستش و بر اساس سرعت صوته و اون 5 درصد بقیه هم برای خطا در نظر گرفتم

              اگه مشکلی و سوالی هست بپرسید

              موفق باشید
              چنین گفت زردشت:....عاشق عاشقی باش و دوست داشتن را دوست بدار ، از تنفر متنفر باش ، به مهربانی مهر بورز با آشتی آشتی کن و از جدایی جدا باش ......

              دیدگاه


                #22
                too

                i am too
                اول توکل
                دوم پشتکار
                سوم مشورت
                چهارم عمل
                -----------------------------------------------------------------------------------------------------------------
                نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

                دیدگاه


                  #23
                  پاسخ : sensor

                  باسلام به شما دوستان
                  راستش رو بخواهین من مدار مربوط به التراسونیک رو بستم اما به یک مشکل خیلی بزرگ برخوردم و ان این است که:
                  من برنامه خودم رو با bascom8051 نوشتم اما در برنامه هنگامی که سیگنال توسط فرستنده فرستاده میشه تا توسط گیرنده دریافت بشه نمی دانم این زمان را هنگامی که تایمر رو بوسیله دستور stop timerX متوقف میکنم :cry:چه طور می تونم مقداری رو که در تایمر هست رو بخونم :frown: تا بوسیله ان زمانی که از توقف تایمر بدست میارم ئر فرمول x=vt بذارم و مکان رو بدست بیارم. :sad: :sad: :sad:

                  البته همین طور که عرض کردم من در bascm8051 و با زبان بیسیک برنامه نویسی می کنم. :exclaim:
                  لطفا هر چه سریعتر راهنمایی بفرمایید. :neutral: :question:
                  با تشکر
                  اول توکل
                  دوم پشتکار
                  سوم مشورت
                  چهارم عمل
                  -----------------------------------------------------------------------------------------------------------------
                  نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

                  دیدگاه


                    #24
                    پاسخ : sensor

                    خوب از تمام SFR ها رو میشه با اسم خودشون (البته با حروف بزرگ) در بسکام میشه استفاده کرد.
                    شما هم میتونید راحت مقدار TLx و THx رو داخل متغیر مورد نظرتون بریزید و داخل فرمول قرار بدید.
                    البته خودش L و H رو به حروف کوچک تبدیل میکنه که شما بی خیالش شید.
                    به همین راحتی.
                    الهم عجل لولیک الفرج

                    دیدگاه


                      #25
                      پاسخ : sensor

                      :biggrin: :smile: :mrgreen: :redface:
                      سلام دوست عزیز اقای iran-pc البته ببخشید که این طوری شما رو خطاب کردم (چون اسم کامل شما رو نمی دانم) :eek:
                      :redface: :mrgreen:
                      ببخشید اگر من بخواهم در بسکام مقدار th,tl رو در یک متغیر و یا دو ثبات مثلا به فرض دو ثبات r1 و r2
                      ذخیره کنم با ید با دستور :(در بسکام)
                      $asm
                      mov r1,th0
                      mov r2 ,tl0
                      add r1,r2



                      $end asm
                      استفاده کنم

                      حال مقادیر متغیر ما که در r1 و r2 با هم جمع کنیم و درr1 بریزیم همان مقدار شمارش شده تایمر ما است :
                      و سپس می تونم روی ال سی دی نمایش بدم (البته من در بسکام تایمر خودم رو به فرم زیر برای عملیا ت شمار ش تنظیم کردم::
                      Config Timer0 = Counter , Mode = 1 , Gate = Internal
                      من امتحان کردم ولی نشده ایا جایی از کار من ایراد داره :mrgreen: :mrgreen: :mrgreen: :sad: :sad:
                      rolleyes:


                      با تشکر :exclaim: :rolleyes:
                      نمونه برنامه من هم در زیر گذاشته ام البته کامل نیست :
                      $sim
                      :rolleyes: :rolleyes: :mrgreen: :question: 'IN THE NAME OF GOD
                      '--------------------------
                      'CONFIGURE STATEMENT-------
                      $regfile = "reg51.dat"
                      $crystal = 12000000
                      Enable Timer1
                      Enable Timer0
                      Enable Interrupts
                      Enable Int0
                      Enable Int1
                      Config Lcd = 16 * 2
                      Config Lcdbus = 4
                      Config Timer0 = Counter , Mode = 1 , Gate = Internal
                      Config Timer1 = Counter , Mode = 1 , Gate = Internal
                      On Timer1 F_time1
                      On Timer0 F_time0
                      On Int0 Int_0
                      On Int1 Int_1
                      'define for formula
                      Dim X1 As Word
                      Dim X2 As Word
                      Dim Total_x1_x2 As Word
                      'Dim C_bit As Bit
                      Dim Place As Single
                      'SETINGs and load OF TIMER----------
                      Th1 = &HB8 'load timer 16 bit =65353
                      Tl1 = &HF9

                      Th0 = &HB8
                      Tl0 = &HF9
                      'SETTING OF LCD-------------
                      Cls
                      Cursor Off
                      Lcd "HI"
                      Wait 5
                      Cls
                      Lcd "PROJECT RANGE"
                      Lowerline
                      Lcd "METER WITH 8051"
                      Wait 5
                      Cls
                      Upperline
                      Lcd "Min Range=2.8cm"
                      Wait 2
                      Lowerline
                      Lcd "Max Range=3m"
                      Wait 5
                      'MAIN PROGRAM--------------
                      Do
                      Start Counter0
                      Start Counter1
                      Set P2.0
                      Delay
                      If P2.1 = 1 Then
                      Total_x1_x2 = X1 - x2
                      Place = 345.5 * Total_x1_x2
                      Place = Place / 2
                      Stop Counter0
                      Stop Counter1
                      Cls
                      Lcd "Equal Range=" ; Place
                      Wait 2
                      Lowerline
                      Lcd "MAX RANGE=3m"
                      Wait 30
                      End If
                      Counter0 = 0
                      Counter1 = 0
                      Loop
                      'ROUTINEs TIMERS------------------
                      F_time1: '
                      Incr X1
                      If X1 = 65353 Then
                      X1 = 0
                      End If
                      Return
                      F_time0:
                      Incr X2
                      If X2 = 65353 Then
                      X2 = 0
                      End If
                      Return
                      Return
                      '--END OF PROGRAM
                      :exclaim: End
                      مقادیر x1,x2 تفاضل مدت زمانی است که فرستنده امواج رو فرستاده تا گیرنده دریافت کرده است
                      اول توکل
                      دوم پشتکار
                      سوم مشورت
                      چهارم عمل
                      -----------------------------------------------------------------------------------------------------------------
                      نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

                      دیدگاه


                        #26
                        پاسخ : sensor

                        سلام.
                        اینی که بالا نوشتی چیه؟
                        از هر تیکه یه چند خط نوشتی؟
                        شما اصلا کجا به این x1 و x2 مقدار دادی؟
                        مشکلت کجاست؟
                        تو هم مثل من خیلی شلخته برنامه مینویسیا.
                        در ضمن برای گرفتن مقدار SFR ها یا دادن مقدار به اونا نیازی به اسمبلی نیست.
                        شما باید هر باری که به آلترا سونیک فرکانس میدی اون تایمری که برای اندازه گیری بازخورد گذاشتی رو ریست کنی.و بعد مقادیر THx و TLx رو بعد از وقوع وقفه بازخورد اندازه گیری کنی.

                        الهم عجل لولیک الفرج

                        دیدگاه


                          #27
                          پاسخ : sensor

                          سلام
                          ببخشید که این قدر شلخته وار نوشتم.
                          شاید شما منظور من رو خوب متوجه نشدید راستش رو بخواهین من در برنامه فوق تایمر رو به عنوان کنتر معرفی کردم و عملکرد ان هم به این صورت است تا زمانی که فرستنده سیگنال رو ارسال میکنه تا زمانی که گیرنده سیگنال رو دریافت میکنه کنتر در هر دو مورد شروع به شمارش میکند بعد اختلاف انها رو بدست می اوریم سپس زمان بدست امده ر در فرمول x=v*t
                          و فاصله رو بدست می اوریم
                          ((البته در کتاب 8051 تالیف مزیدی راجع به کنتر نوشته شده که باید یک پالس مثلا 1 هرتز رو به پایه های p3.4 و یا p3,5 اعمال کنیم تا کنتر شروع به شمارش کنه(صفحه 151

                          من در برنامه ه این صورت عمل کردم:
                          C_bit = P2.1
                          If C_bit = 1 Then
                          _x1 = X1
                          Stop Counter0

                          p2.1 به مدار گیرنده وصل است .مقدار شمارش شده که در روتین(((on timer0 label))) مربوط به تایمر هستش (((یعنی با اعمال پالس به پایه p3.4 که مربوط به تایمر 0 است کنتر شروع به شمارش میکنه))))
                          سپس مقادار شمارش شده رو در _x1 ذخیره میکنم و مقدار رو در فرمول قرار و فاصله رو بدست میارم

                          اگر اشکالی نداره لطفا عمل توقف تایمر و خوانده مقدار شمارش شده تایمر رو با یک مثال نشان دهی(((اگر برنامه من ایراد دارد راهنمایی بفرمایید
                          اول توکل
                          دوم پشتکار
                          سوم مشورت
                          چهارم عمل
                          -----------------------------------------------------------------------------------------------------------------
                          نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

                          دیدگاه


                            #28
                            پاسخ : sensor

                            اندکی صبر.
                            جواب میدم.
                            الهم عجل لولیک الفرج

                            دیدگاه


                              #29
                              پاسخ : sensor

                              سلام
                              دست شما درد نکنه
                              من منتظر هستم
                              موفق باشید.
                              اول توکل
                              دوم پشتکار
                              سوم مشورت
                              چهارم عمل
                              -----------------------------------------------------------------------------------------------------------------
                              نرم افزار برای دانلود نامحدود از rapideshare: http://k12student.persiangig.com/other ------- تشکر یادتون نره. موفق باشید.

                              دیدگاه


                                #30
                                پاسخ : sensor

                                راستش حالا حالا ها وقت ندارم کامل توضیح بدم.
                                ولی یه توضیح اجمالی.
                                اول اینکه شما فعلا تایمر هارو به صورت کونتور تعریف نکن.( تا بعد که از تست اول سر بلند بیرون اومد).
                                بعدشم اینکه معمولا توی مدارهای تقویت کننده که برای گیرنده به کار میره تا زمانی که گیرنده چیزی رو نگرفته ورودی 1 هست و بعد از دریافت سیگنال اولین سیگنال 0 هست که میشه به وقفه خارجی وصلش کرد (فعلا).
                                مطلب دیگه اینکه به نظر این حقیر این فرستنده نیست که دائم باید پالس بفرسته بلکه گیرنده هست که دائم باید منتظر پالس بمونه.
                                البته ممکنه روش مرسوم دیگه ای هم باشه چون اینی که میگم برداشت خودم از کار این سنسوره.
                                فرستنده باید به قدر مینیمم اندازه مد نظر سیگنال بفرسته و گیرنده هم از اول زمان استارت فرستنده باید ریست بشه و زمان کار مجدد فرستنده باید با ماکزیمم اندازه مد نظر طراحی بشه.
                                اینم مد نظر داشته باش که تو کار با این سنسور یادت نره که امواج یکسری فرستاده میشند و پس از بازخورد به گیرنده میرسند (یعنی فاصله بدست آمده با توجه به سرعت صوت رو باید نصف کنی تا فاصله اصلی بدست بیاد).
                                با این کاری که گفتم (و البته با اسمبلی که دقیق تره) میتونی به صورت تئوری (در ایده آل ترین حالت) فواصلی با دقت 16 صدم میلیمتر رو هم اندازه گیری کنی.
                                امیدوارم به دردت بخوره.
                                موفق باشید.
                                الهم عجل لولیک الفرج

                                دیدگاه

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