اطلاعیه

Collapse
No announcement yet.

درخواست راه اندازی ds1307با مگا32

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

    درخواست راه اندازی ds1307با مگا32

    [سلام از اساتید و دوستان درخواست کمک دارم 5 روزه اعصابمو خراب کرده نمونه خط کانفیق ایسی

    کد:
     $regfile = "m32def.dat"
    $crystal = 8000000
    '-------------------------------------------------------------------------------
    Config Clock = Soft , Gosub = Sectic
    Enable Interrupts
    Config Debounce = 30
    '--------------------------- ds 1307 -----------------------------------------
    $lib "ds1307clock.lib"
    $lib “mcsbyteint.lbx”
    'configure the scl and sda pins
    Config Sda = Porta.7
    Config Scl = Portc.5
    'address of ds1307
    Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
    Const Ds1307r = &HD1
    '*******************************************************************************
    
    '                 CONFIG PORT
    
    '*******************************************************************************
    Config Portb = Output
    Config Portd = Output
    Config Pina.0 = Output
    Config Pina.1 = Output
    Config Pina.2 = Output
    Config Pina.3 = Output
    Config Pina.4 = Input
    Config Pina.5 = Input
    Config Pina.6 = Input
    Config Pinc.0 = Output
    Config Pinc.1 = Output
    Config Pinc.2 = Output
    Config Pinc.3 = Output
    Config Pinc.4 = Output
    '*******************************************************************************
    
    '                 VAR
    
    '*******************************************************************************
    Dim Scan As Byte , Refresh As Byte , Row As Byte , Refresh2 As Byte
    
    Dim Hour As Byte , Mint As Byte , Second As Byte
    Dim H1 As Byte , H2 As Byte , H3 As Byte , F As Byte , G As Byte
    Dim M1 As Byte , M2 As Byte , M3 As Byte
    Dim S1 As Byte , S2 As Byte , S3 As Byte
    Dim K(16) As Integer , L(5) As Byte
    Dim H4(8) As Byte , H5(65) As Byte , M4(8) As Byte , M5(65) As Byte , S4(8) As Byte , S5(65) As Byte , Tim0(65) As Byte , Tim(65) As Byte
    Dim A As Byte , A1 As Byte , A2 As Byte , A3 As Byte , A4 As Byte , A5 As Byte
    Dim B As Byte , B1 As Byte , B2 As Byte , B3 As Byte , B4 As Byte , B5 As Byte
    Dim C As Byte , C1 As Byte , C2 As Byte , C3 As Byte , C4 As Byte , C5 As Byte
    Dim Buf(60)as Byte
    Dim D(60) As Byte , D1(60) As Byte
    Dim J1 As Integer , J2 As Integer , J3 As Integer , J4 As Integer
    Dim I1 As Integer , I2 As Integer , I3 As Integer , I4 As Integer
    Dim S(16) As Byte , T As Byte , T2 As Bit , T22 As Byte
    
    Dim Daycon As Byte , S7 As Byte , Ss As Integer
    
    Dim W As Bit , X As Bit , Z As Byte
    Dim Y1 As Integer , Y2 As Integer , Y3 As Integer , Y4 As Integer , Y5 As Integer
    Dim Effecttime As Byte
    
    Dim Myear As Integer                    'input Miladi(gregorian) Year
    Dim Mday As Integer                     'input Miladi Day
    Dim Mmonth As Integer                    'input Miladi Month
    Dim Mdayofyear As Integer
    Dim Myear_ As Integer
    
    Dim Jday As Integer                     'output Jalali(shamsi) Day
    Dim Jmonth As Integer                    'output Jalali Month
    Dim Jyear As Integer                    'output Jalali Year
    Dim Jdayofyear As Integer
    
    Dim Gnumdayofyear As Integer
    Dim Isleapyear As Bit
    Dim Isleapyearp As Bit
    
    Dim Iloop As Byte
    Dim Temp1 As Integer
    Dim Temp2 As Integer
    Dim Temp3 As Integer
    Dim Temp4 As Integer
    
    Dim Jmonth_a(12) As Byte
    Dim Mmonth_a(12) As Byte
    Dim Seco As Byte , Mine As Byte , Hour1 As Byte , Day0 As Byte , Day1 As Byte , Month As Byte , Year As Byte
    '*******************************************************************************
    
    '                 TIME & DAY SET0
    
    '*******************************************************************************
    
    '******************'
    '******************'
    Effecttime = 7                       ' (s)
    '******************'
    '******************'
    
    
    Gosub I2c
    T = 0
    W = 0
    For A = 0 To 7
    Portb = 0
    Portd = 2 ^ A
    Portd = 0
    Portc = 2 ^ A
    Portc = 0
    Next A
    '*******************************************************************************
    '             **            **
    '             **            **
    '             **            **
    '             **     MAIN     **
    '             **            **
    '             **            **
    '             **            **
    '*******************************************************************************
    
    Gosub Azanchange
    Gosub Day
    
    Main:
    
    Do
    
      If X = 1 Then
      X = 0
      Gosub I2c
      Gosub Azanchange
      Gosub Day
      End If
    
    
      If W = 1 Then
      W = 0
      Gosub Secshift
      Gosub Timeshift
      End If
    
    
      For B = 0 To 64
      Tim0(b) = H5(b) Or M5(b)
      Next B
      For B = 0 To 64
      Tim(b) = Tim0(b) Or S5(b)
      Next B
    
      If T = 0 And T2 = 1 Then
      Gosub Day
      T2 = 0
      End If
      If T = 1 And T2 = 1 Then
      Gosub Daynumber
      T2 = 0
      End If
      If T = 2 Or T = 4 Or T = 6 Or T = 8 Or T = 10 Or T = 12 Then
      If T2 = 1 Then
      Gosub Azan01
      T2 = 0
      End If
      End If
      If T = 3 Or T = 5 Or T = 7 Or T = 9 Or T = 11 Or T = 13 Then
      If T2 = 1 Then
      Gosub Azantime
      T2 = 0
      End If
      End If
    
            For Refresh = 0 To 50
              Scan = 0
              For Row = 0 To 7
               A = Row
               Gosub Chekkey1
               Portb = Tim(a)
               Portd = 1
               Portd = 0
               Portb = Tim(a + 8)
               Portd = 2
               Portd = 0
               Portb = Tim(a + 16)
               Portd = 4
               Portd = 0
               Portb = Tim(a + 24)
               Portd = 8
               Portd = 0
               Portb = Tim(a + 32)
               Portd = 16
               Portd = 0
               Portb = Tim(a + 40)
               Portd = 32
               Portd = 0
               Portb = Tim(a + 48)
               Portd = 64
               Portd = 0
               Portb = Tim(a + 56)
               Portd = 128
               Portd = 0
    
               A1 = A + 1
               A2 = A1 + 8
               A3 = A1 + 16
               A4 = A1 + 24
               A5 = A1 + 32
    
    
               Portb = Buf(a1)
               Portc = 1
               Portc = 0
               Portb = Buf(a2)
               Portc = 2
               Portc = 0
               Portb = Buf(a3)
               Portc = 4
               Portc = 0
               Portb = Buf(a4)
               Portc = 8
               Portc = 0
               Portb = Buf(a5)
               Portc = 16
               Portc = 0
    
              Porta = Scan
              Scan = Scan + 1
              Waitus 100
              Porta = 8
              Next Row
           Next Refresh
    Loop
    '*******************************************************************************
    '             **            **
    '             **     I2C     **
    '             **            **
    '*******************************************************************************
    I2c:
        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 Hour1 , Ack                ' Hours
        I2crbyte Day0 , Ack
        I2crbyte Day1 , Ack
        I2crbyte Month , Ack
        I2crbyte Year , Nack
        I2cstop
    
        Seco = Makedec(seco) : Mine = Makedec(mine) : Hour1 = Makedec(hour1) : Day0 = Makedec(day0)
    
        Day1 = Makedec(day1) : Month = Makedec(month) : Year = Makedec(year)
        If Seco > 59 Then Seco = 0
        If Mine > 59 Then Mine = 0
        If Hour1 > 23 Then Hour1 = 0
        If Day0 > 6 Then Day0 = 0
        If Day1 > 31 Then Day1 = 1
        If Month > 12 Then Month = 1
        If Year > 99 Then
         Year = 0
    End If
    دیود پل اپ 47 کیلو
    پورت جی تک غیر فعال
    تاریخ رو ایسی ثبت میشه ولی بعد کذشت 24 ساعت که باید مقدارش جلو بره میره رو تاریخ 11/10/78 روزشم یکشنبه یعنی همون مقدار پیش فرض رو ست میکنه و ثابت میمونه :angry:
    کارهای انجام شده
    تعویض ای سی حدود 7 تا
    تعویض کریستال
    گراند کردن کریستال
    راه اندازی ایسی با باطری بک اپ و بدون باطری
    استفاده از مقاومت پل اپ10 کیلو[img][/img]

    #2
    پاسخ : درخواست راه اندازی ds1307با مگا32

    سلام

    شماتیکتون رو هم لطفا قرار بدین.

    دیود پل اپ 47 کیلو چیه ؟؟؟
    قطعه جدیدیه ؟

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

    موفق باشید
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : درخواست راه اندازی ds1307با مگا32

      منظورم مقاومته47 کیلو
      اخه تو پرتیوس جواب میده

      دیدگاه


        #4
        پاسخ : درخواست راه اندازی ds1307با مگا32

        اگه می خوای عملی کار کنی پروتیوس رو بیخیال.
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه

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