اطلاعیه

Collapse
No announcement yet.

کمک در مورد فیوزبیت

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

    #16
    پاسخ : کمک در مورد فیوزبیت

    دوستان این ئمدار قبلا کار میکرد ولی یهو قاطی کرد منم تمام قطعاتشو عوض کردم بهتر شد ولی درست نشد
    اینم برنامه مربوط به قسمتای ساعتش:
    Const Ds1307w = &HD0
    Const Ds1307r = &HD1
    .
    .
    .
    .
    .
    .
    Do
    If Key1 = 0 Then
    _hour = _hour + 1
    If _hour > 23 Then _hour = 0
    Gosub Settime
    End If

    If Key2 = 0 Then
    _min = _min + 1
    If _min > 59 Then _min = 0
    Gosub Settime
    End If
    .
    .
    .
    .
    .
    .
    .
    .
    .

    Dim Weekday As Byte
    Getdatetime:
    I2cstart
    I2cwbyte Ds1307w
    I2cwbyte 0

    I2cstart
    I2cwbyte Ds1307r
    I2crbyte _sec , Ack
    I2crbyte _min , Ack
    I2crbyte _hour , Ack
    I2crbyte Weekday , Ack
    I2crbyte _day , Ack
    I2crbyte _month , Ack
    I2crbyte _year , Nack
    I2cstop
    _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
    _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
    Return

    Set Date:
    _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
    I2cstart
    I2cwbyte Ds1307w
    I2cwbyte 4
    I2cwbyte _day
    I2cwbyte _month
    I2cwbyte _year
    I2cstop
    Return

    Set Time:
    _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
    I2cstart
    I2cwbyte Ds1307w
    I2cwbyte 0
    I2cwbyte _sec
    I2cwbyte _min
    I2cwbyte _hour
    I2cstop
    Return

    Weekdays:
    Data "monday" , "tusday" , "wednesday" , "thursday" , "friday" , "saturday" , "sunday"

    ببخشید بعضی از جاهاش اینجا کپی کردم ریخته بهم




    دیدگاه


      #17
      پاسخ : کمک در مورد فیوزبیت

      پسر خوب اولین باری که روشن میکنیش یه بار تنظیمش کن ببین درست میشه من خودم این مشکل رو دقیقا داشتم بعد اولین باری که روشنش کردم تنظیم کردمش راه افتاد :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry:

      دیدگاه


        #18
        پاسخ : کمک در مورد فیوزبیت

        نوشته اصلی توسط reza javahery
        پسر خوب اولین باری که رشن میکنیش یه بار تنظیمش کن ببین درست میشه من خودم این مشکل رو دقیقا داشتم بعد اولین باری که روشنش کردم تنظیم کردمش راه افتاد :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry:
        ببخشید ولی رو عدد 80 ثانیش گیر کرده
        دقیقه و ساعتش تنظیم میشه ولی وقتی ثانیش ثابت مونده چیکار کنم؟

        دیدگاه


          #19
          پاسخ : کمک در مورد فیوزبیت

          اینو بنویس اول برنامت




          کد:
              Set Time:
              (sec = Makebcd(_0) : _min = Makebcd(0) : _hour = Makebcd(0
               I2cstart
               I2cwbyte Ds1307w
               I2cwbyte 0
               I2cwbyte _sec
               I2cwbyte _min
               I2cwbyte _hour
               I2cstop
              Return

          دیدگاه


            #20
            پاسخ : کمک در مورد فیوزبیت

            من 3 سالیه بیسیک کار نکردم ولی اینو توی سیستمم پیداش کردم
            کد:
            $regfile = "m8def.dat" : $crystal = 1000000
            Config Lcd = 16 * 2
            Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
            $lib "ds1307clock.lib"
            Config Sda = Portd.7 : Config Scl = Portd.6
            Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
            Const Ds1307r = &HD1
            Config Pinc.1 = Input : Config Pinc.2 = Input : Config Pinc.3 = Input : Config Pinc.4 = Input
            Config Debounce = 30
            Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
            Dim Seco As Byte , Mine As Byte , Hour As Byte
            Cursor Off : Cls
            Main:
            Do
            Gosub Ds1307
            Gosub 24_12
            Gosub Chekkey
            Loop
            Ds1307:
            I2cstart                      ' Generate start code
            I2cwbyte Ds1307w                  ' send address
            I2cwbyte 0                     ' start address in 1307
            I2cstart                      ' Generate start code
            I2cwbyte Ds1307r                  ' send address
            I2crbyte Seco , Ack                 'sec
            I2crbyte Mine , Ack                 ' MINUTES
            I2crbyte Hour , Nack                ' Hours
            I2cstop
            Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
            If Seco > 59 Then Seco = 0
            If Mine > 59 Then Mine = 0
            If Hour > 23 Then
            Hour = 0
            Gosub Seco
            End If
            Return
            24_12:
            If Pinc.4 = 1 Then Gosub Disply_24
            If Pinc.4 = 0 Then Gosub Disply_12
            Return
            Disply_24:
            Locate 1 , 1 : Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; "   "
            Locate 2 , 6 : Lcd "(24)"
            Return
            Disply_12:
            If Hour = 0 Then Hour = 12
            If Hour > 12 Then Hour = Hour - 12
            Locate 1 , 1 : Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; "   "
            Locate 2 , 6 : Lcd "(12)"
            Return
            Chekkey:
            Debounce Pinc.1 , 0 , Seco , Sub
            Debounce Pinc.2 , 0 , Mine , Sub
            Debounce Pinc.3 , 0 , Hour , Sub
            Return
            Seco:
            Incr Seco
            If Seco > 59 Then Seco = 0
            Seco = Makebcd(seco)
            I2cstart                      ' Generate start code
            I2cwbyte Ds1307w                  ' send address
            I2cwbyte 0                     ' starting address in 1307
            I2cwbyte Seco
            I2cstop
            Return
            Mine:
            Incr Mine
            If Mine > 59 Then Mine = 0
            Mine = Makebcd(mine)
            I2cstart                      ' Generate start code
            I2cwbyte Ds1307w                  ' send address
            I2cwbyte 1                     ' starting address in 1307
            I2cwbyte Mine
            I2cstop
            Return
            Hour:
            Incr Hour
            If Hour > 23 Then Hour = 0
            Hour = Makebcd(hour)
            I2cstart                      ' Generate start code
            I2cwbyte Ds1307w                  ' send address
            I2cwbyte 2                     ' starting address in 1307
            I2cwbyte Hour
            I2cstop
            Return
            End
            امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

            دیدگاه


              #21
              پاسخ : کمک در مورد فیوزبیت

              نوشته اصلی توسط Abbas Sarami
              من 3 سالیه بیسیک کار نکردم ولی اینو توی سیستمم پیداش کردم
              کد:
              $regfile = "m8def.dat" : $crystal = 1000000
              Config Lcd = 16 * 2
              Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
              $lib "ds1307clock.lib"
              Config Sda = Portd.7 : Config Scl = Portd.6
              Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
              Const Ds1307r = &HD1
              Config Pinc.1 = Input : Config Pinc.2 = Input : Config Pinc.3 = Input : Config Pinc.4 = Input
              Config Debounce = 30
              Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
              Dim Seco As Byte , Mine As Byte , Hour As Byte
              Cursor Off : Cls
              Main:
              Do
              Gosub Ds1307
              Gosub 24_12
              Gosub Chekkey
              Loop
              Ds1307:
              I2cstart                      ' Generate start code
              I2cwbyte Ds1307w                  ' send address
              I2cwbyte 0                     ' start address in 1307
              I2cstart                      ' Generate start code
              I2cwbyte Ds1307r                  ' send address
              I2crbyte Seco , Ack                 'sec
              I2crbyte Mine , Ack                 ' MINUTES
              I2crbyte Hour , Nack                ' Hours
              I2cstop
              Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
              If Seco > 59 Then Seco = 0
              If Mine > 59 Then Mine = 0
              If Hour > 23 Then
              Hour = 0
              Gosub Seco
              End If
              Return
              24_12:
              If Pinc.4 = 1 Then Gosub Disply_24
              If Pinc.4 = 0 Then Gosub Disply_12
              Return
              Disply_24:
              Locate 1 , 1 : Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; "   "
              Locate 2 , 6 : Lcd "(24)"
              Return
              Disply_12:
              If Hour = 0 Then Hour = 12
              If Hour > 12 Then Hour = Hour - 12
              Locate 1 , 1 : Lcd "Time = " ; Hour ; ":" ; Mine ; ":" ; Seco ; "   "
              Locate 2 , 6 : Lcd "(12)"
              Return
              Chekkey:
              Debounce Pinc.1 , 0 , Seco , Sub
              Debounce Pinc.2 , 0 , Mine , Sub
              Debounce Pinc.3 , 0 , Hour , Sub
              Return
              Seco:
              Incr Seco
              If Seco > 59 Then Seco = 0
              Seco = Makebcd(seco)
              I2cstart                      ' Generate start code
              I2cwbyte Ds1307w                  ' send address
              I2cwbyte 0                     ' starting address in 1307
              I2cwbyte Seco
              I2cstop
              Return
              Mine:
              Incr Mine
              If Mine > 59 Then Mine = 0
              Mine = Makebcd(mine)
              I2cstart                      ' Generate start code
              I2cwbyte Ds1307w                  ' send address
              I2cwbyte 1                     ' starting address in 1307
              I2cwbyte Mine
              I2cstop
              Return
              Hour:
              Incr Hour
              If Hour > 23 Then Hour = 0
              Hour = Makebcd(hour)
              I2cstart                      ' Generate start code
              I2cwbyte Ds1307w                  ' send address
              I2cwbyte 2                     ' starting address in 1307
              I2cwbyte Hour
              I2cstop
              Return
              End
              دست شما درد نکنه ولی برای من ال سی دی گرافیکی و atmega32 است :rolleyes:

              دیدگاه

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