اطلاعیه

Collapse
No announcement yet.

کمک در مورد برنامه ساعت

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

    کمک در مورد برنامه ساعت

    سلام
    اساتید محترم یک برنامه ساعت با بسکام نوشتم که موقع کامپایل ایراد میگیره

    نمایش هم بر روی 4 سون سگمنت جدا هست

    اگه ممکنه بنده رو راهنمایی بفرمایید


    کد:
    $regfile = "m16def.dat"
    $crystal = 1000000
    Config Clock = Soft
    Enable Interrupts
    Time$ = "00:00:00"
    
    
    Config Porta = Output
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output
    Config Pinc.7 = Input
    Config Pinb.7 = Input
    Config Pind.7 = Input
    
    
    
    Second Alias Portd.7
    
    Seet Alias Pinc.7
    Ad Alias Pinb.7
    De Alias Pina.7
    
    
    
    Dim V As Byte
    Dim T As Byte
    Dim H As Word
    Dim S As Byte
    Declare Sub Keyscan
    Declare Sub Refresh
    Declare Sub Send1
    Declare Sub Send2
    Declare Sub Send3
    Declare Sub Send4
    Declare Sub 4key
    Declare Sub Ss
    V = 0
    Second = 0
    Do
      Call Keyscan
      Call Refresh
      Call Blinke
    Loop
    End
    '==========================================
    Sub Keyscan
      If Seet = 0 Then
    Incr V
    
    
    Call 4key
    If V > 2 Then V = 0
    End If
    
    
    
      If V = 1 Then
      If Ad = 0 Then
       Incr _hour
       If _hour > 23 Then _hour = 0
       Call 4key
      End If
      If De = 0 Then
       Decr _hour
       If _hour < 1 Then _hour = 23
       Call 4key
    
        End If
    
    
      If V = 2 Then
      If Ad = 0 Then
       Incr _min
       If _min > 59 Then _min = 0
       Call 4key
      End If
    
      If De = 0 Then
       Decr _min
       If _min < 1 Then _min = 59
       Call 4key
      End If
    
    
    
    
    
    
    End Sub
    
    
    
    
    '=============================================
    Sub Refresh
     T = _hour \ 10 : Call Send1
     T = _hour Mod 10 : Call Send2
     T = _min \ 10 : Call Send3
     T = _min Mod 10 : Call Send4
    
    End Sub
    '=============================================
    Sub Send1
      Porta = Lookup(t , Segdata)
    
    
    End Sub
    '===============================================
        Sub Send2
      Portb = Lookup(t , Segdata)
    
    
    End Sub
    '=================================================
    Sub Send3
      Portc = Lookup(t , Segdata)
    
    
    End Sub
    '================================================
    Sub Send4
      Portd = Lookup(t , Segdata)
    
    
    End Sub
    '=================================================
    Sub 4key
    For H = 0 To 300
    Call Refresh
    Next H
    End Sub
    '==============================================
    Sub Ss
    Toggle Second
    Waitms 100
    Toggle Second
    End Sub
    
    Segdata:
    
    Data &B00111111 , &B00000110 , &B01011011 , &B01001111
    Data &B01100110 , &B01101101 , &B01111101 , &B00000111
    Data &B01111111 , &B01101111


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

    دوستان اگه کسی میتونه کمک کنه دریغ نکنه چون تا فردا باید تحویلش بدم دیگه الان مغزم کار نمیکنه گفتم مزاحم شما بشم

    دیدگاه


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

      سلام
      تابع Blinke رو اول برنامه معرفی نکردید.
      در این قسمت از برنامه دو تا end if کم داره.باتوجه به این که شرط ها تو در تو میباشند نمیشه هر جایی اضافه کرد.پس خودتون ببینید کجا باید اضافه کنید.
      کد:
      Sub Keyscan
        If Seet = 0 Then
      Incr V
      
      
      Call 4key
      If V > 2 Then V = 0
      End If
      
      
      
        If V = 1 Then
        If Ad = 0 Then
         Incr _hour
         If _hour > 23 Then _hour = 0
         Call 4key
        End If
        If De = 0 Then
         Decr _hour
         If _hour < 1 Then _hour = 23
         Call 4key
      
          End If
      
      
        If V = 2 Then
        If Ad = 0 Then
         Incr _min
         If _min > 59 Then _min = 0
         Call 4key
        End If
      
        If De = 0 Then
         Decr _min
         If _min < 1 Then _min = 59
         Call 4key
        End If
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


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

        ممنون آقا مهدی

        بله مشکل برطرف شد

        ولی الان رفتم قسمت شبیه سازی نه ثانیه اش کار میکنه نه دیتا ها درسته

        اولین باری هست که برنامه ساعت مینویسم

        فکر میکردم ساده باشه ولی الان 3 ساعته هی ایراد پشت سر هم پیش میاد

        یک نمونش همین END IF ها بود که واقعا انقدر گیج شدم که متوجه نشدم

        دیدگاه


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

          نوشته اصلی توسط hamed222
          ممنون آقا مهدی

          بله مشکل برطرف شد

          ولی الان رفتم قسمت شبیه سازی نه ثانیه اش کار میکنه نه دیتا ها درسته

          اولین باری هست که برنامه ساعت مینویسم

          فکر میکردم ساده باشه ولی الان 3 ساعته هی ایراد پشت سر هم پیش میاد

          یک نمونش همین END IF ها بود که واقعا انقدر گیج شدم که متوجه نشدم
          کل فایل پروژه رو قرار بدید تا کمک کنیم.
          برنام و پروتئوس.
          تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

          دیدگاه


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

            بفرمایید

            http://uploadtak.com/images/j1254_New_folder.rar

            دیدگاه


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

              الان پی به یک اشتباهم بردم و اینم این بود که خروجی 7 پورت d رو به جای a.7 تو برنامه زده بودم ورودی ولی تو شبیه سازی به ثانیه شمار وصلش کرده بودم

              در واقع a.7 ورودی بود و d.7 خروجی
              مشکل دیتا حل شد ولی هنوز ثانیه شمارش کار نمیکنه

              دیدگاه


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

                نوشته اصلی توسط hamed222
                بفرمایید

                http://uploadtak.com/images/j1254_New_folder.rar
                هیچ مشکلی نداشت فقط یکم بی دقتی کردی و پین a7 رو ورودی نکرده بودی.
                راستش یکی دو تا تغییر دیگه هم دادم که یادم نموند چه کار کردم.
                به هر حال این کد آماده و سالم خدمت شما.
                کد:
                $regfile = "m16def.dat"
                $crystal = 1000000
                Config Clock = Soft
                Enable Interrupts
                Time$ = "17:23:58"
                
                
                Config Porta = Output
                Config Portb = Output
                Config Portc = Output
                Config Portd = Output
                Config Pinc.7 = Input
                Config Pinb.7 = Input
                Config Pind.7 = Input
                Config Pina.7 = Input
                
                Second Alias Portd.7
                Seet Alias Pinc.7
                Ad Alias Pinb.7
                De Alias Pina.7
                
                Dim V As Byte
                Dim T As Byte
                Dim H As Word
                Dim S As Byte
                Declare Sub Keyscan
                Declare Sub Refresh
                Declare Sub Send1
                Declare Sub Send2
                Declare Sub Send3
                Declare Sub Send4
                Declare Sub 4key
                Declare Sub Ss
                V = 0
                Second = 1
                Do
                  Call Keyscan
                  Call Refresh
                  Call Ss
                Loop
                End
                '==========================================
                Sub Keyscan
                  If Seet = 0 Then
                Incr V
                
                
                Call 4key
                If V > 2 Then V = 0
                End If
                
                
                
                  If V = 1 Then
                  If Ad = 0 Then
                   Incr _hour
                   If _hour = 24 Then _hour = 0
                   Call 4key
                  End If
                  If De = 0 Then
                   Decr _hour
                   If _hour = 0 Then _hour = 23
                   Call 4key
                
                    End If
                    End If
                
                
                  If V = 2 Then
                  If Ad = 0 Then
                   Incr _min
                   If _min = 60 Then _min = 0
                   Call 4key
                  End If
                
                  If De = 0 Then
                   Decr _min
                   If _min = 0 Then _min = 59
                   Call 4key
                  End If
                
                
                
                End If
                
                
                Return
                End Sub
                
                
                
                
                '=============================================
                Sub Refresh
                 T = _hour \ 10 : Call Send1
                 T = _hour Mod 10 : Call Send2
                 T = _min \ 10 : Call Send3
                 T = _min Mod 10 : Call Send4
                
                End Sub
                '=============================================
                Sub Send1
                  Porta = Lookup(t , Segdata)
                
                
                End Sub
                '===============================================
                    Sub Send2
                  Portb = Lookup(t , Segdata)
                
                
                End Sub
                '=================================================
                Sub Send3
                  Portc = Lookup(t , Segdata)
                
                
                End Sub
                '================================================
                Sub Send4
                  Portd = Lookup(t , Segdata)
                
                
                End Sub
                '=================================================
                Sub 4key
                For H = 0 To 300
                Call Refresh
                Next H
                End Sub
                '==============================================
                Sub Ss
                Toggle Second
                Waitms 100
                Toggle Second
                End Sub
                
                Segdata:
                
                Data &B00111111 , &B00000110 , &B01011011 , &B01001111
                Data &B01100110 , &B01101101 , &B01111101 , &B00000111
                Data &B01111111 , &B01101111
                تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                دیدگاه


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

                  پست قبلی تون رو ندیدم :biggrin:
                  تو این برنامه ای که من دادم کار میکنه.
                  اگه دقت کنی ثانیه رو گذاشتم 58 و بعد از دو ثانیه یکی به دقیقه اضافه میشه.
                  تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                  دیدگاه


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

                    بله بازم ممنونم

                    ولی هنوز با این ثانیه شمارش مشکل دارم

                    من میخوام از پایه dp 7seg به جای ثانیه شمار استفاده کنم

                    نمیدونم چرا کلید set رو میگیرم میره رو حالت چشمک زن

                    دیدگاه


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

                      نوشته اصلی توسط hamed222
                      بله بازم ممنونم

                      ولی هنوز با این ثانیه شمارش مشکل دارم

                      من میخوام از پایه dp 7seg به جای ثانیه شمار استفاده کنم

                      نمیدونم چرا کلید set رو میگیرم میره رو حالت چشمک زن
                      یعنی میخواهید dp درحالت عادی چشمک بزنه؟
                      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                      دیدگاه


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

                        بله دقیقا

                        دیدگاه


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

                          نوشته اصلی توسط hamed222
                          بله دقیقا
                          این هم از این.
                          برو حالشو ببر :biggrin:
                          کد:
                          $regfile = "m16def.dat"
                          $crystal = 1000000
                          Config Clock = Soft
                          Enable Interrupts
                          Time$ = "17:23:58"
                          
                          
                          Config Porta = Output
                          Config Portb = Output
                          Config Portc = Output
                          Config Portd = Output
                          Config Pinc.7 = Input
                          Config Pinb.7 = Input
                          Config Pind.7 = Input
                          Config Pina.7 = Input
                          
                          Dim Cu As Byte
                          Second Alias Portd.7
                          Seet Alias Pinc.7
                          Ad Alias Pinb.7
                          De Alias Pina.7
                          
                          Dim V As Byte
                          Dim T As Byte
                          Dim H As Word
                          Dim S As Byte
                          Declare Sub Keyscan
                          Declare Sub Refresh
                          Declare Sub Send1
                          Declare Sub Send2
                          Declare Sub Send3
                          Declare Sub Send4
                          Declare Sub 4key
                          Declare Sub Ss
                          V = 0
                          Second = 1
                          Do
                            Call Keyscan
                            Call Refresh
                            Cu = _sec Mod 2
                            Cu = Cu And 1
                            If Cu = 1 Then
                            Toggle Portd.7
                            End If
                          Loop
                          End
                          '==========================================
                          Sub Keyscan
                            If Seet = 0 Then
                          Incr V
                          
                          
                          Call 4key
                          If V > 2 Then V = 0
                          End If
                          
                          
                          
                            If V = 1 Then
                            If Ad = 0 Then
                             Incr _hour
                             If _hour = 24 Then _hour = 0
                             Call 4key
                            End If
                            If De = 0 Then
                             Decr _hour
                             If _hour > 250 Then _hour = 23
                             Call 4key
                          
                              End If
                              End If
                          
                          
                            If V = 2 Then
                            If Ad = 0 Then
                             Incr _min
                             If _min = 60 Then _min = 0
                             Call 4key
                            End If
                          
                            If De = 0 Then
                             Decr _min
                             If _min = 0 Then _min = 59
                             Call 4key
                            End If
                          
                          
                          
                          End If
                          
                          
                          Return
                          End Sub
                          
                          
                          
                          
                          '=============================================
                          Sub Refresh
                          'Config Portd.7 = Input
                           T = _hour \ 10 : Call Send1
                           T = _hour Mod 10 : Call Send2
                           T = _min \ 10 : Call Send3
                           T = _min Mod 10 : Call Send4
                          'config portd.7=output
                          End Sub
                          '=============================================
                          Sub Send1
                            Porta = Lookup(t , Segdata)
                          
                          
                          End Sub
                          '===============================================
                              Sub Send2
                            Portb = Lookup(t , Segdata)
                          
                          
                          End Sub
                          '=================================================
                          Sub Send3
                            Portc = Lookup(t , Segdata)
                          
                          
                          End Sub
                          '================================================
                          Sub Send4
                            Portd = Lookup(t , Segdata)
                          
                          
                          End Sub
                          '=================================================
                          Sub 4key
                          For H = 0 To 300
                          Call Refresh
                          Next H
                          End Sub
                          
                          Segdata:
                          
                          Data &B00111111 , &B00000110 , &B01011011 , &B01001111
                          Data &B01100110 , &B01101101 , &B01111101 , &B00000111
                          Data &B01111111 , &B01101111
                          تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                          دیدگاه


                            #14
                            پاسخ : کمک در مورد برنامه ساعت

                            مهدی جان خیلی خیلی ممنونم :applause: :biggrin:

                            الان این مغزم کار نمیکنه که ببینم چرا برنامه خودم اون قسمتش کار نمیکرد :cry:
                            هر وقت تونستی لطف کنی این قسمتشو برام توضیح بدی ممنونت میشم

                            ببخشید تا الان وقتت رو گرفتم

                            دیدگاه

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