اطلاعیه

Collapse
No announcement yet.

کمک در رابطه با سون سگمنت

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

    کمک در رابطه با سون سگمنت

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

    [code=vb]$regfile = "m8def.dat"
    $crystal = 4000000

    Config Timer0 = Timer , Prescale = 8

    Dim Timecount As Word : Timecount = 0
    Config Adc = Single , Prescaler = Auto , Reference = Internal


    Enable Interrupts
    Enable Ovf0
    On Ovf0 Overflow_isr
    Tcnt0 = &H19

    Dim I As Byte
    Config Pinc.5 = Input

    Config Portd = Output
    Portd = 0
    Config Pinb.0 = Output
    Portb.0 = 0
    Config Pinb.1 = Output
    Portb.1 = 0
    Config Pinb.2 = Output
    Portb.2 = 0
    Config Pinb.3 = Output
    Portb.3 = 0

    Dim L(10) As Byte
    L(1) = &B11111001
    L(2) = &B10100100
    L(3) = &B10110000
    L(4) = &B10011001
    L(5) = &B10010010
    L(6) = &B10000010
    L(7) = &B11111000
    L(8) = &B10000000
    L(9) = &B10010000
    L(10) = &B11000000
    Dim Le(10) As Byte
    Le(1) = &B01111001
    Le(2) = &B00100100
    Le(3) = &B00110000
    Le(4) = &B00011001
    Le(5) = &B00010010
    Le(6) = &B00000010
    Le(7) = &B01111000
    Le(8) = &B00000000
    Le(9) = &B00010000
    Le(10) = &B01000000
    Dim Channel As Byte
    Dim W As Long
    Dim Ss As Byte
    Dim Ad As Long
    Dim S(4) As String * 1
    Dim Sa As String * 5

    Dim Sl(4) As Byte


    Do

    W = 0
    Ss = 1
    Ad = 0
    For Ss = 1 To 20
    Start Adc
    Channel = 5
    W = Getadc(channel)
    Stop Adc
    Ad = Ad + W
    Next Ss
    Ad = Ad / 20
    Ad = Ad * 2560
    Ad = Ad / 1023
    Ad = Ad * 10



    If Ad < 1000 Then
    Sa = Str(ad)
    Sa = Format(sa , "000&quot

    S(1) = Mid(sa , 3 , 1)
    S(2) = Mid(sa , 2 , 1)
    S(3) = Mid(sa , 1 , 1)
    'S (4) = Mid (sa, 1, 1)
    I = Val(s(1))
    If I = 0 Then
    Sl(1) = L(10)
    Else
    Sl(1) = L(i)
    End If

    I = Val(s(2))
    If I = 0 Then
    Sl(2) = L(10)
    Else
    Sl(2) = L(i)
    End If

    I = Val(s(3))
    If I = 0 Then
    Sl(3) = L(10)
    Else
    Sl(3) = L(i)
    End If


    Sl(4) = Le(10)

    End If



    If Ad >= 1000 And Ad < 10000 Then
    Sa = Str(ad)
    Sa = Format(sa , "0000&quot

    S(1) = Mid(sa , 4 , 1)
    S(2) = Mid(sa , 3 , 1)
    S(3) = Mid(sa , 2 , 1)
    S(4) = Mid(sa , 1 , 1)
    I = Val(s(1))
    If I = 0 Then
    Sl(1) = L(10)
    Else
    Sl(1) = L(i)
    End If

    I = Val(s(2))
    If I = 0 Then
    Sl(2) = L(10)
    Else
    Sl(2) = L(i)
    End If

    I = Val(s(3))
    If I = 0 Then
    Sl(3) = L(10)
    Else
    Sl(3) = L(i)
    End If

    I = Val(s(4))
    If I = 0 Then
    Sl(4) = Le(10)
    Else
    Sl(4) = Le(i)
    End If

    End If

    If Ad >= 10000 And Ad < 100000 Then
    Sa = Str(ad)
    Sa = Format(sa , "0000&quot

    S(1) = Mid(sa , 4 , 1)
    S(2) = Mid(sa , 3 , 1)
    S(3) = Mid(sa , 2 , 1)
    S(4) = Mid(sa , 1 , 1)
    I = Val(s(1))
    If I = 0 Then
    Sl(1) = L(10)
    Else
    Sl(1) = L(i)
    End If

    I = Val(s(2))
    If I = 0 Then
    Sl(2) = L(10)
    Else
    Sl(2) = L(i)
    End If

    I = Val(s(3))
    If I = 0 Then
    Sl(3) = Le(10)
    Else
    Sl(3) = Le(i)
    End If

    I = Val(s(4))
    If I = 0 Then
    Sl(4) = L(10)
    Else
    Sl(4) = L(i)
    End If
    End If
    '------------------------------------
    Loop

    End

    T1:
    Disable Timer0
    Do
    Portb.0 = 1
    Portd = &B10011001
    Loop
    Return


    Overflow_isr:

    Tcnt0 = &H19
    Incr Timecount
    If Timecount = 15 Then
    Timecount = 0
    Portb.0 = 1
    Portd = Sl(1)
    Waitus 250
    Portb.0 = 0
    Portb.1 = 1
    Portd = Sl(2)
    Waitus 250
    Portb.0 = 0
    Portb.1 = 0
    Portb.2 = 1
    Portd = Sl(3)
    Waitus 250
    Portb.0 = 0
    Portb.1 = 0
    Portb.2 = 0
    Portb.3 = 1
    Portd = Sl(4)
    Waitus 250
    Portb.3 = 0

    End If
    Return[/code]

    #2
    پاسخ : کمک در رابطه با سون سگمنت

    چشمک به خاطر فرکانس کمه . حداقل باید 50 بار در ثانیه رفرش بشن .
    f=50
    t=1/f
    t= 20ms
    یعنی حداکثر هر 20 میلی ثانیه شما باید رفرش کنی .
    اِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

    دیدگاه


      #3
      پاسخ : کمک در رابطه با سون سگمنت

      من یه سوال دیگه راجب سون سگمنت دارم ایکه من یه جایی از برنامه نیاز دارم کل سون سگمنت در حالت چشمک زن باشه و اعداد رو هم نشون بده (چشمک زن کلی) برای جایی که اعداد رو نشون بده مشکلی نبود اما بقیش که کلا چشمک بزنه نمیدونم میشه کمک کنید؟
      http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

      دیدگاه


        #4
        پاسخ : کمک در رابطه با سون سگمنت

        نوشته اصلی توسط MAHDI ZAMANI
        من یه سوال دیگه راجب سون سگمنت دارم ایکه من یه جایی از برنامه نیاز دارم کل سون سگمنت در حالت چشمک زن باشه و اعداد رو هم نشون بده (چشمک زن کلی) برای جایی که اعداد رو نشون بده مشکلی نبود اما بقیش که کلا چشمک بزنه نمیدونم میشه کمک کنید؟
        تو زمان چشمک زدن کار دیگه ای هم باید انجام بدی؟ مثلا اسکن صفحه کلید !
        اگه این جوری باشه باید تایمر راه بندازی .

        در غیر اینصورت میتونی یه تابع تعریف کنی . هر وقت این حالت رو لازم داشتی اون تابع رو فراخوانی کنی . تو زیر روال تابع هم از delay استفاده کنی !
        اِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
        کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

        دیدگاه


          #5
          پاسخ : کمک در رابطه با سون سگمنت

          برنامم اینه
          http://shatelland.com/upload/files/c8f888b2-2ba5-4886-ad8d-7ea56b6b168e
          باید توی قسمت منو چشمک زن باشه
          http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

          دیدگاه


            #6
            پاسخ : کمک در رابطه با سون سگمنت

            زمان رفرش رو که کم میکنم بخاطر بالا رفتن سرعت خاموش و. روشن شدن سگمنها نور سون سگمنت کم میشه.

            دیدگاه


              #7
              پاسخ : کمک در رابطه با سون سگمنت

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

              دیدگاه


                #8
                پاسخ : کمک در رابطه با سون سگمنت

                باید مناسب ترین زمان رو خودت باید به دست بیاری
                http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                دیدگاه


                  #9
                  پاسخ : کمک در رابطه با سون سگمنت

                  سلام.من 4 عدد سون سگمنت در ابعاد 4*6 تکی آند رو به صورت مالتی پلکس بستم.مساله اینه که این سون سگمنتی که در تصویر مشخص کردم با اینکه مدار درایورش با سون سگمنتهای دیگه فرقی نداره ولی نورش تقریبا دوبرابر بقیه اس چرا؟ oo:


                  اینم از مدار درایورش:

                  اینم برنامه:
                  S = Seco Mod 2
                  If S = 0 Then Set Portc.2
                  If S = 1 Then Reset Portc.2




                  H2 = Hour Mod 10
                  H1 = Hour - H2
                  H1 = H1 / 10


                  M2 = Mine Mod 10
                  M1 = Mine - M2
                  M1 = M1 / 10

                  Portb = 0
                  Portd = Lookup(m2 , Dta)
                  Set Portb.1
                  Reset Portb.2
                  Reset Portb.3
                  Reset Portb.4
                  Waitus 250


                  Portb = 0
                  Portd = Lookup(m1 , Dta)
                  Reset Portb.1
                  Set Portb.2
                  Reset Portb.3
                  Reset Portb.4
                  Waitus 250


                  Portb = 0
                  Portd = Lookup(h2 , Dta)
                  Reset Portb.1
                  Reset Portb.2
                  Set Portb.3
                  Reset Portb.4
                  Waitus 250


                  Portb = 0
                  Portd = Lookup(h1 , Dta)
                  Reset Portb.1
                  Reset Portb.2
                  Reset Portb.3
                  Set Portb.4
                  Waitus 250
                  انا لله و انا الیه الراجعون

                  دیدگاه


                    #10
                    پاسخ : کمک در رابطه با سون سگمنت

                    سلام
                    دوستان لظفا کمک کنید
                    مشکل این برنامه چیه؟؟
                    میخام با زدن کیپد شماره ها روی سه تا سون سگمنت تکی بیافته
                    M:
                    Do
                    A = Getkbd()
                    A = Lookup(a , F)
                    If A < 10 Then Portc = A
                    Waitms 20
                    Goto N
                    Loop
                    End

                    N:
                    Do
                    B = Getkbd()
                    B = Lookup(b , F)
                    If A < 10 Then Portd = B
                    Waitms 20
                    Goto P
                    Loop
                    End

                    P:
                    Do
                    C = Getkbd()
                    C = Lookup(c , F)
                    If A < 10 Then Porta = C
                    Waitms 20
                    Goto M
                    Loop
                    End
                    F:
                    Data 7 , 8 , 9 , 15 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 14 , 10 , 0 , 12 , 13 , 16
                    من با دانش و آکاهی ام تمام جهالت ها رو به زانو در خواهم اورد.

                    دیدگاه


                      #11
                      پاسخ : کمک در رابطه با سون سگمنت

                      .
                      انا لله و انا الیه الراجعون

                      دیدگاه


                        #12
                        پاسخ : کمک در رابطه با سون سگمنت

                        نوشته اصلی توسط شاهین شرق
                        سلام.من 4 عدد سون سگمنت در ابعاد 4*6 تکی آند رو به صورت مالتی پلکس بستم.مساله اینه که این سون سگمنتی که در تصویر مشخص کردم با اینکه مدار درایورش با سون سگمنتهای دیگه فرقی نداره ولی نورش تقریبا دوبرابر بقیه اس چرا؟ oo:


                        اینم از مدار درایورش:

                        اینم برنامه:
                        S = Seco Mod 2
                        If S = 0 Then Set Portc.2
                        If S = 1 Then Reset Portc.2




                        H2 = Hour Mod 10
                        H1 = Hour - H2
                        H1 = H1 / 10


                        M2 = Mine Mod 10
                        M1 = Mine - M2
                        M1 = M1 / 10

                        Portb = 0
                        Portd = Lookup(m2 , Dta)
                        Set Portb.1
                        Reset Portb.2
                        Reset Portb.3
                        Reset Portb.4
                        Waitus 250


                        Portb = 0
                        Portd = Lookup(m1 , Dta)
                        Reset Portb.1
                        Set Portb.2
                        Reset Portb.3
                        Reset Portb.4
                        Waitus 250


                        Portb = 0
                        Portd = Lookup(h2 , Dta)
                        Reset Portb.1
                        Reset Portb.2
                        Set Portb.3
                        Reset Portb.4
                        Waitus 250


                        Portb = 0
                        Portd = Lookup(h1 , Dta)
                        Reset Portb.1
                        Reset Portb.2
                        Reset Portb.3
                        Set Portb.4
                        Waitus 250
                        کسی هست که پاسخی واس این حالت داشته باشه؟
                        انا لله و انا الیه الراجعون

                        دیدگاه


                          #13
                          پاسخ : کمک در رابطه با سون سگمنت

                          نوشته اصلی توسط milad brave
                          سلام
                          دوستان لظفا کمک کنید
                          مشکل این برنامه چیه؟؟
                          میخام با زدن کیپد شماره ها روی سه تا سون سگمنت تکی بیافته
                          M:
                          Do
                          A = Getkbd()
                          A = Lookup(a , F)
                          If A < 10 Then Portc = A
                          Waitms 20
                          Goto N
                          Loop
                          End

                          N:
                          Do
                          B = Getkbd()
                          B = Lookup(b , F)
                          If A < 10 Then Portd = B
                          Waitms 20
                          Goto P
                          Loop
                          End

                          P:
                          Do
                          C = Getkbd()
                          C = Lookup(c , F)
                          If A < 10 Then Porta = C
                          Waitms 20
                          Goto M
                          Loop
                          End
                          F:
                          Data 7 , 8 , 9 , 15 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 14 , 10 , 0 , 12 , 13 , 16
                          دوست گرامی تو این برنامه شما قسمتی برای سون سگمنت ندیدم بعدم تو حلقه دوم به جای A

                          N:
                          Do
                          B = Getkbd()
                          B = Lookup(b , F)
                          If A < 10 Then Portd = B<-------------------- باید B بزاری یادت رفته Aگذاشتی
                          Waitms 20
                          Goto P
                          Loop
                          End
                          معلولیت محدودیت نیست

                          آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

                          دیدگاه

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