рдкреНрд░реЗрд░рдгрд╛
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдЙрд╕ рд╕рдордп рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░реЛрдХрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬрдм рд╕реЗ рд╣рдо рдЗрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓реЛ рд╕рдордп рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдирдЯ рднреА рдпрд╛рдж рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛, рдЬрд┐рд╕реЗ рдШрдбрд╝реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!
рд╕рдбрд╝рдХ рдкрд░ рд╕реВрд░рдЬ рдЙрдЧ рдЖрдпрд╛, рдореИрдВрдиреЗ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреЛ рдЦреАрдВрдЪрд╛ рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдХрд╛рдкрд┐рдпрд░ рдкрд░
рдмрд┐рдЦреЗрд░ рджрд┐рдпрд╛ред - LUT рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрдврд╝реЗрдВ - (рд▓реЗрдЬрд░-рдЗрд╕реНрддреНрд░реА рддрдХрдиреАрдХ)редрдореИрдВ рдкрд░рд┐рдгрд╛рдо рд╢реВрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рд╕рдорд╛рдкреНрдд рдмреЛрд░реНрдб рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА: рдЖрдк
рдЙрди рдЬрдЧрд╣реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдКрдкрд░ рдирд╣реАрдВ рдЖрдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ, рдХреЗрд╡рд▓ рд▓реИрдВрдбрдлрд┐рд▓ рдкрд┐рдЫрдбрд╝ рдЧрдпрд╛редрдЕрдЧрд▓рд╛, рдШрдЯрдХреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдмрд╕ рдЙрдирдХреА рдПрдХ рд╕реВрдЪреА рдЫреЛрдбрд╝ рджреЗрдВ:- AtTiny2313 - 8-рдмрд┐рдЯ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░
- ds1307 - рдЕрдЪреНрдЫреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдЙрдВрдЯрд░ рдЪрд┐рдк
- 32.768 kHz рдкрд░ рдШрдбрд╝реА рдХреНрд╡рд╛рд░реНрдЯреНрдЬ
- 2 x 10K рд░реЗрд╕рд┐рд╕реНрдЯрд░реНрд╕
- 10 рдУрдо рдкреНрд░рддрд┐ 7 рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ
- 1 x 5.2 k╬й рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛
- 4 рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдкреНрд░рддрд┐ 1 kOhm
- 4 рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ KT315 (рдЙрдирдХреЗ рдЖрдзреБрдирд┐рдХ рднрд╛рдИ)
- 5 рд╡реЛрд▓реНрдЯ рдмрдЬрд░
- 2 рдШрдбрд╝реА рдмрдЯрди (рдХреЛрдиреЗ рдмрдврд╝рддреЗ)
- 4 рд╕рдВрдХреЗрддрдХ (10011-рдмреАрдПрд╕рдЖрд░) рдЖрдо рдПрдиреЛрдб
- 47 рдЯреИрдВрдЯрд▓рдо рдорд╛рдЗрдХреНрд░реЛрдлреИрд░рд╛рдб
- рдФрд░ рдкрд╛рд╡рд░ рд╕реЙрдХреЗрдЯ рдФрд░ рдХреЙрд░реНрдирд░ рдорд╛рдЙрдВрдЯ (рдЫреЗрдж рд╡реНрдпрд╛рд╕ - 5.1 рдорд┐рдореА, рдХреЗрдВрджреНрд░ рд╕рдВрдкрд░реНрдХ рд╡реНрдпрд╛рд╕ - 1.5 рдорд┐рдореА)
рдФрд░ рдЗрд╕ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рд╕реНрддрд░ рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!рдХреМрди рджреВрд╕рд░реА рддрд░рдл рд╕реЗ рдмреЛрд░реНрдб рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдлреЛрдЯреЛ рд╣реИ:
рдХрд╛рд░реНрдпрдХреНрд░рдо
рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреА рддрд░рд╣, рдПрдХ рдШрдбрд╝реА рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдмреЗрд╕рдХ AVR рдореЗрдВ BASIC рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рднрд╛рд╖рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рд╕реНрдкрд╖реНрдЯ, рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЬреНрдпрд╛рджрд╛ рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрд╣реЗ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд┐рдпрд╛ред рдЬреЛ рд▓реЛрдЧ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡реЗ рдкрд╛рдПрдВрдЧреЗ, рдореИрдВ рдЕрднреА рдпрд╣рд╛рдВ рдХреЛрдб рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВ:$regfile = "attiny2313.dat"
$crystal = 8000000
Dim Count As Byte
Dim Number(4) As Integer
Dim Pointmem As Byte
Dim Point As Bit
Dim Mine As Byte
Dim Hour As Byte
Dim Seco As Byte
Config Porta.1 = Output
Porta.1 = 1
Waitms 10
Porta.1 = 0
Waitms 70
Porta.1 = 1
Waitms 10
Porta.1 = 0
Config Portb = Output
Config Porta.0 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.6 = Output
Config Sda = Portd.5
Config Scl = Portd.4
Config Pind.0 = Input
Portd.0 = 1
Config Pind.1 = Input
Portd.1 = 1
Config Timer1 = Timer , Prescale = 64
On Timer1 Awake:
Config Timer0 = Timer , Prescale = 64
On Ovf0 Refresh
Dig1 Alias Porta.0 : Dig2 Alias Portd.2 : Dig3 Alias Portd.3 : Dig4 Alias Portd.6
Enable Interrupts
Enable Ovf0
Enable Timer1
Start Timer1
Hour = 0
Mine = 0
If Pind.1 = 0 And Pind.0 = 0 Then
Porta.1 = 1
Waitms 100
Porta.1 = 0
Hour = 0
Mine = 0
Seco = 1
Seco = Makebcd(seco)
I2cstart
I2cwbyte &HD0
I2cwbyte 0
I2cwbyte Seco
I2cstop
Mine = Makebcd(mine)
I2cstart
I2cwbyte &HD0
I2cwbyte 1
I2cwbyte Mine
I2cstop
Hour = Makebcd(hour)
I2cstart
I2cwbyte &HD0
I2cwbyte 2
I2cwbyte Hour
I2cstop
Waitms 1000
Porta.1 = 1
Waitms 10
Porta.1 = 0
End If
Do
I2cstart
I2cwbyte &HD0
I2cwbyte &H00
I2cstart
I2cwbyte &HD1
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Nack
I2cstop
Seco = Makedec(seco)
Mine = Makedec(mine)
Hour = Makedec(hour)
If Seco = 80 Then
Seco = 10
Seco = Makebcd(seco)
I2cstart
I2cwbyte &HD0
I2cwbyte 0
I2cwbyte Seco
I2cstop
End If
If Hour > 9 Then
Number(1) = Hour / 10
Number(1) = Abs(number(1))
Else
Number(1) = 20
End If
Number(2) = Hour Mod 10
If Mine > 9 Then
Number(3) = Mine / 10
Number(3) = Abs(number(3))
Else
Number(3) = 0
End If
Number(4) = Mine Mod 10
If Pind.1 = 0 Then
Porta.1 = 1
Waitms 10
Porta.1 = 0
If Mine = 59 Then
Mine = 0
Else
Incr Mine
End If
Mine = Makebcd(mine)
I2cstart
I2cwbyte &HD0
I2cwbyte 1
I2cwbyte Mine
I2cstop
Else
If Pind.0 = 0 Then
Porta.1 = 1
Waitms 10
Porta.1 = 0
If Hour = 23 Then
Hour = 0
Else
Incr Hour
End If
Hour = Makebcd(hour)
I2cstart
I2cwbyte &HD0
I2cwbyte 2
I2cwbyte Hour
I2cstop
End If
End If
Waitms 250
Loop
Awake:
If Point = 1 Then
Porta.1 = 1
Waitus 10
Porta.1 = 0
End If
Toggle Point
Return
Refresh:
Reset Dig1 : Reset Dig2 : Reset Dig3 : Reset Dig4
Incr Count : If Count > 4 Then Count = 1
If Count = 2 And Point = 1 Then
Pointmem = Number(2) + 10
Portb = Lookup(pointmem , Digits)
Else
Portb = Lookup(number(count) , Digits)
End If
Select Case Count
Case 1 : Set Dig1
Case 2 : Set Dig2
Case 3 : Set Dig3
Case 4 : Set Dig4
End Select
Return
Digits:
Data &B00101000 , &B01111011 , &B00110100 , &B00110010 , &B01100011
Data &B10100010 , &B10100000 , &B00101011 , &B00100000 , &B00100010
Data &B00001000 , &B01011011 , &B00010100 , &B00010010 , &B01000011
Data &B10000010 , &B10000000 , &B00001011 , &B00000000 , &B00000010
Data &B11111111
рд╣рдо рдорд╛рдЗрдХреНрд░реЛрди рдореЗрдВ рд▓рдЧрднрдЧ 2 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЛрдб рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдЬреЛ рдЕрднреА рдЬреАрд╡рди рдореЗрдВ рдЖрдпрд╛ рд╣реИ рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИредрдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЦреБрд╢реА рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕реЗ рд╕рдордЭ рд╕реЗ рджреВрд░ рд╣реИ)рдпрд╣ рдПрдХ рдорд╛рдорд▓реЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛:
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдШрдбрд╝реА рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рдореИрдВ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (рдореИрдВ рд╕рджрд╕реНрдпрддрд╛ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рддрд╛, рдмрд╕ рд╕рд╛рдордЧреНрд░реА)рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкреНрд░рдХрд╛рд░, 2 рджрд┐рдиреЛрдВ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛ рдЬреЛ рдореБрдЭреЗ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдЫреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдЬрдм рд╡рд╣ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдкрд░ рдЬрд╛рддрд╛ рд╣реИредрдЦреИрд░, рдпрд╣ рд╕рдм, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдВрдд рддрдХ рдкрдврд╝рд╛ рд╣реИ, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдлрд▓рддрд╛, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ: "рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдб, 47, рдФрд░ рдЕрдиреНрдп рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдЖрдкрдХреЛ рджреЗрдЦреЗрдВ! QRZ .. "