سلام
من با این ds1307 به یه مشکل خیلی نادر برخورد کردم همه جارو زیرو رو کردم اما مثل اینکه فقط من این مشکلو دارم
مشکلم ام اینه که وقتی زمانو برای ای سی میفرستم جلو نمیره ثابت میمونه اینم برنامه
در ضمن تو پروتیوس بدون مشکل کار میکنه ای سی رو هم عوض کردم درست نشد آیا باید خازنی چیزی برای کریستالش بزارم؟ به نظر شما ممکنه اشکال از کریستال باشه
$regfile = "m32def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.2 , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7
'Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
Config Sda = Portc.1
Config Scl = Portc.0
'address of ds1307
Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
Const Ds1307r = &HD1
'$lib "ds1307clock.lib"
Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
Dim Seco As Byte , Mine As Byte , Hour As Byte
Cls
Locate 1 , 1
Lcd "salam"
Wait 2
Seco = Makebcd(10)
Mine = Makebcd(30)
Hour = Makebcd(11)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte Seco
I2cwbyte Mine
I2cwbyte Hour
I2cstop
Do
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)
Cls
Lcd Hour ; ":" ; Mine ; ":" ; Seco
Waitms 500
Loop
End
من با این ds1307 به یه مشکل خیلی نادر برخورد کردم همه جارو زیرو رو کردم اما مثل اینکه فقط من این مشکلو دارم
مشکلم ام اینه که وقتی زمانو برای ای سی میفرستم جلو نمیره ثابت میمونه اینم برنامه
در ضمن تو پروتیوس بدون مشکل کار میکنه ای سی رو هم عوض کردم درست نشد آیا باید خازنی چیزی برای کریستالش بزارم؟ به نظر شما ممکنه اشکال از کریستال باشه
$regfile = "m32def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.2 , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7
'Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
Config Sda = Portc.1
Config Scl = Portc.0
'address of ds1307
Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
Const Ds1307r = &HD1
'$lib "ds1307clock.lib"
Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
Dim Seco As Byte , Mine As Byte , Hour As Byte
Cls
Locate 1 , 1
Lcd "salam"
Wait 2
Seco = Makebcd(10)
Mine = Makebcd(30)
Hour = Makebcd(11)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte Seco
I2cwbyte Mine
I2cwbyte Hour
I2cstop
Do
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)
Cls
Lcd Hour ; ":" ; Mine ; ":" ; Seco
Waitms 500
Loop
End
دیدگاه