اطلاعیه

Collapse
No announcement yet.

اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

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

    #16
    پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

    74595 چطوریه شیف رجیستره یا لچ چیه ؟راستی برنامه که بالا هست :redface:
    { خلاف قوانین - پاک شد }

    دیدگاه


      #17
      پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

      شیف رجیستره
      برنامت کامل نیست
      جدول lookup کجاست؟
      همه این کارا رو با یه مگا 8 هم میشه کرد
      این کار ثانیه هم با شیفت رجیستر مثل آب خوردنه با زیر 10 خط برنامه
      و.....
      پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

      دیدگاه


        #18
        پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

        اینم برنامه کامل ممنون ار توجهتون
        '-------------------------------------------------------------------------------
        $regfile = "m16def.dat"
        $crystal = 8000000

        $lib "mcsbyte.lbx" ' for smaller code
        $lib "ds1307clock.lib" ' modified lib
        $framesize = 16
        $hwstack = 24
        $swstack = 16

        Config Portb.0 = Output
        Config Portb.1 = Output
        Config Portb.2 = Output
        Config Portb.3 = Output
        Config Portb.6 = Output
        Config Portb.7 = Output
        Config Pinb.4 = Input


        Config Portd = Output
        Config Portc = Output

        Config Pina.7 = Input
        Config Pina.6 = Input
        Config Porta.5 = Output
        Config Pina.4 = Input
        Config Porta.3 = Output
        Config Porta.2 = Output
        Config Porta.1 = Output
        Config Porta.0 = Output

        Config Sda = Portb.6
        Config Scl = Portb.7

        Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
        Const Ds1307r = &HD1

        Enable Interrupts

        Config Clock = User ' this will dim the bytes automatic

        Dim Weekday As Byte

        Time$ = "2359" ' to watch the day changing value
        'Date$ = "11-13-02"

        Dim S As Byte , M As Byte , H As Byte , Ma As Word , Mlb As Byte
        Dim A As Byte , B As Byte , Mha As Word , Mla As Word , Lm As Word

        Dim Mh As Byte , Index As Byte , R As Byte , Q As Byte
        Dim Ml As Byte
        Dim Hh As Byte
        Dim Hl As Byte , S1 As Byte , L As Byte , Delaye As Byte , Secovf As Byte

        Ok Alias Pina.4
        Up Alias Pina.7
        Down Alias Pinb.4

        Delaye = 3

        '*************************************** start *****************************************

        ' 13 november 2002
        Hom:

        Gosub Getdatetime

        Mh = _min / 10
        Ml = _min Mod 10

        Hh = _hour / 10
        Hl = _hour Mod 10

        R = _sec

        Portb = Hh
        Porta = 8
        Waitms 3

        Portb = Hl
        Porta = 4
        Waitms 3

        Portb = Mh
        Porta = 2
        Waitms 3

        Portb = Ml
        Porta = 1
        Waitms 3

        If Q = 1 Then Goto S1
        If Q = 0 Then Goto S


        '***************************************** * sec ********************************************

        S:

        Q = 1

        Do

        Index = &B00000001

        For R = 0 To 7

        Portc = 0
        Portd = 0
        Portc = Index
        Rotate Index , Left

        For M = 0 To 7

        Portd = Lookup(m , A)
        Incr Secovf
        Gosub Getdatetime

        If Secovf = 60 Then
        Secovf = 0
        Goto Hom
        End If

        Next M

        Next R

        '**************************************** sec b **********************************************

        S1:

        Q = 0

        Index = &B00000001

        For R = 0 To 7

        Portc = 0
        Portd = &HFF
        Portc = Index
        Rotate Index , Left

        For M = 0 To 7

        Portd = Lookup(m , H)
        Incr Secovf
        Gosub Getdatetime

        If Secovf = 60 Then
        Secovf = 0
        Goto Hom
        End If

        Next M

        Next R

        Loop


        End
        'called from ds1307clock.lib
        Getdatetime:
        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0 ' start address in 1307

        I2cstart ' Generate start code
        I2cwbyte Ds1307r ' send address
        I2crbyte _sec , Ack
        I2crbyte _min , Ack ' MINUTES
        I2crbyte _hour , Ack ' Hours
        I2crbyte Weekday , Ack ' Day of Week
        I2crbyte _day , Ack ' Day of Month
        I2crbyte _month , Ack ' Month of Year
        I2crbyte _year , Nack ' Year
        I2cstop

        _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)



        Return

        'Settime:
        'Setdate:

        '************************************* set time ***************************************


        Settime:

        Hl:

        Do


        Portc = 8
        Portb = Hh
        Waitms 4

        Portc = 4
        Portb = Hl
        Waitms 4

        Portc = 2
        Portb = Mh
        Waitms 4

        Portc = 1
        Portb = Ml
        Waitms 4


        If Down = 0 Then

        Waitms 150
        Decr Hl

        End If


        If Up = 0 Then

        Waitms 150
        Incr Hl

        End If


        '******************************************** **********


        If Hl = 255 Then

        Hl = 9
        Decr Hh

        End If

        If Hh = 255 Then

        Hh = 2
        Hl = 4
        Goto Hl

        End If


        If Hl > 9 Then

        Hl = 0
        Incr Hh

        End If

        If Hh = 2 And Hl = 5 Then

        Hh = 0
        Hl = 0
        Goto Hl

        End If

        If Hh = 3 Then Hh = 0


        If Ok = 0 Then
        Waitms 150

        Goto Setmin

        End If



        Loop


        '************************************* set min ****************************************


        Setmin:

        Mlb:

        Do


        Portc = 8
        Portb = Hh
        Waitms 4

        Portc = 4
        Portb = Hl
        Waitms 4

        Portc = 2
        Portb = Mh
        Waitms 4

        Portc = 1
        Portb = Ml
        Waitms 4


        If Down = 0 Then

        Waitms 150
        Decr Ml

        End If


        If Up = 0 Then

        Waitms 150
        Incr Ml

        End If


        '******************************************** **********


        If Ml = 255 Then

        Ml = 9
        Decr Mh

        End If

        If Mh = 255 Then

        Mh = 5
        Ml = 9
        Goto Mlb

        End If


        If Ml > 9 Then

        Ml = 0
        Incr Mh

        End If

        If Mh = 5 And Ml > 9 Then

        Mh = 0
        Ml = 0
        Goto Mlb

        End If

        If Mh = 6 Then Mh = 0


        If Ok = 0 Then
        Waitms 150

        Hh = Hh * 100
        Hl = Hl * 10
        H = Hh + Hl
        L = H / 10
        _hour = L


        Mha = Mh * 100
        Mla = Ml * 10
        Ma = Mha + Mla
        Lm = Ma / 10
        _min = Lm

        _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)

        I2cstart ' Generate start code
        I2cwbyte Ds1307w ' send address
        I2cwbyte 0
        I2cwbyte _sec ' Send Data to SECONDS
        I2cwbyte _min ' MINUTES
        I2cwbyte _hour ' starting address in 1307 ' Hours
        I2cstop


        Goto Hom

        End If



        Loop

        End

        '************************************* lable *******************************************

        A:

        Data &B00000001
        Data &B00000011
        Data &B00000111
        Data &B00001111
        Data &B00011111
        Data &B00111111
        Data &B01111111
        Data &B11111111

        H:

        Data &B11111110
        Data &B11111100
        Data &B11111000
        Data &B11110000
        Data &B11100000
        Data &B11000000
        Data &B10000000
        Data &B00000000

        '************************************* end ********************************************* :nerd:
        { خلاف قوانین - پاک شد }

        دیدگاه


          #19
          پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

          راستش هرچی برنامهت رو اینور اونور کردم چیز زیادی دستگیرم نشد
          باور کن سر در آوردن از برنامه دیگران به مراتب سخت تر از نوشتن یه برنامه جدیده
          ولی کلا چندتا اشتباه تکنیکی متوجه شدم که یکیش اینه
          For M = 0 To 7

          Portd = Lookup(m , A)
          Incr Secovf
          Gosub Getdatetime

          If Secovf = 60 Then
          Secovf = 0
          Goto Hom
          End If

          Next M
          شما هیچوقت نباید به این سرعت از روی ds1307 بخونی
          اگه مشکلی نداره من برنامه رو از اول با شیفت رجیستر و برای استفاده عموم بنویسم
          تازه اگه خواستی دما روز هفته و ... بهش اضافه میکنم
          پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

          دیدگاه


            #20
            پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

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

            دیدگاه


              #21
              پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

              ممنون ولی منظورتونو متوجه نششدم چطور میگین نباید به این سرعت از روی ds1307خوند چطوری تند خوندم و چطور باید یواش بخونم یعنی باید از wait استفاده کنم بازم ممنون از توجهتون و اگه زحمت برنامه رو بکشی که دوستان هم بتونن استفاده کنن خیلی اقایی کردی
              { خلاف قوانین - پاک شد }

              دیدگاه


                #22
                پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                ورژن پروتئوست چنده مال من باز نمیکنه میگه مال ورژن پایین تره این مدار :cry:
                { خلاف قوانین - پاک شد }

                دیدگاه


                  #23
                  پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                  منظور من از تند خوندن همون پشت سر هم خوندنه
                  اگه یک wait داشته باشه بهتره
                  پروتئوس هم ورژن7.6 سرویس پک 4 هستش
                  پروتئوس میگه این ورژن پایین تره یا بالاتره؟چون کن از این 7.6 جدید تر ندیدم و پروتئوس های جدید قبلی ها رو باز میکنه
                  پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                  دیدگاه


                    #24
                    پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                    نوشته اصلی توسط حامد رحیمی
                    سلام داداشی :mrgreen:
                    می خواستم فقط موقع پاسخ ایمیل بزنن واسم
                    :bye
                    مهندس نیازی به این کار نبود از دگمه باخبر سازی استفاده می کردی بهتر بود ؟؟؟؟ :nerd:
                    معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                    دیدگاه


                      #25
                      پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                      درود مجدد بر دوستان
                      کسی هست تا حالا توی بسکام از mt 48 t 86 استفاده کرده باشه
                      کتابخانه و یه مثال رو کسی داره توی بسکام ؟
                      معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                      دیدگاه


                        #26
                        پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                        نوشته اصلی توسط امیر حسنی کاخکی
                        منظور من از تند خوندن همون پشت سر هم خوندنه
                        اگه یک wait داشته باشه بهتره
                        پروتئوس هم ورژن7.6 سرویس پک 4 هستش
                        پروتئوس میگه این ورژن پایین تره یا بالاتره؟چون کن از این 7.6 جدید تر ندیدم و پروتئوس های جدید قبلی ها رو باز میکنه
                        مالا میگه 74hc595.dsn has a later version than this copy of isis . in order to lorad this file you must have a later or the same version of proteus oo:
                        { خلاف قوانین - پاک شد }

                        دیدگاه


                          #27
                          پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                          خوب زبون بسته دار میگه فایل شما جدید تر از این ورژنی هست که روی سیستم نصبه دیگه
                          این رو ببین چی میگه
                          ورژن پروتئوست چنده
                          عکس هم میزارم اگه بازم باز نکرد خودت زحمت کشیدنش رو بکش
                          فایل های پیوست شده
                          پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                          دیدگاه


                            #28
                            پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                            6.9.119یه همچین چیزی
                            { خلاف قوانین - پاک شد }

                            دیدگاه


                              #29
                              پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

                              راستی یه زحمت میکشی در مورد برنامه یه توضیح کوچیک بدی و اینکه نحوه کار شیفت رجیسترها چطوریه
                              { خلاف قوانین - پاک شد }

                              دیدگاه


                                #30
                                پاسخ : اساتد محترم در مورد این ساعت کسی میتونه کمکی کنه

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

                                البته ناگفته نماند که 74HC595 لچ داخلی هم داره (طرز کار لچ رو که بلدی)یعنی تا به پایه کلاک لچ فرمان ندی خروجی تغییری نمیکنه
                                (میدونم که بد توضیح دادم دیتا شیت رو بخونی راحت تری)
                                برنامه هم که چیزی نداره که بخوام توضیح بدم اگه کار شیفت رجیستر رو یاد گرفته باشی راحت از برنامه سردر میاری
                                فقط یک توضیح کوچولو که از تایمر فقط برای نمایش روی سون سگمنت استفاده شده
                                پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                                دیدگاه

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