اطلاعیه

Collapse
No announcement yet.

سوال در مورد تبدیل آنالوگ به دیجیتال

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

    سوال در مورد تبدیل آنالوگ به دیجیتال

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

    #2
    پاسخ : سوال در مورد تبدیل آنالوگ به دیجیتال

    اگر شما میخواهید مقدار ثبات رو مستقیم نشون بدین عدد اعشاری نمیاد ولی اگر بخواهین روی مقدار ثبات dptr عمل تقسیم انجام بدین تا به اون رنج دلخواهتون برسه .. من خودم توی یه پروژه 8051 (البته آنالوگ به دیجیتال 8 بیتی بود) ..از دستور div a,b استفاده کردم که مقدار a را در b تقسیم میکند و خارج قسمت را در a و باقی مانده را در b میریزد و شما این 2 رو بصورت a.b روی lcd نشون میدین که یعنی مثلا خارج قسمت a=4 و باقی مانده b=3 باشد عدد روی lcd = 4.3 میشود ...اگر مشکلتون تقسیم کردن ثبات 16 بیتی است که خودتون باید یه ترفندی بزنید و اگر مشکل کار با lcd است که بگین تا کمکتون کنم...نمیدونم مشکلتون حل شده یا نه ...اگر نه که بگین مشکل دقیقا چیه تا بتونم کمکتون کنم
    دست هایی که کمک میکنند از دست هایی که دعا میکنند مقدس ترند....کوروش کبیر

    دیدگاه


      #3
      پاسخ : سوال در مورد تبدیل آنالوگ به دیجیتال

      مقدار بدست امده را مثلا 100 برابر کنید بعد با یک نقطه به صورت اعشار نمایش دهید
      بعدا یه جمله قشنگ مینویسم

      دیدگاه


        #4
        پاسخ : سوال در مورد تبدیل آنالوگ به دیجیتال

        سلام
        یه عدد صحیح دودیی 16 بیتی رو میتونید با استفاده از الگوریتم زیر به یک رشته ASCII برای نمایش روی LCD تبدیل کنید. اعشاری رو نمیدونم! :mrgreen:
        این الگوریتم برای اسمبلی 8051 هست و در اون ورودی R6 و R7 هستن (R6 بایت با ارزش) و خروجی در 32H-36H قرار میگیره.


        ;**********************************
        WORD2STR:
        MOV 36H,#0
        MOV 35H,#0
        MOV 34H,#0
        MOV 33H,#0
        MOV 32H,#0
        MOV B,#10
        MOV A,R7
        DIV AB
        MOV 36H,B
        MOV B,#10
        DIV AB
        MOV 35H,B
        MOV 34H,A
        CJNE R6,#0H,HIGH_BYTE ; CHECK FOR HIGH BYTE
        JMP ENDD

        HIGH_BYTE:
        MOV A,#6
        ADD A,36H
        MOV B,#10
        DIV AB
        MOV 36H,B
        ADD A,#5
        ADD A,35H
        MOV B,#10
        DIV AB
        MOV 35H,B
        ADD A,#2
        ADD A,34H
        MOV B,#10
        DIV AB
        MOV 34H,B
        MOV R4,33H
        CJNE R4,#00D,ADD_IT
        SJMP CONTINUE
        ADD_IT: ADD A,33H
        CONTINUE:
        MOV 33H,A
        DJNZ R6,HIGH_BYTE
        MOV B,#10
        MOV A,33H
        DIV AB
        MOV 33H,B
        MOV 32H,A
        ENDD: ORL 32H,#30H
        ORL 33H,#30H
        ORL 34H,#30H
        ORL 35H,#30H
        ORL 36H,#30H
        RET
        ;**********************************

        دیدگاه


          #5
          پاسخ : سوال در مورد تبدیل آنالوگ به دیجیتال

          خیلی ممنون که کمکم کردید

          دیدگاه

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