اطلاعیه

Collapse
No announcement yet.

شمارنده

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

    شمارنده

    سلام دوستان من برنامه زیر را که یک شمارنده 0 تا 9با تاخیریک ثانیه است را در بیسکام نو شتم .و امتحان کردم درست کار می کند چند تا سوال داشتم :
    برای دقیق تر شدن زمان تاخیر مثلا یک ثانیه باید چه دستوری را به برنامه زیر اضافه کنم منظورم اینه که چه جوری از تایمر میکرو برای زمان دقیق استفاده کنم ؟؟؟؟؟؟؟؟؟
    ایا می شود این برنامه را به طریق دیگری نوشت ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    من می خواهم یک شمارنده 0 تا 1000 را با سون سگمنت ملتی پلکس بنویسم میشه من را در مورد برنامه نویسی اش کمک کنید اخه من از برنامه نویسی ملتی پلکس سر در نمی اورم؟؟؟؟؟؟؟؟؟؟؟
    Config Portb = Output
    Dim B As Byte
    Dim C As Byte
    Dim D As Byte
    Dim E As Byte
    Dim F As Byte
    Dim G As Byte
    Dim H As Byte
    Dim I As Byte
    Dim J As Byte
    Dim K As Byte
    B = &B00111111
    C = &B00000110
    D = &B01011011
    E = &B01001111
    F = &B01100110
    G = &B01101101
    H = &B01111101
    I = &B00000111
    J = &B01111111
    K = &B01101111
    Do
    Portb = B
    Waitms 1000
    Portb = C
    Waitms 1000
    Portb = D
    Waitms 1000
    Portb = E
    Waitms 1000
    Portb = F
    Waitms 1000
    Portb = G
    Waitms 1000
    Portb = H
    Waitms 1000
    Portb = I
    Waitms 1000
    Portb = J
    Waitms 1000
    Portb = K
    Waitms 1000
    Loop
    End


    #2
    پاسخ : شمارنده

    شما بجای دستورات تاخیر می تونی از دستورات تایمر استفاده بکنی از تایمر 16 بیتی چون 1000 هگزش میشه 03E8
    بعد برای شروع دوتا سگمنت رو کنار هم بذار مثلا سون سگمنت هاتو کاتد مشترک استفاده بکن و برای دیکدر اونا از 7448 استفاده بکن
    فقط تمامی خطوط a تا f اون دوتا سون سگمنت رو با هم موازی بکن و اونا رو به خروجی ای سی دیکدر بزن

    برای مالتی پلکس هم کاتد هر سون سگمنت رو به امیتر ترانیستور BC107 بزن بعد کلکتور رو به تغذیه 5 ولت بزن ( کل سون سگمنت با 3 ولت و جریان کافی روشن میشه پش شما مابین کلکتور و تغذیه مقاومت 3-5 تقسیم بر جریان عبوری رو بذار برای محدود کردن جریان این مسله رو می تونی با آزمون خطا درست تنظیم بکنی )

    حالا بیس این ترانزیستور ها رو هم با یه مقاومت ( هم مقدار بالائی ) بزن به دو تا خروجی میکرو

    حالا توی برنامه چی کار باید بکنی با فعال کردن اون دو تا پایه سون سگمنت ها تغذیه اشون وصل میشه و می تونی روی اونا اطلاعات بفرستی

    برای اینکه توی شروع راحت تر باشی این کار رو بهت توصیه می کنم
    اول دنبال ثابت نمایش داده شدن نباش

    بگو 1- می خوام سون سگمنت رو روشن بکنم ( اون پایه رو یک بکن )
    2- حالا اطلاعات رو می ذارم روی پورت که بره روی دیکدر و بره روی سون سگمنت
    3- بعد از یک ثانیه این کار رو برای اون یکی سون سگمت تکرار بکن و این یکی رو خاموش بکن


    حالا نکته اساسی همین جاست که اگه این زمان تاخیر مابین رو کم بکنی اروم اروم به هدفت می رسی

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

    از همون برای شمارش های 1 ثانیه

    حالا چطوری اینا رو بهم ربط بدیم اینم کار سختی نیست
    برای اینکه تیو عمل مالتی پلکس اطلاعات هر دو ال سی دی ثابت نمایش داده بشه کافیه اونا تو هر ثانیه باید چرخه ( سون سگمنت روشن بکن اطلاعات بفرست ) بالای 25 دفعه تکرار بشه

    این فقط برای 1 سون سگمنته
    یعنی یه دونه سون سگمنت توی هر ثانیه مثلا 25 بار روشن بشه فرکانش؟؟؟ 25 هرتز


    پس شما باید این چرخه رو برای دوتا سون سگمنت این جوری اجرا بکنی باید فرکانس بشه ؟؟؟ 50 هرتز



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

    موفق باشی

    دیدگاه


      #3
      پاسخ : شمارنده

      سلام
      برای ایجاد تایم دقیق می تونید از تایمر شماره 2 میکرو استفاده کنید التبه باید RTC رو هم به پایه های
      TOC1 و TOC2 وصل کنید که مقدار این RTC هست 32768 هرتز
      CONFIG TIMER2 =TIMER ,ASYNC =ON , PRESCALE = 128
      ENABLE INTERUPTS
      ENABLE TIMER2
      ON TIMER2 BNMO
      DIM A AS BYTE
      DO
      LOOP
      END
      BNMO:
      INCR A
      RETURN
      در برنامه بالا ما از RTC برای کلاک تایمر شماره 2 استفاده کردیم این برنامه هر یک ثانیه یک بار به زیر برنامه می ره و دستورات داخل این زیربرنامه رو اجرا می کنه البته با تایم دقیق . اتفاقا قسمت جدید اموزش میکروکنترلرها AVR به زبان ساده در مورد همین تایمر شماره 2 و RTC هستش . بازم کمکی بود در خدمتم :smile:
      انجمن LABVIEW
      http://www.eca.ir/forum2/index.php?board=279.0
      اموزش میکروکنترلرهای AVR به زبان ساده
      http://www.eca.ir/forum2/index.php/topic,7070.0.html

      دیدگاه


        #4
        پاسخ : شمارنده

        سلام
        ممنون از توضیحاتتون میشه برنامه بالایی را با برنامه تایمر 2 مخلوط کرده و بنویسید

        دیدگاه


          #5
          پاسخ : شمارنده

          از بین این همه کاربر کسی نیست ما رو کمک کنه

          دیدگاه

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