Вс апр 05, 2015 18:19:39
Андрей Бедов писал(а):Пара советов:
1. Попытайтесь придать разрядам уклон вправо градусов пять – будет оригинальнее смотреться.
2. Чтобы не было паразитной засветки погашенных сегментов, наклейте на торцы непрозрачный скотч.
Вс апр 05, 2015 18:41:30
Вс апр 05, 2015 18:46:10
Вт апр 07, 2015 21:05:58
Вт апр 07, 2015 21:10:07
Вт апр 07, 2015 21:15:31
Вт апр 07, 2015 21:32:23
uldemir писал(а):Попробуйте один сегмент пропустить через простой транзистор в обход ULN...
Martin76 писал(а):И резисторы параллельно б-э пнп ключей какие то гигантские, практически то же, что их вообще нет, килоом 5-20 нужно от силы.
$regfile = "attiny2313.dat"
$crystal = 8000000
Dim Count As Byte , Pointmem As Byte , Mine As Byte , Hour As Byte , Seco As Byte
Dim Number(4) As Integer
Dim Point As Bit
Ddra = &B00000011
Ddrb = &B11111111
Ddrd = &B01001100
Config Sda = Portd.5
Config Scl = Portd.4
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
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
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) = 10
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
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
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
Point = 0
Else
Point = 1
End If
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) + 11
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 &B11010111 , &B10000100 , &B11001011 , &B11001101 , &B10011100
Data &B01011101 , &B01011111 , &B11000100 , &B11011111 , &B11011101 , &B00000000
Data &B11110111 , &B10100100 , &B11101011 , &B11101101 , &B10111100
Data &B01111101 , &B01111111 , &B11100100 , &B11111111 , &B11111101 , &B00000000
Вт апр 07, 2015 22:11:26
Вт апр 07, 2015 22:23:06
Вт апр 07, 2015 23:35:03
Ср апр 08, 2015 17:32:33
Чт апр 09, 2015 07:38:18
Чт окт 08, 2015 21:22:42
Чт окт 08, 2015 22:26:40
Ср дек 16, 2015 09:19:10
Вс янв 03, 2016 11:06:27
Вс янв 03, 2016 18:50:37
Только нужно учитывать, что она лучше всего подходит для красных и синих индикаторов, у желтых и зеленых она сильно уменьшает яркость. Тут вероятно лучше подойдет соответствующих цветов тонировка, она имеется в ассортименте производимой производителями этой пленки, но купить сложно.Dumbl4 писал(а):использовать автомобильную тонировку
Пн янв 04, 2016 16:05:29
Пн янв 04, 2016 20:01:43
Можно и не просить ни у кого, я тонировку покупал в магазине автозапчастей, рулончик пр-ва тайвань 3Х0,5м стоил в прошлом году что то примерно в районе 70рЭ.Dumbl4 писал(а): зашел к тонировщикам, попросил обрезки
Ср янв 06, 2016 09:45:19
Сирожа писал(а):Ну вот, спустя ровно пол года...