اطلاعیه

Collapse
No announcement yet.

فاصله یاب آلتراسونیک با 8051

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

    فاصله یاب آلتراسونیک با 8051

    سلام به همه گی.آقا تو رو خدا کمک کنید کارم بد جوری گیره.من یک مدار فاصله یاب آلتراسونیک با میکرو 8051 میخوام.خیلی دنبالش گشتم ولی همه اش مدارات با pic هست.به خدا ممنون میشم اگه کسی کمک کنه :sad:

    #2
    پاسخ : فاصله یاب آلتراسونیک با 8051

    خبری نشد؟؟؟؟؟؟

    دیدگاه


      #3
      پاسخ : فاصله یاب آلتراسونیک با 8051

      سلام دوست عزیز .
      اگه یکم با دقت بیشتر جستجو کنی حتما یه چیزای بدست میاری .
      بهر حال به لینکهای زیر یه سر بزن شاید بدردت بخوره.

      http://www.eca.ir/forum2/index.php/topic,5414.msg20333.html#msg20333
      http://www.hobby-elec.org/e_menu.htm

      موفق باشی.
      خبرآمد خبري در راه است
      سرخوش آن دل كه از آن گاه است

      دیدگاه


        #4
        پاسخ : فاصله یاب آلتراسونیک با 8051

        مرسی ولی برای کد نویسی من ی مشکلی دارم. وقتی که فرکانس 40 کیلو هرتز را فعال میکنیم و فرستنده را روشن میکنیم باید تایمر را راه بیاندازیم و وقتی که سیگنال را در یافت میکنیم باید تایمر را خاموش کنیم و بعد زمان را بدست آورده و مراحل بعدی.ولی من مشکلم اینجاست که مگر برای راه اندازی تایمر نباید به آن مقدار داد؟ پس چه جوری میتونم وقتی تایمر را خاموش میکنیم زمان اندازه گیری شده را بدست اورد. یکی از دوستان تو همین فروم لینک گذاشته بود برا8051 ولی مثل که پاک شده اگه کسی داره لطف کنه پلود کنه.مرسی

        دیدگاه


          #5
          پاسخ : فاصله یاب آلتراسونیک با 8051

          سلام دوست عزیز
          من برنامه رو زیر قرار میدم که با 8051 به زبان اسمبلی نوشته شده .
          دوست عزیز دقت کن اگه به تایمر ها درست نگاه انداخته باشی میدونی که
          یک نوع تایمر خود بار کننده (reload timer ) داریم که یکبار مقدار دهی میکنیم و
          پشت سر هم شروع به شمارش می کنه . من شاید اون جوری که کار میکنم
          نتونم توضیح بدم ولی سعی مو کردم تو برنامه توضیح بدم .
          من این برنامه رو با توضیحاتش که جلوش مینویسم گذاشتم زیر یه نگاه بندازی حله .




          org 30h
          mov tmod,#02h ;select the timer
          mov th0,#-58
          mov r1,#00h
          mov a,#00h
          clr c
          mov p1,a ;show 0 in port 1
          mov p3,r1 ;show 0 in port 3
          loop:jb p2.0,loop ;active LOW ,send the signal
          setb tr0 ;start reload timer
          wait:jnb tfo,wait ;is the timer full , 58us
          clr tf0 ;clear tf0 for next reloading
          add a,#1 ;add register a with 1
          da a
          jc port ;if a has a carry , jump to port label
          jb p2.1,wait ;if there is a bit in p2.1 jump to wait label
          mov p1,a ;send a register to port 1 for show on segment
          sjmp $ ;its a symbol ,whit this command program jump to this line like a loop
          port:inc r1 ;add a 1 unit to r1
          mov p3,r1 ;show r1 to port 3
          mov a,#00h ;reset lsb
          clr c ;clear carry
          jmp wait
          end

          همون تور که میبینی من از تایمر 2 استفاده کردم که یک ریلود تایمئ هستش .راستی منطق من اکتیو LOW بود .
          در ضمن اون $ sjmp یعنی اینکه مدار به همون خط پرش کنه یا بهتره بگم تو یه لوپ قفل میشه . این مدار دو کلید داره که با زدن کلید موج فرستاده میشه و شمارش شروع میشه و به محض رسیدن سیگنال زمان متوقف میشه و............... ولی برای اینکه میکرو دوباره شمارش کنه یک کلید ریست نیز باید برای مدار قرار داده بشه چون برنامه بعد از نشون دادن مسافت تو یه لوپ گیر میکنه . خودم این شکلی خواستم بشه .
          من از فرشتنده با nand استفاده کردم از 555 هم میشه به خوبی استفاده کرد .

          امیدوارم مفید بوده باشه

          دیدگاه


            #6
            پاسخ : فاصله یاب آلتراسونیک با 8051

            مرسی دوست عزیز.من قصد دارم که فرکانس 40 کیلو را با 8051 درست کنم فکر کنم باید با وقفه ها درست کنم. من خودم برنامه شو نوشتم ببینید کجای کار اشکال داره که درست اجرا نمیشه.البته مراحل پردازش روی عدد بدست آمده مانده.

            ORG 0H
            MOV P0,#0FFH
            MOV P1,#0
            LJMP MAIN

            M: MOV TMOD,#12H
            MOV TL0,#-12
            MOV TH0,#-12
            E: SETB TR0
            H: JNB TF0,H
            CLR TR0
            CLR TF0
            CPL P2.0
            SJMP M

            ORG 0013H
            MOV TL1,#0
            MOV TH1,#0
            SETB TR1
            HERE: JB P0.0,HERE
            CLR TR1
            MOV A,TL1
            MOV B,TH1
            MOV P1,A
            SJMP M


            ORG 30H
            MAIN: MOV IE,#10000100B
            SJMP M




            END

            دیدگاه

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