Спидометр на atmega8 схема
В связи с закрытием и удаления коммерческих проектов уважаемого МАМАДА , было решено создать прибор по функциям похож на его прибор. Но прибор вышел на многофункциональней, чем прибор МАМЕДА.
И вот закончена работа над проектом «Многофункциональный цифровой спидометр – одометр + квазианалоговая шкала на светодиодах», далее «Одометр».
Огромная благодарность и низкий поклон автору прошивки, за находчивость, терпеливость, внимание и еще раз терпеливость. Его имя есть в заставке при запуске одометра, о чем скажу ниже.
Одометр выполнен по стандартной схеме с применением дешевого, надежного и доступного микроконтроллера фирмы ATMEL ATMega8A.
Условием проекта стало, максимально напичкать функциями и возможностями одометр и сделать гибкую настройку не прибегая к перепрограммированию контроллера, и этим всем управлять одной кнопкой. Так как управлять пришлось многим, а выходами контроллер не очень богатый, были применены сдвиговые регистры для управления индикаторами.
И так мы имеем:
Спидометр, с возможностью установки количества входных импульсов от 1 до 19 на 1 метр, через меню (по умолчанию 6 импульсов).
Измерения скорости от 0 до 999 км. г. Вывод информации на трех разрядный семи сегментный дисплей плюс дублирование аналоговой светодиодной шкале с дискретностью 5 км/ч. Шкала имеет 32 светодиода (0 – 160 км. ч)
Одометр, с выводом информации на шести разрядный семи сегментный индикатор. Три режима отображения, выбор режима по кругу, общий одометр – суточный одометр – остаток пробега до замены масла, коротким нажатием кнопки (в течение 1 сек.).
Отображение:
1: Общий пробег от 0 до 999 999 км. Не значащие нули не высвечиваются.
2: Суточный пробег от 0 до 999, 99 км. Десятки, сотни метров (при переполнении сброс на нули).
3: Сервисный счетчик до замены масла. Остаток пробега до замены масла от 10 000 км. до 0, по умолчанию. В меню можно выставить любой.
Функции:
1: Сервисный (желтый) светодиод . При остатке до замены масла 100 км. начинает мигать, а при 0 загорается постоянно.
2: Выход на зуммер. При достижении определенной скорости единовременно подает четыре коротких сигнала. Скорость при которой срабатывает зуммер, выставляется в меню от 0 до 999 км. г.
3: Выход для управления реле света. При начале движения появляется сигнал на включение ближнего света или ходовых огней. При остановке огни будут продолжать гореть еще 5 минут, чтобы избежать светового шоу в тянучках и на светофорах. Больше пяти минут в тянучках и на светофорах не стоим, а если и стали, то это очень редко и не так страшно, если огни погаснут. Время можно выставить в меню от 0 до 99 минут. При «0» свет не будет включаться!
4: При включении ближнего света индикаторы и светодиоды притухают на 50%. Можно изменить в меню от 0 до 99%.
Управление:
1: В обычном режиме коротким нажатием на кнопку, переходим на отражение
«общий одометр – суточный одометр – остаток пробега до замены масла»
И так по кругу, при этом незначащие нули не светятся.
В режиме суточного одометра длительное (более 2 секунд) нажатие на кнопку вызовет сброс счетчика на 0,00
В режиме остаток до замены масла длительное (более 2 секунд) нажатие на кнопку вызовет сброс счетчика то на 10 000.
В режиме общего одометра длительное (более 2 секунд) нажатие на кнопку вызовет переход в сервисное меню.
Сигналом перехода будет мигающая надпись на индикаторе спидометра “od.c"(od. common - од. общий), меню настройки общего стартового пробега. Он будет мигать 10 секунд, в течение этого времени нужно провести последующие действия. Если ничего не делать, после окончания 10 секунд одометр возвращается в исходное состояние, общий одометр, из любой точки программирования,
Регулировка от 0 до 999 999. По умолчанию выставлено 0 км.
Короткое нажатие вызовет переход к следующему меню “od.d" (od. daily - од. суточный), меню установки суточного стартового пробега. (Если уж точно хотите выставить стартовый пробег) Регулировка от 0 до 9 999.99. По умолчанию 0.00 км.
Далее переход в меню “od.o" (od. oil - од. масла), меню установки пробега до замены масла, регулировка от 0 до 999 999. По умолчанию 10 000 км.
Далее переход в меню "diu" (data interface unit - блок интерфейса данных), меню настройки количества импульсов на 1 метр пути, регулировка от 1 до 19. По умолчанию 6 имп.м.
Далее переход в меню "SPd" (speed - скорость), меню установки скорости при котором сработает зуммер, регулировка от 0 до 999. По умолчанию 80 км. ч.
Далее переход в меню "L. OF" (lamp off - выключить лампы), меню установки времени, по истечении которого выключается ближний свет, регулировка от 0 до 99 минут, при значении 00 свет включаться не будет. По умолчанию 5 минут.
Далее переход в меню "HAb" (Here Adjustment - Здесь Регулирование, brightness –яркость), меню установки яркости индикаторов при включенных габаритах. Если в этот момент включены габариты, то можно наблюдать какая будет яркость индикаторов, регулировка от 0 до 99%. По умолчанию 50%
Далее выход из сервисного режима.
Программирование в сервисном режиме;
В меню “od.c", длительное нажатие (более 2 сек.) кнопки переведет нас к установке общего пробега, “od.c" перестанет мигать и на индикаторе одометра появится мигающий первый разряд, не значимые нули засветятся. Короткими нажатиями выставляем километры стартового пробега.
Длительное нажатие вызовет переход на следующий разряд десятки километров, он начнет мигать. И так далее.
Аналогичные действия и в других меню. После 10 секунд от последнего действия одометр перейдет к начальному состоянию!
После включения зажигания на 2 секунды загораются все сегменты индикаторов и все светодиоды, показывая исправность.
Далее в течение 2 секунд на индикаторе спидометра проходит бегущая строка с именем разработчика прошивки и знаком UA, а на индикаторе одометра слово "HELLO".
Далее еще на 2 секунды задерживается "UА HELLO". После этого прибор переходит в рабочий режим.
Первые две секунды нужны для диагностики элементов индикации.
Вторые две секунды заставки, обязательное условие разработчика программного обеспечения! Третьи две секунды мое обязательное условие. Я так ХОЧУ!
Удаляться и меняться не будет. Кому не нравится, не начинайте проект.
Прибор и прошивка были проверены и обкатаны на макете, и все работает безупречно.
Индикаторы применены с общим АНОДОМ (меняться тоже не будет. ), они не являются дефицитом, и приобрести их возможно в любом интернет магазине.
В архиве есть проект в ПРОТЕУСЕ, и там выставлены точные частоты для соответствующей скорости. После 40 км\ч и до 80 км\ч, спидометр будет показывать на 1 км\ч больше. 90 – 120 + 2 км\ч. 130 -150 + 3 км\ч. 150 - 180 + 4 км\ч. и так далее. В реальной ситуации отклонение от истинной скорости может достигать до + 5 км/ч. в интервале от 10 до 100 км\ч. и +10 км\ч. в интервале 100 - 200 км\ч. Все заводские спидометры имеют большую погрешность!
Вот выдержка с форума на эту тему:
Одометры всех видов установленные на транспортные средства не относятся к классу точных приборов. Для каждого вида данных приборов установлены допустимые погрешности. Надо учитывать, что данные погрешности установлены только для самих приборов, все конструктивные изменения, а так же физический износ некоторых узлов автомобиля в эту погрешность не включены. Также, по техническим требованиям ЕЭК ООН N39 спидометры не могут занижать показания, поэтому и одометр конструктивно связанный со спидометром так же, как правило, дает завышенные показания. Средняя погрешность спидометра по правилам ЕЭК ООН N39 (ГОСТ Р 41.39-99) может быть только положительной и не превышать истинную скорость движения более чем на 10%+6 км/ч
Также есть текстовый файл с скоростью и частотами округленными до целого числа.
Формула расчета частоты с датчиком 6 импульсов до третьего знака 1.667 * ХХХ
( где ХХХ нужна скорость )
В связи с ограниченной загрузкой файлов, более подробная информация: фото схем, фото и видео спидометра на моем сайте.
Схемы, платы, фото, прошивка, "Протеус" в АРХИВЕ.
Далее заканчена работа над Тахометром с квазишкалой и фиксацией пиков на ATMega8
и Бакометр с термометром и термостатом на ATMega8!
Подрбности на сайте!
DSC00072(50).jpg 149.54К 6 Количество загрузок: DSC0053(50).jpg 186.68К 4 Количество загрузок:
Спидометр-одометр , идея не нова, а вот реализация такого устройства имеют разные варианты, предлагаю вашему вниманию, несложную схему на распространенном МК ATmega8 , к схеме имеется два вида прошивок под индикаторы ; 16х2 и 16х4. , а также проект работы схемы в протеусе.
Схема данного спидометра-одометра ,
Коэффициенты под датчик скорости, можно настраивать прямо из пользовательского меню, под любой датчик скорости с любым ( с количеством импульсов от 1 и до 9999……), а также задается и корректируется из пользовательского меню, количество импульсов на километр.
• Отображение текущей скорости, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км/ч)
• километраж общий, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км)
• километраж суточный (держитесь …..20 . суточных счетчиков, выбор № из меню),
• отображение время активности каждого счетчика (общего и для суточных) проще говоря время в пути.
• Возможность настроить сигнал о превышении скорости.
• пользовательское меню, позволяет выставить все коэффициенты ( скорости и учета километров) непосредственно с клавиатуры прибора.
• Все данные сохраняются в память контроллера.
Описание меню.
1) Выбор № персонального суточного счетчика км с учетом времени периода активности ячейки
2) Просмотр персонального суточного счетчика км ( та которая выводится в первой строке, при нажатии кнопок вправо enter обнуляется.)
3) Сброс общего (тотального) км, (на суточные счетчики не влияет)
4) Сброс текущего счета км, (в EEPROM не сохраняется)
5) НАСТРОЙКИ
5.1) Частота кварца настройка коррекции тактов кварцевого резонатора ATmega8 на 1 секунду (влияет только на расчет скорости км/ч)
5.2) Количество импульсов датчика скорости ( по умолчанию 6 имп.)
5.3) Импульс на км, это количество импульсов со счетчика на 1 километр ( по умолчанию 600 имп.)
5.4) Тактов в секунду — внутренняя переменная внутренних часов на выводе PB1 она выдаёт коротенький импульс 0.5Гц , если часы спешат — число надо увеличивать, если отстаёт — число надо уменьшать.
5.4) максимальная скорость,- настройка порога макс. скорости (зумер) .
5.5) Вост. умолчания — восстановить настройки умолчания.
5.6) Сохранить настройки — пока вы не нажали этот пункт — всё действует только до выключения.
Сохраняются в EEPROM такие данные;
а) общие настройки,
б)тотальные показания (общая сумма всех счетчиков) с фиксацией и отображением часов, периода работы активного состояния спидометра — одометра.
в)20 персональных ячеек показаний км, с фиксацией и отображением часов, периода работы активного состояния отображаемой ячейки.
Для тотальных и персональных данных за сохранение в память при обесточке схемы, отвечает вывод INT 0, он подсоединен через резисторный делитель, который подсоединен 2кОм на землю и 4.7кОм на + 12 V питания кренки.
Добавлено описание, схема ,печатка, скрин фьюзов для понипрог, подкорректировал в исходнике надписи вывода информации и меню, под прямое назначение прибора спидометра-одометра, а в принципе программа довольно таки универсальна и может быть спидометром, и частотомером, и тахометром, и вообще что только душе угодно….суть в том, что она считает, очень точно, частоту умножая на коэффициент, и считает общее кол-во импульсов деля его на коэффициент, в принципе подобрав коэффициенты, оно может работать чем угодно ……
Спидометр-одометр , идея не нова, а вот варианты реализации такого устройства имеют разные варианты, эта несложная схема на распространенном МК ATmega8 , имеется два вида прошивок под индикаторы ; 16х2 и 16х4
Схема данного спидометра-одометра , может настраиваться пользователем из меню под схему датчика скорости с любым ( с количеством импульсов от 1 и до 9999999……), а также задается и корректируется из пользовательского меню, количество импульсов на километр.
- Отображение текущей скорости, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км/ч)
- километраж общий, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км)
- километраж суточный (держитесь …..20 . суточных счетчиков, выбор № из меню),
- отображение время активности каждого счетчика (общего и для суточных) проще говоря время в пути.
- Возможность настроить сигнал о превышении скорости.
- пользовательское меню, позволяет выставить все коэффициенты ( скорости и учета километров) непосредственно с клавиатуры прибора.
- Все данные сохраняются в память контроллера.
Здесь привожу описание работы меню и вывода показаний для дисплея 16х2 ( под дисплей 16х4 это описание работы также полностью подходит, только вывод информации на экран 16х4 происходит более полный без сокращений).
1) Выбор № персонального суточного счетчика км/ч с учетом времени периода активности ячейки
2) Просмотр персонального суточного счетчика км/ч, ( та которая выводится в первой строке, при нажатии кнопок вправо enter обнуляется.)
3) Сброс общего (тотального) км/ч, (на суточные счетчики не влияет)
4) Сброс текущего счета км/ч, (в EEPROM не сохраняется)
5) НАСТРОЙКИ
5.1) Частота кварца настройка коррекции тактов кварцевого резонатора ATmega8 на 1 секунду (влияет только на расчет скорости км/ч)
5.2) Количество импульсов датчика скорости ( по умолчанию 6)
5,3) Импульс на км/ч это количество импульсов со счетчика на 1 километр ( по умолчанию 600 )
5.4) Тактов в секунду - внутренняя переменная внутренних часов на выводе PB1 она выдаёт коротенький импульс 0.5Гц , если часы спешат - число надо увеличивать, если отстаёт - число надо уменьшать.
5.4) максимальная скорость- настройка порога макс скорости (звуковой сигнал) .
5.5) Вост. умолчания - восстановить настройки умолчания.
5.6) Сохранить настройки - пока вы не нажали этот пункт - всё действует только до выключения.
Сохраняются в EEPROM такие данные;
а) общие настройки,
б)тотальные показания (общая сумма всех счетчиков) с фиксацией и отображением часов, периода работы активного состояния .
в)20 персональных ячеек показаний километров, с фиксацией и отображением часов, периода работы активного состояния отображаемой ячейки.
Для тотальных и персональных данных за сохранение в память при обесточке схемы, отвечает вывод INT 0, он подсоединен через резисторный делитель, который подсоединен 2кОм на землю и 4.7кОм на + 12 V питания кренки.
Разработчик программы не я , автор этой программы clawham ,
Моя миссия здесь только ознакомить вас с этой интересной схемкой, мной добавлено это описание, схема ,печатка, скрин фьюзов для понипрог, подкорректировал в исходнике надписи вывода информации и меню под прямое назначение прибора спидометра-одометра, а в принципе программа довольно таки универсальна и может быть спидометром, и частотомером, и тахометром, и вообще что только душе угодно. суть в том что он считает очень точно частоту умножая на коэффициент, и считает общее кол-во импульсов деля его на коэффициент, в принципе подобрав коэффициенты оно может работать чем угодно .
Данная схема с прошивкой у меня также работает в качестве счётчика-ваттметра.
В данной статье рассмотрим полностью готовый спидометр и тахометр.
Ради справедливости отмечу, что схема спидометра взята с этой страницы: схема тахометра найдена на просторах интернета. А вот прошивки для МК пришлось переделывать, так как родные прошивки меня не устроили.
Алгоритм работы программы думаю можно понять из комментариев в исходнике программы. Единственное на чем хочу заострить внимание так это интервал времени измерения скорости или оборотов двигателя. Замер производим на интервале 600 миллисекунд, такой интервал идеален для получения целых чисел. Для примера: скорость 1км/час = 6000импульсов/3600секунд, если мерить на интервале секунда, то мы получим 1,666666666666667импульса/секунду. А вот если мерить на интервале 600 миллисекунд, то мы получим: 6000импульсов делим на 3600000миллисекунд и умножаем на 600миллисекунд = 1импульс/600миллисекунд. Такой же принцип работает и для тахометра, с единственной поправкой, при расчетах оборотов двигателя полученную цифру мы умножаем на 50 (подсчет оборотов двигателя ведем с точностью 50 оборотов в минуту).
Но не идеальная жизнь вносит свои коррективы в идеальные математические расчеты. Так количество импульсов с датчика скорости моей машины оказалось на пять импульсов больше (на 10 метров пути, т. е. 65 взамен должных 60ти). Что заставило корректировать время измерения так сказать на ходу.
@ device PIC16F876, HS_OSC, WDT_OFF, PWRT_ON,PROTECT_OFF
Data @8, 0
Read 0, Odo123Km.byte0
Read 1, Odo123Km.byte1
Read 2, Odo456Km.byte0
Read 3, Odo456Km.byte1
Read 4, OdoMetr
Read 5, OdoTripKm.Byte0
Read 6, OdoTripKm.Byte1
Read 7, OdoTripM
Read 8, SelOdo
endif
endif
endif
GoSub Look
Pause 4
if Sped < 10 then Odo
GoSub Look
Pause 4
if Sped < 100 then Odo
GoSub Look
Pause 4
if SelOdo = 1 then
GoTo SytOdo
endif
GoSub Look
Pause 4
GoSub Look
Pause 4
GoSub Look
Pause 4
GoSub Look
Pause 4
GoSub Look
Pause 4
GoSub Look
Pause 4
Goto Main
GoSub Look
Pause 4
GoSub Look
Pause 4
GoSub Look
Pause 4
Pauseus 350
GoSub Look
Pause 4
GoSub Look
Pause 4
GoTo Main
Disable
endif
endif
endif
endif
endif
endif
endif
endif
endif
Resume
Enable
LookUp Cifra, [$02, $BA, $24, $A0, $98, $C0, $40, $B2, $00, $80], PortB
Return
Disable
Pause 200
Write 0, Odo123Km.byte0
Write 1, Odo123Km.byte1
Write 2, Odo456Km.byte0
Write 3, Odo456Km.byte1
Write 4, OdoMetr
Write 5, OdoTripKm.Byte0
Write 6, OdoTripKm.Byte1
Write 7, OdoTripM
Write 8, SelOdo
Pause 50
End
Enable
End
@ device PIC16F84A, HS_OSC, WDT_OFF, PWRT_ON, PROTECT_OFF
Digit Var Byte
Time Var Word
Tcon Con 245
Imp Var Word
RPM Var Word
Pause 1000
On Interrupt Goto myint
Digit = RPM Dig 0
PortA.0 = 1: PortA.1 = 0: PortA.2 = 0
GoSub Look
Pause 4
Digit = RPM Dig 1
PortA.0 = 0: PortA.1 = 1: PortA.2 = 0
GoSub Look
Pause 4
if RPM < 100 then
Pauseus 300
Goto Main
endif
Digit = RPM Dig 2
PortA.0 = 0: PortA.1 = 0: PortA.2 = 1
GoSub Look
Pause 4
Goto Main
Disable
if intcon.1=1 then
endif
if intcon.2=1 then
if Time = 0 then
RPM = Imp * 50 / 10
endif
endif
LookUp Digit, [$80, $F2, $48, $60, $32, $24, $04, $F0, $00, $20], PortB
Return
End
Думаю, хватит теории, перейдем к сборке готового устройства.
Корпус был взят от родного спидометра, печатная плата выполнена по лазерно-утюжной технологии, маска была распечатана на прозрачной пленке и собрана из 4х слоев (это убрало свечение черного фона (лучше печатать на фото-принтере)), подсветка надписей сделана на чип светодиодах.
Тахометр и спидометр выполнены в одном корпусе. Зная, что найдутся те, кто скажет "Ой как все плотно, цифры в глазах рябить будут” спешу сказать, да, когда я в первый раз включил спидометр, так оно и было, но через неделю глаза привыкли и теперь взгляд выхватывает только то, что нужно в данный момент. Сверху маски наклеена легкая черная тонировочная пленка, это сделало днем более контрастными цифры.
Схема термометра на ATmega8 и DS18B20
Микроконтроллер ATmega8
Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20
Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B20. Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса
Термометр по своим характеристикам очень прост, и его можно использовать только как термометр для измерения "комнатной" температуры. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция - основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция другого термометра - на двух датчиках DS18B20, что позволит измерять температуру не только в комнате, но и "за бортом". Естественно, будет добавлена возможность измерять и отрицательные температуру. В дальнейшем в конструкцию будет добавлена функция термостата, часы, возможность работы с различными нагрузками, что позволит уже собрать несложную конструкцию - основу "умного дома". Ну а сегодня первая статья из этой серии.
Схема термометра на ATmega8 и датчике температуры DS18B20
Давайте посмотрим на схему термометра:
Как видите, схема очень проста, используется только необходимый минимум деталей.
В схеме, для индикации показаний, применен семисегментный трехразрядный светодиодный индикатор (описание и подключение семисегментных индикаторов к микроконтроллеру).
Напряжение питания конструкции - 5 вольт. Если вы примените микроконтроллер с низковольтным питанием (линейка микроконтроллеров ATmega), то можно и понизить питающее напряжение конструкции, но в этом случае, возможно придется уменьшить номинал гасящих сопротивлений в сегментах индикатора. Приблизительно номиналы сопротивлений можно брать:
- при питании 5 вольт - 200-300 Ом
- при питании 2,7 - 3 вольта - 100-150 Ом
(здесь вы можете ознакомиться с расчетом гасящих сопротивлений для семисегментных индикаторов)
(здесь вы можете ознакомиться с маркировкой микроконтроллеров)
Транзисторы - любые, маломощные, структуры NPN.
Датчик температуры - DS18B20 (ознакомиться с датчиком температуры DS18B20)
Семисегментный индикатор - любой трехразрядный с общим катодом. Если вы захотите применить другие, с общим анодом, тогда придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для вывода цифр на индикатор). Я применил индикатор красного цвета свечения, и заодно, для следующей схемы, приготовил такой-же, но голубого цвета свечения.
Детали термометра на микроконтроллере ATmega и DS18B20
Микроконтроллер ATmega8:
Распиновка микроконтроллера ATmega8:
Трехразрядный семисегментный индикатор FYT-5631AUR-21:
Распиновка семисегментного индикатора:
Датчик температуры DS18B20:
Транзисторы BC547C:
Алгоритм работы программы термометра на ATmega и DS18B20
Все установки микроконтроллера заводские, FUSE-биты трогать не надо.
Для работы программы задействовано два таймера/счетчика микроконтроллера:
- восьмиразрядный Т0
- шестнадцатиразрядный Т1
С помощью восьмиразрядного таймера Т0 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/8 (период 2 миллисекунды) организован:
- расчет текущей температуры
- динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатиразрядного таймера Т1 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/64 (период 4 секунды) организованно:
- подача команды датчику DS18B20 на измерение температуры
- считывание измеренной температуры с датчика
В принципе, можно задействовать и один восьмиразрядный таймер/счетчик, также настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и всю работу схемы организовать в процессе обработки прерывания. Но дело в том, что смысла в этом нет - датчику DS18B20 необходимо чуть меньше 1 секунды (при 12-ти битном разрешении) для конвертирования (определения) температуры, т.е., чаще чем 1 раз в секунду мы не сможем обновлять данные температуры. Кроме того, столь частое обновление температуры приведет к нагреву датчика и, соответственно, к искажению реальных данных. Использование второго счетчика позволяет отдельно задавать промежутки времени измерения температуры.
Вот так выглядит основная часть программы в Algorithm Builder:
- SP - настройка начального адреса стека
- Timer 0 - настройка таймера T0:
- Timer 1 - настройка таймера Т1:
- TIMSK - настройка прерываний от таймеров:
- Init_Display - подпрограмма настройки разрядов портов, участвующих в динамической индикации вывода данных на трехразрядный семисегментный индикатор
- 1 --> I - глобальное разрешение прерываний
- далее программа уходит в бесконечный цикл, и вся работа программы происходит при вызове прерываний от таймеров.
Если возникнут вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите - отвечу.
Второй вариант программы, без 4-х секундной задержки измерения температуры. Температура измеряется непрерывно (интервал менее 1 секунды)
Читайте также: