اطلاعیه

Collapse
No announcement yet.

کمک در مورد شمارنده صعودی و نزولی

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

    کمک در مورد شمارنده صعودی و نزولی

    سلام
    من میخام یک شمارنده سعودس و نزولی با مگا8 درست کنم مه روی سگمنت 4 تایی بوده و 9999 را شمارش کنید که دوتا میکرو سوئیچ داشته بافشار یکی رقم مورد نطر بالا رفته و با فشار دیگر رقم مورد نظر پایین رفته و همچنین هر بار در ایپرام داخلی avr سیو کند و یک دگمه هم بگذاریم که ایپرام را ری ست کند و پاک کند............
    تقریبا بشتر کار را بلدم فقط در قسمت سون سگمنت موندم که چی کار کنم
    یعنی چه جوری میشه یک مقدار را روی سون سگمنت به صورت مالتی پلکس نشان داد
    البته می تونم یک عدد ثابت مثلا1236 را روی سون سگمن ماالتی پلکس نمایش دهم اما دیگه نمی تونم مثلا در طول برنامه ان را با دستور افزایش یا کاهش دهم
    می تونید راهنمایی کنید

    #2
    پاسخ : کمک در مورد شمارنده صعودی و نزولی

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


    اینهم خود برنامه :
    $regfile = "m32def.dat"
    $crystal = 8000000
    Config Timer0 = Timer , Prescale = 1024
    Enable Interrupts
    Enable Timer0
    On Timer0 7seg
    Start Timer0
    Timer0 = 204 '150hz timer freq
    Config Porta = Output
    Config Portc = Output
    Dim A As Byte
    Dim Sel_7seg As Byte
    Dim Sadgan As Byte
    Dim Dahgan As Byte
    Dim Yekan As Byte
    Dim Flag As Byte
    Dim Tmp As Byte

    Do
    Incr A
    Sadgan = A / 100 'calculating sadgan
    Tmp = A Mod 100
    Dahgan = Tmp / 10 'calculating dadgan
    Yekan = Tmp Mod 10 'calculating yekan
    Waitms 100
    Loop
    End 'end program
    7seg:
    Timer0 = 204
    Incr Sel_7seg
    Select Case Sel_7seg
    Case 1 :
    If Sadgan <> 0 Then
    Portc.5 = 1 : Portc.6 = 0 : Portc.7 = 0 'select sadgan 7seg
    Flag = Sadgan 'load value of sadgan to flag reg
    End If
    Case 2 :
    If Dahgan <> 0 Or Sadgan > 0 Then
    Portc.5 = 0 : Portc.6 = 1 : Portc.7 = 0 'select dahgan 7seg
    Flag = Dahgan 'load value of sadgan to flag reg
    End If
    Case 3 :
    Portc.5 = 0 : Portc.6 = 0 : Portc.7 = 1 'select yekan 7seg
    Flag = Yekan 'load value of sadgan to flag reg
    Sel_7seg = 0



    End Select
    Porta.2 = Flag.0 : Porta.3 = Flag.1 : Porta.4 = Flag.2 : Porta.5 = Flag.3
    'send the value of the flag to 7447

    Return


    در اخر هم اینهم فایل شبیه سازی شده و فایل بسکام ان :
    http://rapidshare.com/files/151388918/7seg.zip.html
    می توانید بگویید چرا برنامه فوق درست کار نمی کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟
    ایا ایراد داره ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    اایا میشه برنامه فوق را به سون سگمنت 4 تایی تبدیل کرد درصورتی که درست کار کنه
    به نظرم درست کار نکردن ان مربوط به کریستال مدار هست ایا درسته ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    دیدگاه


      #3
      پاسخ : کمک در مورد شمارنده صعودی و نزولی

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

      دیدگاه


        #4
        پاسخ : کمک در مورد شمارنده صعودی و نزولی

        به نظر میاد برنامه مشکلی نداشته باشه.
        تو پروتئوس چجوری نشون میده؟

        دیدگاه


          #5
          پاسخ : کمک در مورد شمارنده صعودی و نزولی

          سلام.

          برنامه رو خودت بنویس تا به برنامه تسلط داشته باشی.

          تو لوپ اصلی تست کلید و محاسبات رو انجام بده و در سرریز تایمر رفرش رو انجام بده.
          www.icesi.ir

          دیدگاه


            #6
            پاسخ : کمک در مورد شمارنده صعودی و نزولی

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

            1- عدد A با سرعت بسیار زیادی تغییر می کرد برای دیدن این عدد روی Segment باید یه دستور Wait یا Waitms به لوپ اصلی برنامه زیاد کنی
            2- یادت باشه اول عدد رو به PortَA بفرستی بعد سگمنت ها رو روشن کنی در غیر این صورت اعداد نا خوانا روشن می شود
            3- در آخر برنامه قبل از Return یادت باشه که باید برای یه مدت زمان خاص عدد رو نمایش بدی و بعد باید همه سگمنت ها رو خاموش کنی در غیر این صورت عدد نمایش داده شده قبل و عذذ نمایش داده شده بعد با هم مخلوط می شود

            در آخر از سخت افزار مدار مطعن بشو چون اگر همین طوری که توی نقشه شماتیک کشیدی پایه Com سگمنت ها رو مستقیم به میکرو وصل کنی یا نور سگمنتها خیلی کم میشه یا پورت خروجی میکرو میسوزه

            موفق باشی

            دیدگاه


              #7
              پاسخ : کمک در مورد شمارنده صعودی و نزولی

              سلام
              من برنامه شمارنده صعودی را روی سون سگمنت مالتی پلکس نوشتم
              فقط یه سوال دارم
              من در مدار از مگا 8 و 7448 استفاده کرده ام ایا لازم هست بین ای سی 7448 و سون سگمنت مقاومت قرار دهم یا لازم نیست ؟؟؟؟؟؟؟؟؟؟؟
              مقدار مقامت چه قدر باشد ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

              دیدگاه


                #8
                پاسخ : کمک در مورد شمارنده صعودی و نزولی

                سلام دوست عزیز
                بله حتما باید مقاومت باشد این مقاومت باید بیت پایه های خروجی 7447 و سگمنت باشه
                به این مقاومت مقاومت محدود کننده جریان می گن مقدار این مقاومت باید طوری تنظیم بشه که از جروجی آی سی بیشتر از حداکثر جریان مجاز، جریان عبور نکنه
                مقدار این مقاومت هم از فرمول V = I*R محاسبه میشه :smile:
                مثلا برای مدار شما با ولتاژ کار 5 ولت وحداکثر جران 15 میلی آمپر برای راه اندازی هر LED سگمنت باید از مقاومت 330 اهم استفاده بشه
                در آخر باز هم تاکید میکنم هیچ وقت پایه های portc میکرو را این طوری که توی شماتیک کشیدی مستقیم به سگمنت ها وصل نکنی حتما باید یک بافر سر راه اون قرار بدی

                موفق باشی

                دیدگاه


                  #9
                  پاسخ : کمک در مورد شمارنده صعودی و نزولی

                  سلام
                  من شمارنده صعودی و نزولی مالتی پلکس را تو پروتیوس طراحی کردم و درست کار می کنه
                  حالا چند تا سوال دارم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟///
                  زمان مالتی پلکس را چه قدر انتخاب کنیم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟///

                  برای درایو سون سگمنت مالتی پلکس ایا ترانزیستور لازم هست یا همون طوری میشه وصل کرد ؟؟؟؟؟؟؟؟/
                  لطفا شماتیک ترانیزستور به اضافه مقاومت های بایاس انرا بگذارید ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
                  در ضمن مقدار مقاومتی را که باید بین سون سگمنت و میکرو بگذارم چه قدره ؟؟؟؟؟؟؟؟؟؟؟؟؟//

                  دیدگاه

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