З.Ы. сейчас ещё заметил баг если "4444", то все выводятся, как и "7777", и "1111",а при остальных значениях последняя цифра вообще не светится.
Спойлер
$regfile = "attiny2313.dat"$crystal = 500000
$hwstack = 32
$swstack = 8
$framesize = 16
Declare Sub Led
Config Portb = Output
Config Portd = Output
Config Pind.2 = Input
Config Pind.4 = Input
Ddrb = &B11111111
Ddrd = &B11101011
B1 Alias Pind.4
B2 Alias Pind.2
Dim R As Integer
Dim T As Integer
Dim W As Integer
Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte
Dim N4 As Byte
Dim M1 As Integer
Dim M2 As Integer
Dim M3 As Integer
Dim M4 As Integer
W = 3333
Do
If B1 = 0 Then
W = W + 1111
1:
If B1 = 0 Then
Goto 1
End If
End If
If B2 = 0 Then
W = W - 1111
2:
If B2 = 0 Then
Goto 2
End If
End If
M1 = W
M2 = M1
M3 = M1
M4 = M1
M1 = M1 / 1000 ' M1 = 1234/1000 = 1,234
N1 = Abs(m1)
M2 = M2 Mod 1000 ' M2 =1234 Mod 1000 = 234
M2 = M2 / 100 ' M2 = 234 / 100 = 2,34
N2 = Abs(m2) ' N2 = Abs (2,34) = 2 ' N1 = Abs (1,234) = 1
M3 = M3 Mod 100
M3 = M3 / 10
N3 = Abs(m3)
M4 = M4 Mod 10
N4 = Abs(m4)
Gosub Led
Loop
Sub Led:
Portd = &B00001000 ' print first digit
Select Case N1
Case 0 : Portb = &B00010000
Case 1 : Portb = &B11010110
Case 2 : Portb = &B01001000
Case 3 : Portd = &B01000010
Case 4 : Portb = &B10000110
Case 5 : Portb = &B00100010
Case 6 : Portb = &B00100000
Case 7 : Portb = &B01010110
Case 8 : Portb = &B00000000
Case 9 : Portb = &B00000010
End Select
Waitms 6
Portd = &B00000001 ' print second digit
Select Case N2
Case 0 : Portb = &B00010000
Case 1 : Portb = &B11010110
Case 2 : Portb = &B01001000
Case 3 : Portd = &B01000010
Case 4 : Portb = &B10000110
Case 5 : Portb = &B00100010
Case 6 : Portb = &B00100000
Case 7 : Portb = &B01010110
Case 8 : Portb = &B00000000
Case 9 : Portb = &B00000010
End Select
Waitms 6
Portd = &B00000010 ' print first digit
Select Case N3
Case 0 : Portb = &B00010000
Case 1 : Portb = &B11010110
Case 2 : Portb = &B01001000
Case 3 : Portd = &B01000010
Case 4 : Portb = &B10000110
Case 5 : Portb = &B00100010
Case 6 : Portb = &B00100000
Case 7 : Portb = &B01010110
Case 8 : Portb = &B00000000
Case 9 : Portb = &B00000010
End Select
Waitms 6
Portd = &B00100000 ' print first digit
Select Case N4
Case 0 : Portb = &B00010000
Case 1 : Portb = &B11010110
Case 2 : Portb = &B01001000
Case 3 : Portd = &B01000010
Case 4 : Portb = &B10000110
Case 5 : Portb = &B00100010
Case 6 : Portb = &B00100000
Case 7 : Portb = &B01010110
Case 8 : Portb = &B00000000
Case 9 : Portb = &B00000010
End Select
Waitms 6
End Sub Led
End
