اطلاعیه

Collapse
No announcement yet.

مشکل در مالتی پلکس کردن سگمنت

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

    مشکل در مالتی پلکس کردن سگمنت

    سلام من یه برنامه ساعت نوشتم که برای نمایش زمان از سونسگمنت استفاده میکنه
    7سگمنتها با هم مالتیپلکس شدن . تو پروتئوس کار میکنه ولی رو برد بستم تمام عددها روشن هستن و زمانو نمیشه فهمید
    برنامه رو میزارم ببینین مشکل از برنامه هست یا چیزه دیگه اییه
    ممنون میشم کمکم کنید.
    $regfile = "M8def.dat "
    $crystal = 8000000
    Dim A As Byte
    Dim B As Byte
    Dim C As Byte
    Dim D As Byte
    Dim E As Byte
    Dim F As Byte
    Config Portb = Output
    Config Portd = Output
    Config Portc.0 = Output
    Config Pinc.1 = Input
    Enable Interrupts
    Config Clock = Soft , Gosub = Sectic
    Dim Minute As Bit
    Minute Alias Pinc.1
    A = 0
    B = 0
    C = 0
    D = 0
    E = 0
    F = 0

    Dim Hour As Bit
    Config Pinc.2 = Input
    Hour Alias Pinc.2






    Do
    Reset Portb.0
    Set Portb.1
    Set Portb.2
    Set Portb.3
    Set Portb.4
    Set Portb.5
    Portd = Lookup(a , Lable1)
    Waitms 40
    Set Portb.0
    Reset Portb.1
    Set Portb.2
    Set Portb.3
    Set Portb.4
    Set Portb.5
    Portd = Lookup(b , Lable1)
    Waitms 100
    Set Portb.0
    Set Portb.1
    Reset Portb.2
    Set Portb.3
    Set Portb.4
    Set Portb.5
    Portd = Lookup(c , Lable1)
    Waitms 100
    Set Portb.0
    Set Portb.1
    Set Portb.2
    Reset Portb.3
    Set Portb.4
    Set Portb.5
    Portd = Lookup(d , Lable1)
    Waitms 100
    Set Portb.0
    Set Portb.1
    Set Portb.2
    Set Portb.3
    Reset Portb.4
    Set Portb.5
    Portd = Lookup(e , Lable2)
    Waitms 100
    Set Portb.0
    Set Portb.1
    Set Portb.2
    Set Portb.3
    Set Portb.4
    Reset Portb.5
    Portd = Lookup(f , Lable3)
    Waitms 100
    Loop

    Sectic:
    ''''''''&# 039;'''''''&#03 9;'''
    ''''''''&# 039;'''''''&#03 9;'''
    If Minute = 0 Then
    Incr C
    If C = 10 Then
    C = 0
    Incr D
    If D = 6 Then
    D = 0
    End If
    End If
    End If
    If Hour = 0 Then
    Incr E
    End If
    ''''''''&# 039;'''''''&#03 9;'''
    ''''''''&# 039;'''''''&#03 9;'''
    Toggle Portc.0
    Incr A
    If A = 10 Then
    A = 0
    Incr B
    End If
    ''''''''&# 039;''''''
    If B = 6 Then
    B = 0
    Incr C
    End If
    ''''''''&# 039;'''''''
    If C = 10 Then
    C = 0
    Incr D
    End If
    ''''''''&# 039;'''''''&#03 9;
    If D = 6 Then
    D = 0
    Incr E
    End If
    ''''''''&# 039;'''''''&#03 9;'
    If E = 10 Then
    E = 0
    Incr F
    End If
    ''''''''&# 039;'''''''&#03 9;'''''''
    If F = 2 And E = 4 Then
    F = 0
    E = 0
    End If
    Return
    ''''''''&# 039;'''''''&#03 9;'''''''' ''
    Lable1:
    Data &B11000000 '00111111
    Data &B11111001 '00000110
    Data &B10100100 '01011011
    Data &B10110000 '01001111
    Data &B10011001 '01100110
    Data &B10010010 '01101101
    Data &B10000010 '01111101
    Data &B11111000 '00000111
    Data &B10000000 '01111111
    Data &B10010000 '01101111

    Lable2:
    Data &B00111111 '0
    Data &B00000110
    Data &B01011011
    Data &B01001111
    Data &B01100110
    Data &B01101101
    Data &B01111101
    Data &B00000111
    Data &B01111111
    Data &B01101111
    Data &B00111111
    Data &B00000110
    Data &B01011011
    Data &B01001111
    Lable3:
    Data &B00111111
    Data &B00000110
    Data &B01011011
    Data &B01001111

    #2
    پاسخ : مشکل در مالتی پلکس کردن سگمنت

    خب اگه میگی تو پروتئوس جواب میده و در عمل نه ، احتمالا مشکل سخت افزاری داری. وضعیت پایه C.1 چجوریه؟ اونو زمین کردی یا نه؟
    میگی یه عدد نشون میده ، درسته؟ خب چی نشون میده؟

    دیدگاه


      #3
      پاسخ : مشکل در مالتی پلکس کردن سگمنت

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

      دیدگاه


        #4
        پاسخ : مشکل در مالتی پلکس کردن سگمنت

        من دقیق برنامه رو ندیدم ولی فکر می کنم از سخت افزار باشه. دستی می تونی سگمنت ها رو تغییر بدی؟

        دیدگاه


          #5
          پاسخ : مشکل در مالتی پلکس کردن سگمنت

          سلام.

          منم دقیقا همچین مشکلی داشتم. ولی من 8 سون سگمنت داشتم.

          تو لوپ اصلی برنامه هرکاری برای سون سگمنت ها کردی رو حذف کن. و یکی از تایمر ها رو روی 3 یا 5 میلی ثانیه(البته بستگی به تعداد 7 سگمنت ها داره). و در هر بار سرریز شدن تایمر یکی از 7سگمنت ها رو روشن و قبلی رو خاموش کن.

          اینطوری هم برنامه کمتر میشه و هم خیلی دقیق کار میکنه.
          www.icesi.ir

          دیدگاه


            #6
            پاسخ : مشکل در مالتی پلکس کردن سگمنت

            اگه برنامه رو بزاری ممنون می شم هر کاری می کنم جواب نمیده

            دیدگاه


              #7
              پاسخ : مشکل در مالتی پلکس کردن سگمنت

              سلام ما جلوی آقا میلاد جسارته اگه بخوایم نظر بدیم اما امکان داره از اتصالات 7seg باشه من یه بار همین مشکل یه دو هفته ای گریبانم رو گرفته بود . با توجه به این که توی نرم افزار جواب میده هر امکان مشکل خت افزاری میشه داد . شما اگه امکان داره سورس برنامه رو مرحمت کنی همه چیز مشخص میشه . ممنون و موفق باشید .


              [hr]عاشقان نقطه ی پرگار وجودند ولی عشق داند که در این دایره سرگردانند
              دوستان! مدتی کمتر به سایت میام ..

              دیدگاه


                #8
                پاسخ : مشکل در مالتی پلکس کردن سگمنت

                من الان برنامه رو یه نگاه انداختم.
                Minute چیه؟ متغیر تعریف کردی یا به عنوان یه پایه ورودی؟ هر دوتاشو باهم تعریف کردی.
                حالا یه سری نکته:
                1- برنامه تو رو من کامپیال کردم و طبق انتظار خطا داد.
                2- اگه قراره دقیقه و ساعت توسط دوتا پایه کنترل بشن پس بهتره دستور Dim Minute as Bit رو حذف کنی.
                3- چون برای Hour هم پایه C.2 رو در نظر گرفتی پس باید اون رو هم به عنوان ورودی تعریف کنی ( Config pinc.2=output ) و البته Dim Hour as Bit رو پاک کنی.
                4- پایه C.0 رو به عنوان خروجی تعریف کردی. پس باید اینطوری پیکربندیش کنی : Config pinc.0 = Output

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

                دیدگاه


                  #9
                  پاسخ : مشکل در مالتی پلکس کردن سگمنت

                  سلام به مهندسین عزیز
                  شما چطوری 7 تا سگمنت رو با هم به میکرو وصل میکنید؟ ظاهرا روشی که من استفاده میکردم با روشی که شما انجام دادین فرق میکنه، میشه لطف کنید وعکسی از مدار هم اینجا بزارید تا من این روش رو هم یاد بگیرم؟
                  ممنون
                  از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
                  هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
                  اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
                  اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
                  شاد و موفق باشید

                  دیدگاه


                    #10
                    پاسخ : مشکل در مالتی پلکس کردن سگمنت

                    8 بیت برای دیتای سون سگمنت(a تا g) و بسته به تعداد سون سگمنت ها خروجی برای بیس ترانزیستور میدی.
                    www.icesi.ir

                    دیدگاه

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