درود بر همگی
دوستان من میخوام با سون سگمنت ساعت و تاریخ دیجیتالی رو با ds1307 نمایش بدم اونم به صورت دائمی یعنی هم تاریخ هم ساعت نمایش داده بشه یه سری دستورات رو استفاده کردم اما موقع شبیه سازی ایراد داره اگه میشه کمک کنید چطوری تابع تبدیل تاریخ رو به این برنامه اضافه کنم که جداگانه تاریخ رو هم برام نمایش بده؟ فایل برنامه و شبیه سازی رو قرار میدم ممنون میشم کمک کنید
لینک برنامه:
http://upir.ir/934/saat-ba-ds1307.zip
دوستان من میخوام با سون سگمنت ساعت و تاریخ دیجیتالی رو با ds1307 نمایش بدم اونم به صورت دائمی یعنی هم تاریخ هم ساعت نمایش داده بشه یه سری دستورات رو استفاده کردم اما موقع شبیه سازی ایراد داره اگه میشه کمک کنید چطوری تابع تبدیل تاریخ رو به این برنامه اضافه کنم که جداگانه تاریخ رو هم برام نمایش بده؟ فایل برنامه و شبیه سازی رو قرار میدم ممنون میشم کمک کنید
کد:
$regfile = "m32def.dat" $crystal = 8000000 Config Porta = Output Config Portb = Output Config Portd = Output Config Pinc.5 = Input Config Pinc.6 = Input Config Pinc.7 = Input $lib "Ds1307clock.lib" Config Sda = Portc.1 Config Scl = Portc.0 Dim Second As Byte Dim Minute As Byte Dim Hour As Byte Dim H2 As Word Dim H1 As Word Dim M2 As Word Dim M1 As Word Dim S2 As Word Dim S1 As Word Const Ds1307w = &HD0 Const Ds1307r = &HD1 Gosub Ds1307h Main: Do Gosub Ds1307 Gosub Korosh Gosub Keyscan Loop Korosh: Second = Makedec(second) Minute = Makedec(minute) Hour = Makedec(hour) If Second > 59 Then Second = 0 If Minute > 59 Then Minute = 0 If Hour > 23 Then Hour = 0 H1 = Hour / 10 H2 = Hour Mod 10 M1 = Minute / 10 M2 = Minute Mod 10 S1 = Second / 10 S2 = Second Mod 10 Set Portb.1 Reset Portb.2 Reset Portb.3 Reset Portb.4 Reset Portb.5 Reset Portb.6 Porta = Lookup(h2 , Dta) Waitms 2 Reset Portb.1 Set Portb.2 Reset Portb.3 Reset Portb.4 Reset Portb.5 Reset Portb.6 Porta = Lookup(h1 , Dta) Waitms 2 Reset Portb.1 Reset Portb.2 Set Portb.3 Reset Portb.4 Reset Portb.5 Reset Portb.6 Porta = Lookup(m2 , Dta) Waitms 2 Reset Portb.1 Reset Portb.2 Reset Portb.3 Set Portb.4 Reset Portb.5 Reset Portb.6 Porta = Lookup(m1 , Dta) Waitms 2 Reset Portb.1 Reset Portb.2 Reset Portb.3 Reset Portb.4 Set Portb.5 Reset Portb.6 Porta = Lookup(s2 , Dta) Waitms 2 Reset Portb.1 Reset Portb.2 Reset Portb.3 Reset Portb.4 Reset Portb.5 Set Portb.6 Porta = Lookup(s1 , Dta) Waitms 2 Return Ds1307: I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Ds1307r I2crbyte Second , Ack I2crbyte Minute , Ack I2crbyte Hour , Nack I2cstop Return Ds1307h: If Second > 59 Then Second = 0 Second = Makebcd(second) If Minute > 59 Then Minute = 0 Minute = Makebcd(minute) If Hour > 23 Then Hour = 0 Hour = Makebcd(hour) I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Second I2cwbyte Minute I2cwbyte Hour I2cstop Return Keyscan: Debounce Pinc.5 , 0 , Yseco , Sub Debounce Pinc.6 , 0 , Ymin , Sub Debounce Pinc.7 , 0 , Yhour , Sub Return Yseco: Incr Second If Second > 59 Then Second = 0 Second = Makebcd(second) I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cwbyte Second I2cstop Return Ymin: Incr Minute If Minute > 59 Then Minute = 0 Minute = Makebcd(minute) I2cstart I2cwbyte Ds1307w I2cwbyte 1 I2cwbyte Minute I2cstop Return Yhour: Incr Hour If Hour > 23 Then Hour = 0 Hour = Makebcd(hour) I2cstart I2cwbyte Ds1307w I2cwbyte 2 I2cwbyte Hour I2cstop Return End Dta: Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90 , &HBF
لینک برنامه:
http://upir.ir/934/saat-ba-ds1307.zip
دیدگاه