Mehrbod نوشته: انگیزه اتان از ساخت این ساعت چه بوده بانو؟
یک ساعت زیبا و منحصر به فرد و جذاب..
قصدم این بود که نمونه های تجاریشو بسازم و بفروشم توی بازار..
همین کار رو هم کردم. چندتای فروختم..
بنا به درخواست چندنفر تکنولوژی ساختشو بهشون فروختم و با یکی از هم کلاسی های سابقم شریک شدم و کاملا طرحمو بهش دادم... الان یکه تازی میکنه :-)
فیلم نمونه ساعتمو چجوری بگذارم اینجا ببینید؟
Mehrbod نوشته: همچنین این ٢٤٠ رژ[1] کد را بیاورید ببینیم چه بوده!
همشو که نمیتونم بگذارم اینجا. ولی بعضی جاهاشو میگذارم
اینا که ساده ست
$regfile = "m32def.dat"
$crystal = 1000000
$lib "mcsbyte.lbx" ' for smaller code
$lib "ds1307clock.lib" ' modified lib
Enable Interrupts
Dim Q As Byte
Dim A As Byte
Dim I As Byte
Dim H1 As Byte
Dim H2 As Byte
Dim M1 As Byte
Dim M2 As Byte
Dim S1 As Byte
Dim S2 As Byte
Dim B As Byte
Dim Z As Byte
Dim Ii As Byte
============
Settime:
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' start address in 1307
I2cstart ' Generate start code
I2cwbyte Ds1307r ' send address
I2crbyte _sec , Ack
I2crbyte _min , Ack ' MINUTES
I2crbyte _hour , Nack
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
' Return
Select Case _hour
Case 10 To 19 :
H1 = _hour - 10
H2 = 1
Case 20 To 23 :
H1 = _hour - 20
H2 = 2
Case Else :
H1 = _hour
H2 = 0
End Select
Porta = 0
Portb = Lookup(h1 , D)
Waitms 10
Porta = 1
Portb = Lookup(h2 , D)
Waitms 10
Porta = 2
Portb = Lookup(m1 , D)
Waitms 10
Porta = 3
Portb = Lookup(m2 , D)
Waitms 10
Porta = 4
Portb = Lookup(s1 , D)
Waitms 10
Porta = 5
Portb = Lookup(s2 , D)
Waitms 10
If _sec = 1 Or _sec = 3 Or _sec = 5 Or _sec = 7 Or _sec = 9 Or _sec = 11 _
Or _sec = 13 Or _sec = 15 Or _sec = 17 Or _sec = 19 Or _sec = 21 Or _sec = 23 _
Or _sec = 25 Or _sec = 27 Or _sec = 29 Or _sec = 31 Or _sec = 33 Or _sec = 35 _
Or _sec = 37 Or _sec = 39 Or _sec = 41 Or _sec = 43 Or _sec = 45 Or _sec = 47 _
Or _sec = 49 Or _sec = 51 Or _sec = 53 Or _sec = 55 Or _sec = 57 Or _sec = 59 Then
Set Portc.3
Else
Reset Portc.3
End If
Loop
End
D:
Data 64 , 121 , 36 , 48 , 25 , 18 , 2 , 120 , 0 , 16
Sectic:
Select Case _sec
Case 1 To 8:
Portc = 0
Shift Portd , Left
Reset Portd.0
If _sec = 8 Then
Portc = 1
Portd = 255
End If
Case 9 To 16:
Shift Portd , Left
Reset Portd.0
If _sec = 16 Then
Portc = 2
Portd = 255
End If
Case 17 To 24:
Shift Portd , Left
Reset Portd.0
If _sec = 24 Then
Portc = 3
Portd = 255
End If
Case 25 To 32:
Shift Portd , Left
Reset Portd.0
If _sec = 32 Then
Portc = 4
Portd = 255
End If
Case 33 To 40:
Shift Portd , Left
Reset Portd.0
If _sec = 40 Then
Portc = 5
Portd = 255
End If
Case 41 To 48:
Shift Portd , Left
Reset Portd.0
If _sec = 48 Then
Portc = 6
Portd = 255
End If
Case 49 To 56:
Shift Portd , Left
Reset Portd.0
If _sec = 56 Then
Portc = 7
Portd = 255
End If