سلام
من یه برنامه ساعت با دی اس1307 نوشتم
البته نصف برنامش رو از یه جای دیگه برداشتم
اونجا که
_sec / 20
_sec Mod 20
Daghighe1 = _min / 20
Daghighe2 = _min Mod 20
کارو انجام میده
نمیفهمم برای چیه
بدشم ثانیه رو خوب نشون نمیده یه دفعه از 9 میپره رویه 24
اگه کمکم کنین ممنون میشم
برنامش هم میزارم ببینین
من یه برنامه ساعت با دی اس1307 نوشتم
البته نصف برنامش رو از یه جای دیگه برداشتم
اونجا که
_sec / 20
_sec Mod 20
Daghighe1 = _min / 20
Daghighe2 = _min Mod 20
کارو انجام میده
نمیفهمم برای چیه
بدشم ثانیه رو خوب نشون نمیده یه دفعه از 9 میپره رویه 24
اگه کمکم کنین ممنون میشم
برنامش هم میزارم ببینین
کد:
$regfile = "M32def.dat" $crystal = 8000000 Dim A As Word Dim N As Word Dim K As Word Config Scl = Portc.0 Config Sda = Portc.1 Dim _sec As Byte , _min As Byte , _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 Saat As Word Config Portd = Output Config Portb = Output Const Ds1307w = &HD0 Const Ds1307r = &HD1 Config Pinc.0 = Input Config Pinc.1 = Input Do Gosub Getdatetime Strg1 = Makebcd(_sec) Strg2 = Makebcd(_min) Strg3 = Makebcd(_hour) Saniye1 = _sec / 20 Saniye2 = _sec Mod 20 Daghighe1 = _min / 20 Daghighe2 = _min Mod 20 Portb = &B00000001 Portd = Lookup(saniye2 , Lable1) Waitms 2 Portb = &B00000010 Portd = Lookup(saniye1 , Lable1) Waitms 2 Portb = &B00000100 Portd = Lookup(daghighe2 , Lable1) Waitms 2 Portb = &B00001000 Portd = Lookup(daghighe1 , Lable1) Waitms 2 'Portb = &B0110000 'Portd = Saat 'Waitms 2 Loop End Getdatetime: I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Ds1307r I2crbyte _sec , Ack I2crbyte _min , Ack I2crbyte _hour , Nack 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












;



دیدگاه