سلام
من برنامه ساعت با ds1307 رو نوشتم تو پروتئوس کار میکنه هیچ مشکلی هم نداره ولی رو برد میبندمش اصلن کار نمیکنه باتری پشتیبان هم گذاشتم برنامه رو میزارم ببینین مشکل از برنامه هست یا چیزه دیگه اییه
اگه کمک کنین ممنون میشم
من برنامه ساعت با ds1307 رو نوشتم تو پروتئوس کار میکنه هیچ مشکلی هم نداره ولی رو برد میبندمش اصلن کار نمیکنه باتری پشتیبان هم گذاشتم برنامه رو میزارم ببینین مشکل از برنامه هست یا چیزه دیگه اییه
اگه کمک کنین ممنون میشم
کد:
$regfile = "M16def.dat" $crystal = 8000000 Dim Minute As Word Dim Hour As Word Dim K As Word Config Scl = Portc.0 Config Sda = Portc.1 Dim _sec As Byte Dim _min As Byte Dim _hour As Byte Dim Strg1 As Word Dim Strg2 As Word Dim Strg3 As Word Dim Saniye1 As Word Dim Saniye2 As Word Dim Daghighe1 As Word Dim Daghighe2 As Word Dim Saat1 As Word Dim Saat2 As Word Config Portd = Output Config Portb = Output Const Ds1307w = &HD0 Const Ds1307r = &HD1 Config Pinc.0 = Input Config Pinc.1 = Input Config Pina.0 = Input Config Pina.1 = Input 'Pina.0 Alias Minute 'Pina.1 Alias Hour Do Gosub Settime Debounce Pina.0 , 0 , Main Strg1 = Makedec(_sec) Strg2 = Makedec(_min) Strg3 = Makedec(_hour) Saniye1 = Strg1 / 10 Saniye2 = Strg1 Mod 10 Daghighe1 = Strg2 / 10 Daghighe2 = Strg2 Mod 10 Saat1 = Strg3 / 10 Saat2 = Strg3 Mod 10 Portb = &B00000001 Portd = Lookup(saniye2 , Lable1) Waitms 5 Portb = &B00000010 Portd = Lookup(saniye1 , Lable1) Waitms 5 Portb = &B00000100 Portd = Lookup(daghighe2 , Lable1) Waitms 5 Portb = &B00001000 Portd = Lookup(daghighe1 , Lable1) Waitms 5 Portb = &B00010000 Portd = Lookup(saat2 , Lable1) Waitms 5 Portb = &B00100000 Portd = Lookup(saat1 , Lable1) Waitms 5 Loop End Minute: Incr _min If _min = 10 Then _min = 0 End If Return Hour: Incr _hour Return Main: Gosub Getdatetime Strg1 = Makedec(_sec) Strg2 = Makedec(_min) Strg3 = Makedec(_hour) Saniye1 = Strg1 / 10 Saniye2 = Strg1 Mod 10 Daghighe1 = Strg2 / 10 Daghighe2 = Strg2 Mod 10 Saat1 = Strg3 / 10 Saat2 = Strg3 Mod 10 Portb = &B00000001 Portd = Lookup(saniye2 , Lable1) Waitms 5 Portb = &B00000010 Portd = Lookup(saniye1 , Lable1) Waitms 5 Portb = &B00000100 Portd = Lookup(daghighe2 , Lable1) Waitms 5 Portb = &B00001000 Portd = Lookup(daghighe1 , Lable1) Waitms 5 Portb = &B00010000 Portd = Lookup(saat2 , Lable1) Waitms 5 Portb = &B00100000 Portd = Lookup(saat1 , Lable1) Waitms 5 Goto Main Getdatetime: I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Ds1307r I2crbyte _sec , Ack I2crbyte _min , Ack I2crbyte _hour , Nack I2cstop Return Settime: _sec = Makebcd(_sec) _min = Makebcd(_min) _hour = Makebcd(_hour) Debounce Pina.1 , 0 , Minute Debounce Pina.2 , 0 , Hour I2cstart I2cwbyte Ds1307w I2cwbyte 3 I2cwbyte _sec I2cwbyte _min I2cwbyte _hour I2cstop Return Lable1: Data &B11000000 '00111111 Data &B11111001 '00000110 Data &B10100100 '01011011 Data &B10110000 '01001111 Data &B10011001 '01100110 Data &B10010010 '01101101 Data &B10000010 '01111101 Data &B11111000 '00000111 Data &B10000000 '01111111 Data &B10010000
دیدگاه