اطلاعیه

Collapse
No announcement yet.

تایمر باds1307

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

    تایمر باds1307

    زبان برنامه نویسی:بیسیک(Bascom-Avr)

    فایل برنامه+شبیه سازی پروتئوس+توضیحات کامل برنامه و عملکرد

    (لینک اصلاح و تکمیل شد)
    http://s3.picofile.com/file/7400269458/timer.zip.html

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

    یه نکته هم بگم درباره فایل پروتئوسه که اگه دوستان دیدن که موقع run کردن فایل عملکرد پرش یا بهم ریختگی داره
    می تونن موقعی که پروتئوس بازه در task manager و تب processes گزنیه ISIS رو انتخاب کنن و از حالت normal به real time ببرن.
    البته اگه کسی راه دیگه ای داره من خوشحال میشم یاد بگیرمش!
    سوالی هم بود من در خدمتم یا اینجا پست بزارن یا پبغام خصوصی بدن.

    متشکرم و موفق باشین.
    انا لله و انا اليه الراجعون

    #2
    پاسخ : تایمر باds1307 (به بخش پروژه ها منتقل شود)

    سلام دوست عزیز
    یه سوال؟!
    تایمر انگار ثانیه ش کند تره انگار واقعی نیست
    تکس منیجرم رو تغییر هم دادم
    **** k i n j ****

    دیدگاه


      #3
      پاسخ : تایمر باds1307 (به بخش پروژه ها منتقل شود)

      همونطور که گفتم این اشکال از پروتئوس ولی مدار و برنامه مطمئن و دقیق هست.من دستگاه ها و پروژه های زیادی با ds1307 ساختم.فقط موقع مونتاژ باید دقت داشته باشین که نکات رو در انتخاب قطعات و نحوه ی لحیم کاری رعایت کنین.
      منم اولین بار خیلی به مشکل برخوردم تا یاد گرفتم.

      اضافه شده در تاریخ :
      در برنامه و سخت افزار مدار یه تغییرات کوچیک دادم و فایل word رو تکمیل کردم.
      انا لله و انا اليه الراجعون

      دیدگاه


        #4
        پاسخ : تایمر باds1307

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

        ولی درکل :applause: :applause: :applause: :applause: :applause: :applause: :applause:
        یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

        دیدگاه


          #5
          پاسخ : تایمر باds1307

          چون پایه های sda و scl رو یا قطع هستن یا اشتباهی وصل کردی.
          انا لله و انا اليه الراجعون

          دیدگاه


            #6
            پاسخ : تایمر باds1307

            سلام شاهین جان

            مهندس من میخام یه تایمر درست کنم که مثلا 10 دقیقه یه خروجی رو فعال کنه و 20 دقیقه غیر فعال . و این مسئله مدام تکرار بشه تا از این حالت خارجش کنم یعنی 10دقیقه فعال 20 دقیقه غیر فعال / و زمانش هم قابل تنظیم کردن باشه .
            حالا من باید چه تغییراتی توی برنامه شما بدم ؟
            یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

            دیدگاه


              #7
              پاسخ : تایمر باds1307

              نوشته اصلی توسط اقای دکتر
              سلام شاهین جان

              مهندس من میخام یه تایمر درست کنم که مثلا 10 دقیقه یه خروجی رو فعال کنه و 20 دقیقه غیر فعال . و این مسئله مدام تکرار بشه تا از این حالت خارجش کنم یعنی 10دقیقه فعال 20 دقیقه غیر فعال / و زمانش هم قابل تنظیم کردن باشه .
              حالا من باید چه تغییراتی توی برنامه شما بدم ؟
              سلام

              هر واحد On_time_sec و Off_time_sec معادل تقریبا 2.1 ثانیه هست
              اگر کار دقیق میخواین باید خروجی پایه int آی سی ds1307 رو به یکی از اینتراپتها وصل کنید و یک ثانیه یک ثانیه شمارش کنید




              کد:
              $regfile = "m8def.dat"
              $crystal = 8000000                     '1MHz
              $hwstack = 200
              $swstack = 200
              $framesize = 200
              
              
              Const On_time_sec = 1
              Const Off_time_sec = 1
              
              Dim On_off_sum As Word
              On_off_sum = On_time_sec + Off_time_sec
              
              
              
              
              
              
              Led_out Alias Portb.0
              Config Led_out = Output
              
              
              '************************************** timer 1******************************
              
              
              Config Timer1 = Timer , Prescale = 256
              Enable Timer1
              Enable Ovf1
              On Ovf1 Timer_isr
              Start Timer1
              
              Dim Time_cunter As Word
              
              
              Enable Interrupts
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              Do
              Loop
              
              
              
              End
              
              
              
              
              
              Timer_isr:
              
              Time_cunter = Time_cunter + 1
              
              If Time_cunter = On_time_sec Then
                Led_out = 1
              Elseif Time_cunter = On_off_sum Then
                Led_out = 0
                Time_cunter = 0
              End If
              
              Return



              دیدگاه


                #8
                پاسخ : تایمر باds1307

                نوشته اصلی توسط mahdi421
                سلام

                هر واحد On_time_sec و Off_time_sec معادل تقریبا 2.1 ثانیه هست
                اگر کار دقیق میخواین باید خروجی پایه int آی سی ds1307 رو به یکی از اینتراپتها وصل کنید و یک ثانیه یک ثانیه شمارش کنید




                کد:
                $regfile = "m8def.dat"
                $crystal = 8000000                     '1MHz
                $hwstack = 200
                $swstack = 200
                $framesize = 200
                
                
                Const On_time_sec = 1
                Const Off_time_sec = 1
                
                Dim On_off_sum As Word
                On_off_sum = On_time_sec + Off_time_sec
                
                
                
                
                
                
                Led_out Alias Portb.0
                Config Led_out = Output
                
                
                '************************************** timer 1******************************
                
                
                Config Timer1 = Timer , Prescale = 256
                Enable Timer1
                Enable Ovf1
                On Ovf1 Timer_isr
                Start Timer1
                
                Dim Time_cunter As Word
                
                
                Enable Interrupts
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                Do
                Loop
                
                
                
                End
                
                
                
                
                
                Timer_isr:
                
                Time_cunter = Time_cunter + 1
                
                If Time_cunter = On_time_sec Then
                  Led_out = 1
                Elseif Time_cunter = On_off_sum Then
                  Led_out = 0
                  Time_cunter = 0
                End If
                
                Return
                سلام
                باتشکر از شما دوست عزیز
                من با rtcداخلی میکرو و کریستال مربوطه نمیتونم تایمر درست کنم ؟

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

                اضافه شده در تاریخ :
                یه موضوع دیگه .من اگر بخام با برنامه ای که شاهین در ابتدای تاپیک قرار داده تایمر مورد نظرمو درست کنم باید چیکار کنم .؟اگر امکان داره در این زمینه راهنمای بفرمائید ./
                یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                دیدگاه


                  #9
                  پاسخ : تایمر باds1307

                  نوشته اصلی توسط اقای دکتر
                  من با rtcداخلی میکرو و کریستال مربوطه نمیتونم تایمر درست کنم ؟

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

                  اضافه شده در تاریخ :
                  یه موضوع دیگه .من اگر بخام با برنامه ای که شاهین در ابتدای تاپیک قرار داده تایمر مورد نظرمو درست کنم باید چیکار کنم .؟اگر امکان داره در این زمینه راهنمای بفرمائید ./
                  http://s5.picofile.com/file/8123768084/test.7z.html

                  دیدگاه


                    #10
                    پاسخ : تایمر باds1307

                    نوشته اصلی توسط mahdi421
                    http://s5.picofile.com/file/8123768084/test.7z.html
                    سلام
                    مهندس ممنونم .من برای دقت بیشتر از کریستال ساعت هم استفاده میکنم . با این تفاسیر که کریستال ساعت اضافه کنم ؛ ساعت دقیق میشه ؟
                    یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                    دیدگاه


                      #11
                      پاسخ : تایمر باds1307

                      این مدار که گزاشتم با rtc خود میکرو هست و باید یه کریستال ساعت به میکرو وصل بشه تا مدار کار کنه. دقت مدار هم بستگی به دقت کریستال rtc داره که ممکنه در روز تا 2 ثانیه جلو یا عقب بمونه یا درست کار کنه.

                      دیدگاه


                        #12
                        پاسخ : تایمر باds1307

                        نوشته اصلی توسط mahdi421
                        http://s5.picofile.com/file/8123768084/test.7z.html
                        مهندس شما الان یه دونه خروجی گذاشتید اگر من بخام از این برنامه شما ,, 3 تا خروجی بگیرم که اون 2تای دیگه هم مثل همین خروجی تایمری باشه باید چیکار کنم ؟
                        یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                        دیدگاه


                          #13
                          پاسخ : تایمر باds1307

                          منظور شما اینکه او سه تای دیگه هم قابلیت زمان دهی ON - OFF جداگانه داشته باشه؟

                          دیدگاه


                            #14
                            پاسخ : تایمر باds1307

                            نوشته اصلی توسط mahdi421
                            منظور شما اینکه او سه تای دیگه هم قابلیت زمان دهی ON - OFF جداگانه داشته باشه؟
                            اره
                            من 3 تا خروجی دارم که باید هر 3 تا قابلیت ON - OFF جداگانه داشته باشه -البته من دارم برنامه شما رو در DS1307 اضافه میکنم و الان یه خروجی رو تونستمON - OFF کنم .و لی چونکه زمان رو بعد از شمارش و رسیدن به زمان OFF صفر میکنیم نمیشه که زمان های خروجی های دیگه رو کنترل کرد .
                            البته شما این اپشن جدید رو به برنامه خودتون اضافه کنید من به DS1307 اضافه میکنم
                            یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                            دیدگاه


                              #15
                              پاسخ : تایمر باds1307

                              کد:
                              $regfile = "m8def.dat"
                              $crystal = 8000000
                              $hwstack = 100
                              $swstack = 100
                              $framesize = 100
                              
                              
                              Const On_1_time_sec = 1
                              Const Off_1_time_sec = 1
                              
                              Const On_2_time_sec = 2
                              Const Off_2_time_sec = 2
                              
                              Const On_3_time_sec = 3
                              Const Off_3_time_sec = 3
                              
                              
                              
                              Dim On_1_off_sum As Word
                              On_1_off_sum = On_1_time_sec + Off_1_time_sec
                              
                              Dim On_2_off_sum As Word
                              On_2_off_sum = On_2_time_sec + Off_2_time_sec
                              
                              
                              Dim On_3_off_sum As Word
                              On_3_off_sum = On_3_time_sec + Off_3_time_sec
                              
                              
                              
                              Led_out_1 Alias Portb.0
                              Led_out_2 Alias Portb.1
                              Led_out_3 Alias Portb.2
                              
                              
                              
                              Config Led_out_1 = Output
                              Config Led_out_2 = Output
                              Config Led_out_3 = Output
                              
                              
                              Dim Time_cunter_1 As Long
                              Dim Time_cunter_2 As Long
                              Dim Time_cunter_3 As Long
                              
                              Config Clock = Soft , Gosub = Sectic
                              
                              Enable Interrupts
                              
                              
                              
                              Do
                              
                              Loop
                              
                              
                              
                              End
                              
                              
                              
                              Sectic:
                              
                              Time_cunter_1 = Time_cunter_1 + 1
                              Time_cunter_2 = Time_cunter_2 + 1
                              Time_cunter_3 = Time_cunter_3 + 1
                              
                              
                              If Time_cunter_1 = On_1_time_sec Then
                                Led_out_1 = 1
                              Elseif Time_cunter_1 = On_1_off_sum Then
                                Led_out_1 = 0
                                Time_cunter_1 = 0
                              End If
                              
                              
                              
                              If Time_cunter_2 = On_2_time_sec Then
                                Led_out_2 = 1
                              Elseif Time_cunter_2 = On_2_off_sum Then
                                Led_out_2 = 0
                                Time_cunter_2 = 0
                              End If
                              
                              
                              If Time_cunter_3 = On_3_time_sec Then
                                Led_out_3 = 1
                              Elseif Time_cunter_3 = On_3_off_sum Then
                                Led_out_3 = 0
                                Time_cunter_3 = 0
                              End If
                              
                              
                              
                              Return
                              Return

                              دیدگاه

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