Вот есть код динамической индикации с регулировкой яркости от edm2007
Код: Выделить всё
$regfile = "attiny2313.dat" ' тип МК
$crystal = 4000000 ' выбор кристала для расчета задержек
'***[Определение переменных и констант]***
Dim Count As Byte
Dim I(3) As Byte ' три разряда
'***[Инициализация прерываний]***
' конфигурируем таймер (ТАЙМЕР ПРИ СОВПАДЕНИИ НЕ СБРАСЫВАЕМ)
Config Timer0 = Timer , Prescale = 64 , Clear Timer = 0
On Oc0a Refresh ' обзываем прерывание индикации
On Ovf0 Res_ind ' гашение индикации
Ocr0a = 100 ' регистр совпадения
Enable Interrupts ' разрешаем все прерывания
Enable Oc0a ' и для таймера в частности
Enable Ovf0
'***[Присвоение уникальных имен]***
Dig1 Alias Portd.4 ' обзываем разряды
Dig2 Alias Portd.5
Dig3 Alias Portd.6
'***[Начало основной программы]***
I(1) = 3
I(2) = 2
I(3) = 1
Do
Loop
End
'***[Процедуры обработки прерываний]***
Refresh: ' прерывание индикации (каждые 4 мс)
Reset Dig1 : Reset Dig2 : Reset Dig3
Incr Count : If Count > 3 Then Count = 1
Portb = Lookup(i(count) , Digits)
Select Case Count
Case 1 : Set Dig1
Case 2 : Set Dig2
Case 3 : Set Dig3
End Select
Return
'----------
Res_ind: ' прерывание по переполнению
Reset Dig1 : Reset Dig2 : Reset Dig3
Return
Может кто подскажет как организовать мигание разрадов с частотой в один герц. Нужно это для часов которые в режиме установки времени мегают цифрами часов, минут,секунд показывая что конкретно выставляем. Просто некак непойму как совместить динамическую индикацию и мигание цифр.
