8-900-374-94-44
[email protected]
Slide Image
Меню

Часы на атмега8: Часы, будильник, термометр (ATmega8). — Схеми радіоаматорів

Часы на Atmega8 и семисегментном индикаторе

Главная » Бытовая электроника » Часы на Atmega8 и семисегментном индикаторе

Данные электронные часы, построенные на микроконтроллере Atmega8, оснащены легко читаемым светодиодным дисплеем, будильником с функцией повтора, функцией восстановления работы после отключения питания.

Характеристики часов

  • формат отображения времени: часы, минуты;
  • будильник с функцией повтора;
  • простое управление с помощью 2 кнопок;
  • поддержка работы от батарейки;
  • напряжение питания: 7…12В / 0,2 A;
  • размеры двух печатных плат: 60×21 мм, 58×44 мм.

Принципиальная схема часов показана на рисунке ниже. Схема часов должна быть запитана постоянным напряжением в диапазоне  7…12В.  Это может быть любой блок питания с нагрузкой по току не менее 200 мА.

Диод VD1 (1N4007) защищает схему от неправильной полярности подключения входного питания. Внешнее входное напряжение подается на стабилизатор DA1 (7805), а конденсаторы C3…C7 выполняют роль фильтра питания.

Работой часов управляет микроконтроллер Atmega8, а в качестве часов реального времени применена микросхема типа PCF8583. Связь PCF8583 с микроконтроллером осуществляется через I2C интерфейс.

В качестве дисплея используется модульный четырехзначный семисегментный дисплей с общим анодом. Дисплей подключается непосредственно к выводам микроконтроллера через ограничительные резисторы R1…R12.

К разъему CON5 платы можно подключить зуммер с генератором, который будет выступать в качестве звукового сигнала будильника. К клеммам SA1 и SA2 печатной платы подключаются кнопки, которые служат для ввода настроек и обслуживания часов.

Настройка времени и будильника

При нажатии кнопки SA1 попадаем в меню часов «Set1», где у нас есть возможность установки текущего времени, а еще одно короткое нажатие кнопки SA1 переводит нас в меню установки времени будильника «Set2».

Для выбора и изменения настроек служит кнопка SA2. После выбора как в режиме настройки времени, как и в режиме установки будильника на дисплее начнет мигать первая цифра, после чего можно установить десятки часов с помощью кнопки SA2.

Очередное нажатие SA1 вызовет мигание второй цифры и с помощью SA2 можно установить единицы часов. Последующие два нажатия SA1 позволят установить десятки минут и единицы минут. Во время установки часов и минут устанавливается всегда только одна цифра. Пятое нажатие SA1 возвращает часы к нормальной работе. Также продолжительное время отсутствия нажатия кнопок завершает процедуры установки.

Во время работы часов длительное нажатие кнопки SA2 производит включение/выключение будильника. В момент активации будильника, на несколько секунд отображается время его запуска. Состояние будильника сигнализирует точка, размещена в четвертом разряде. Если будильник активен, этот индикатор горит.

Инвертор 12 В/ 220 В

Инвертор с чистой синусоидой, может обеспечивать питание переменно. ..

Подробнее

После включения сигнала будильника нажатием любой кнопки можно выключить его на время порядка 5 минут, при этом активируется функция повтора. Этот факт отмечается миганием точки на четвертом разряде индикатора. По истечении 5 минут сигнал будильника будет запущен снова. Снова нажатием любой кнопки, его можно отложить еще на 5 минут, и т. д.

Полное отключение сигнала будильника происходит после длительного нажатия клавиши SA2, или около полутора минутного отсутствия реакции со стороны пользователя.

Работа часов протестирована в Proteus:

Если в ходе эксплуатации часов, окажется, что часы значительно отстают или спешит, можно попробовать уменьшить или увеличить значение конденсатора C1.

Скачать рисунок печатной платы, прошивку, модель в Proteus (34,7 KiB, скачано: 3 798)

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Подробнее




Categories Бытовая электроника Tags Atmega8, proteus, Часы

Отправить сообщение об ошибке.

СВЕТОДИОДНЫЕ ЧАСЫ НА МИКРОКОНТРОЛЛЕРЕ

от admin

   Предлагаю для повторения схемы электронных часов на микроконтроллере ATmega8, с отображением информации большими светодиодами. Часы рабочие, проверенные. Прошивки на данный момент дорабатываются. Делается больше табло, которое будет на удалении от основного блока, метров 5. На основном блоке тоже будет индикация — дублировать большое табло. Принципиальная схема светодиодных часов показана на рисунке — клик для увеличения.


Описание прибора

1. Функции.
1.1 Часы. Формат отображения времени 24-х часовый. Цифровая коррекция точности хода.

1.2 Термометр. Измерение температуры с двух датчиков в диапазоне -55,0 оС — 125,0 оС.

1.3 Поочередный вывод информации на индикатор.
1.4 Контроль основного источника питания.
1.5 Использование энергонезависимой памяти микроконтроллера для сохранения настроек и установок при отключении питания.
1.6 Три кнопки для установки и настройки: PLUS,

MINUS, SET.

Работа устройства

При первом включении на дисплее рекламная заставка в течении 1 сек. Потом отображение времени.
Нажатие на SET_TIME переводит индикатор по кругу из основного режима часов (отображение текущего времени):
– режим отображения минут и секунд. Если в этом режиме одновременно нажать на кнопку PLUS и MINUS, то произойдет обнуление секунд.
– установка минут текущего времени.
– установка часов текущего времени.
– величина ежесуточной коррекции точности хода часов. Символ c и значение коррекции. Пределы установки -25?25 сек. Выбранная величина будет ежесуточно в 0 часов 0 минут и 30 секунд прибавлена/вычтена из текущего времени.
– символ t. Настройка продолжительности отображения часов.

– символ i. Время отображения символов индикации внутренней температуры (int).
– символ d. установка времени индикации температуры с внутреннего датчика.
– символ o. Время отображения символов индикации внешней температуры (out).
– символ u. установка времени индикации температуры с внешнего датчика.
– символ P. установка времени индикации рекламной заставки.
Пределы установки для времени отображения 0-60 сек. Если установлен 0, данный параметр на индикатор не выводится. Если все параметры установить в 0 – на индикаторе будут часы.

Настройка часов

3.1 Во всех режимах удержанием кнопок PLUS/MINUS производится ускоренная установка.
3.2 Если производились изменения настроек, через 10 секунд от последнего изменения новые значения запишутся в энергонезависимую память (EEPROM) и будут считаны оттуда при повторном включении питания. Индикатор перейдет в основной режим времени.

3.3 Новые настройки вступают в силу по ходу установки.

Контроль питания

Микроконтроллер отслеживает наличие основного питания. При его отключении питание прибора осуществляется от внутреннего источника. Для уменьшения тока потребления отключаются индикатор, датчики и кнопки. Часы продолжают отсчитывать время. При появлении питания от основного источника все функции восстанавливаются.

   На данный момент разрабатываются печатные платы, проводится корекция схемы, можно и коллективно. Если будут идеи и пожелания по усовершенствованию часов — пишите на форуме. Авторы конструкции: Александрович & SOIR (Soir&C.E.A)

Originally posted 2019-02-04 09:33:40.

Republished by Blog Post Promoter

Бинарные часы ATmega8

Бинарные часы ATmega8 Главная ==> АВР-РУ ==> Приложения ==> Бинарные часы Diese Seite на немецком языке:
Загрузить сжатую версию этой страницы (1,69 МБ)

Обзор

  1. BCD-дисплей в качестве альтернативы 7-сегментным дисплеям
  2. Дер контроллер
  3. Блок питания
  4. Дер крепление
  5. Программное обеспечение штампа
  6. Руководство пользователя

Уже первые компьютеры в мире, вот где с механическими реле или электронными клапанами имел лампы, с помощью которых программист мог проверять в отдельных шагах, какие биты были очищены или установлены. И он мог бы легко контролировать, что делает компьютер и он провел обзор каждого из подпрыгивающих битов.

Концепция этих часов восходит к тем временам. Отображаемые числа должны быть сложены вместе и не всегда отображаются как числа на 7-сегментном дисплее.

Сложение двоичных 1, 2, 4 и 8 сохраняет вашу мозг работает.

Так выглядят часы в 24:00:

Все лампы часов выключены. Темно, но только на одну короткую секунду.

Теперь давайте посмотрим другое время. Сейчас 23 часа 59 минут 47 секунд.

Теперь числа слева, которые являются всеми степенями два, вступайте в игру. Крайний левый десятичный знак — это двойка, так что 2-лампа горит. Второй десятичный знак равен пяти, поэтому 4-лампа и 1-лампа горят, что в сумме дает пять. И так далее 10 минут, минут, 10 секунд. и секунды.

Отсутствующие лампы, такие как 4- и 8-лампа 10-ки, являются вызвано нашей сумасшедшей системой даты и времени. Система времени основан на древней дюжине (12) и пятеричном числе это (60, по-немецки: Schock, я не могу найти английский термин для этого, кажется, что это время истекло в то же время). Эти древние системы счисления сохранились и в наше время системе (и в британской монетной системе), хотя совершенно ненужно. Вот что делает компьютер программирование в наше время так сложно.

Теперь давайте сравним эту систему отображения с обычной Система с семисегментным дисплеем. Для отображения времени с помощью выше разрешение нам нужно шесть из тех 7-сегментных дисплеи, которые включают 42 светодиода (фактически 48 с десятичная точка, которая нам здесь не нужна). бинарным часам нужно всего 20 светодиодов, половина от обычных система отображения. Ресурсы и текущее потребление вдвое. Очень сильный аргумент по тем временам.

Компьютерщики называют наши шесть цифр BCD. Что обозначает двоично-кодированную цифру. Мы увидим в глава Программное обеспечение, для которого это отличная пища микроконтроллеры, и что он используется для обработки эта еда отлично.

Дисплей BCD Контроллер блок питания крепление Программное обеспечение Руководство пользователя

Почему контроллер?

Сначала мы рассмотрим классический тип CMOS Xtal. управляемые 7-сегментные часы:

Это означает набор из 12 интегральных схем с 14 или по 16 контактов на каждом (всего примерно 160 контактов), 42 угольные резисторы и шесть 7-сегментных индикаторов с 42 светодиода. Эти компоненты соответствуют полному стандарту Печатная плата (160 на 100 мм). Плюс примерно 350 токопроводящих пути. Настоящая могила CMOS, высокая стоимость и сложность.

Все это (кроме светодиодов и резисторов) подходит в один микроконтроллер с 28 выводами (менее одна десятая из 12 ИС) и нужен всего лишь небольшой кусочек программное обеспечение (для активации внутреннего таймера) и какой-то предохранитель настройки внутри контроллера (чтобы активировать встроенный осциллятор Xtal).

Выбор контроллера

Современный гений микроконтроллеров теперь говорит: «О да, используйте для этого Arduino!» Просто потому, что он знаком только с этим, не знает ничего, кроме этого и чувствует себя странно, если вы предлагаете другой микроконтроллер чем ATmega324P. «Разве ATmega8 не слишком устарела? для новых дизайнов?» является одним из наиболее актуальных аргументы, чтобы присоединиться к его собственной зависимости. Он начинает сразу его C-кодирование и понимает, что его могучий библиотека не поддерживает откусывание битов BCD. Пока он понимает, что контроллер внутренне знает BCD очень ну, он провел много часов интенсивных исследований и деятельность блога. С этого момента он делает некоторые встроенные ассемблер, чтобы подогнать его могучую мощную библиотеку к простому и прямолинейная математика BCD.

Остальные, не зависимые люди, теперь управляют Windows64- или Linux64- Селектор АВР.

В разделе «Clock src» выбираем осциллятор Xtal и в секции «I/O» 20 Контакты ввода/вывода для светодиодов.

Вот что мы получаем: с этим справляются несколько контроллеров (и: да, ATmega324 среди них).

Выбираем второй наименьший в списке, с готовностью есть в каждом хорошем магазине электроники. Оно делает неважно, какие буквы стоят за этим типом (нет, A или что-то еще), все они могут использоваться для эта цель.

Схема

Это схема бинарных часов. Скорее простой и доставляемый, и соответствует всем нашим потребностям.

Вместо Xtal с частотой 2,4576 МГц почти любой другой можно использовать тип, который делится на 1024 без каких-либо остаток, который можно разделить на целое число до 65536, чтобы получить один. Xtal крепится к соответствующему входные контакты ATmega8 с двумя керамическими конденсаторами Добавлено 22 пФ, чтобы облегчить приятное колебание.

Шесть цифр BCD подключены к портам D, B и C. В способ, который упрощает внутреннюю математику контроллера. Только портбит PD7 немного перекрывается, с чем можно справиться при помощи некоторых левое и правое смещение бита.

Чтобы запрограммировать флэш-память ATmega8 в системе, Добавлен плагин ISP6.

В этой схеме светодиоды работают в стоковом режиме. С рабочее напряжение 5 В ток светодиода

I светодиод = (5 — 2 — 0,2) / 270 * 1000 = 10,4 мА

Если бы все 20 светодиодов были включены, ток составил бы 207 мА. Для ATmega8 указано максимальное значение 300 мА через Контакт GND, так что все в порядке.

Для облегчения монтажа добавлен 20-контактный штекер, светодиоды к плате контроллера. Распиновка этого разъема облегчает светодиодную пайку плоского кабеля.

Катоды 8- и 4-светодиодов подключены к контакту 1 к 8 штекера, 2- и 1-светодиоды с контактами с 9 по 20. Все аноды соединены и снабжены дополнительным кабелем который ведет непосредственно к блоку питания.

Дисплей BCD Контроллер Блок питания крепление Программное обеспечение Руководство пользователя

Размеры

Как было описано выше, нам нужно чуть больше, чем 200 мА для всех светодиодов. Чтобы получить реальные средние значения, весь день моделировался в электронной таблице для всех 86,399 секунд дня и количество светодиодов было вычислено. Горит не более 14 светодиодов (например, на 17:37:37 и 17:57:37). Следующее распределение имеет место:

В среднем горят 7,3 светодиода, максимум более одной минуты составляет 11,7. Это соответствует 76 мА соответственно. 122 мА более одной минуты. Это гораздо меньше, чем нереально 20 светодиодов на корпусе.

В коробке самалгунди ранее вышедшей из строя электронной проектов я нашел трансформатор 2 * 7,5 В с 3,6 ВА. К проверить, будет ли этого достаточно, предоставленное программное обеспечение здесь использовался для имитации напряжения.

При максимальном потреблении 200 мА напряжения подходят для управления регулятором 7805. Чем больше 10 В постоянного тока, который обеспечивает блок питания, с пульсации 0,5 В, в порядке. Тепловая мощность, которую регулятор выдает максимум 1,68 Вт, поэтому достаточно небольшого радиатора.

Схема блока питания

Это схема блока питания.

Эти компоненты помещаются на небольшую макетную плату и могут быть вставлен в последнюю коробку.

Нагрузочный тест источника питания

Чтобы убедиться, что блок питания выживает даже драматические условия (например, периоды жары), которые я тестировал несколько часов при нагрузке 300 мА (два резисторы с 33 Ом-2 Вт параллельно). Трансформатор и радиатор сильно нагреваются в этих условиях, но не слишком жарко.

Свыше 400 мА пульсации на регулируемом 5 В становится невыносимым, 480 мА, которые трансформатор доставляет, непригодны для использования с регулятором 7805. Вместо подойдет трансформатор на 9 В. Но это все сверх потребностей здесь.

BCD дисплей Контроллер Блок питания крепление Программное обеспечение Руководство пользователя
Компоненты монтируются на макетных платах, которые подходят именно в пластиковую коробку.

Преимущество 20-контактной вилки состоит в том, что две части, контроллер и светодиоды можно разместить отдельно.

Светодиодная часть в верхней части коробки выглядит так:

Припаивание светодиодов к плоскому кабелю упрощается расположение штифтов в заглушке. В моей первой версии было две ошибки проводки.

BCD дисплей Контроллер Блок питания крепление Программное обеспечение Руководство пользователя
Программное обеспечение в формате asm здесь, в формате HTML здесь.

Структура программы

Программное обеспечение выполняет следующие шаги:
  1. Инициализация оборудования,
  2. Таймер, прерывания и спящий режим,
  3. Второе прерывание и время, преобразование в формат отображения
  4. Включите генератор Xtal с помощью предохранителя.

Инициализация

Поскольку программа использует режим прерывания, стек должен быть инициировано. Поскольку ATmega8 имеет более 256 байт SRAM, должны быть установлены старший и младший байты указателя стека.

Все портпины должны быть определены как выходы, для которых их должен быть установлен бит направления. Все порты настроены на один избегайте случая с 20 светодиодами.

Таймер, прерывания и спящий режим

Таймер работает с предделителем 1024 и в режиме CTC. (очистка таймера на Compare-Match A). Сравнительный матч значения A получены из частоты Xtal, поэтому автоматически приспособлены к изменениям тактовой частоты.

Xtal может иметь другую частоту, как указано в следующую таблицу. Обратите внимание, что Xtals с более чем 10 МГц не подходят для версий V/L ATmega8 или для рабочих напряжений ниже 5 В.

9020 6 6,144 4 .096
< 5 МГц 5 10 МГц > 10 МГц
2,048 5,0688 10,24
2,097152 5,12 11,0592
2,4576 12.288
3.072 6.4 14.7456
3.2768 7,68 19,6608
4.194304 8.388608
4.9152 9.216
9.8304

Если должна использоваться Xtal, отличная от 2,4576 МГц, измените постоянные часы соответственно.

Что бы Xtal ни использовал, предохранитель надо менять в любом случае (см. ниже).

После запуска таймера с записью порта TCCR1B сравнение прерывание матча должно быть разрешено. Чтобы остановить все контроллеры активность в период отсчета таймера, сон включен режим ожидания. В этом режиме пробуждается прерывание CPU, выполняет процедуру обслуживания прерывания и отправляет снова спать. Конечно, выполнение прерываний должен быть включен путем установки флага I в порте состояния.

Второе прерывание и время

Поскольку никакие другие прерывания не должны выполняться и потому что не должно быть ничего, кроме инструкций по прыжкам и сну. выполняется вне процедуры обслуживания прерывания, весь действие сосредоточено на этой рутине.

Две версии для этого включены в исходный код:

  1. Время закодировано как упакованное BCD с младшим полубайтом будучи единицами, чем выше грызть десятки.
  2. Время закодировано в двоичном формате со значениями между 0 и 59(минуты и секунды) или 0 и 23 (часы).
Если переключатель pbcd один, собирается версия 1. Если не, собрана бинарная версия 2.

Время хранится в регистрах rSec, rMin и rHour. В каждое прерывание увеличивает количество секунд.

В случае версии 1 (упакованный BCD) к зарегистрируйтесь, чтобы распознать, если младший полубайт больше, чем девять. В этом случае устанавливается флаг H (половина переполнения) и верхний полубайт правильный после добавления. Если нет, то шесть нужно снова вычесть, потому что меньший полубайт сделал не превышает девяти и является правильным без добавления шести.

Проверка достижения 60 или 24 выполняется путем сравнения с упакованным двоично-десятичным представлением тех чисел (которые равны 0x60 соответственно. 0x24 в шестнадцатеричном формате. Если реестр достигает эти значения (перенос не устанавливается после сравнения) регистр очищается, а следующий регистр (rMin, rHour) увеличивается.

Преобразование в выходной формат довольно просто в том, что дело в том, что числа в регистрах прямо двоично-десятичные отформатируйте и подгоните, после инвертирования всех битов, к светодиодному порту выходы.

В двоичном режиме регистры увеличиваются до тех пор, пока их содержимое достигает двоичного кода 60 или 24. В этом случае они очищаются и следующий более высокий регистр (rMin, rHour) увеличивается. Так увеличивается время в двоичном формате немного проще, но преобразование двоичного кода в выходной формат BCD для управления светодиодами. немного сложнее.

В этом случае мы должны преобразовать двоичный файл в упакованный BCD. Это делается путем деления двоичного числа на десять (просто вычитание 10 до тех пор, пока не произойдет перенос). Количество вычитаний является старшим полубайтом упакованного BCD, остаток деление — нижний полубайт. В примере:

   Двоичный: 49d или 0x31 шестнадцатеричный
   Деление на 10: 4 раза (49 - 10 - 10 - 10 - 10, остаток 1)
   Верхний полубайт = 4, SWAP перемещает 4 в нижнем полубайте к старшему полубайту
   Нижний полубайт = 1
   ИЛИ Верхний полубайт и младший полубайт объединяют BCD, результат = 0x41
 
В обоих случаях регистры результатов должны быть инвертированы, потому что светодиод горит, если бит порта низкий. Это делается с помощью инструкция КОМ.

Включить осциллятор Xtal на

Чтобы включить генератор xtal, соответствующий предохранитель в ATmega8 надо переделать, как показано на картинке.

Либо выберите низкую (менее 1 МГц), либо среднюю (от 1 до 10 МГц) или высокой частоты (более 10 МГц).

Дисплей BCD Контроллер блок питания крепление Программное обеспечение Руководство пользователя
Если вы решили подарить бинарные часы кто-то еще, вам нужно руководство пользователя. я спроектировал такой руководство в формате OpenOffice здесь и преобразовал его в ПДФ здесь.
двоично-десятичный дисплей Контроллер блок питания крепление Программное обеспечение Руководство пользователя

© 2017 http://www.avr-asm-tutorial.net

Знакомство с микроконтроллером ATmega8 AVR Информация о встроенных технологиях EmbedIC

ATmega8 — это 8-разрядный микроконтроллер CMOS серии AVR (разработанный корпорацией Atmel в 1996 г. ), основанный на архитектуре RSIC (компьютер с сокращенным набором команд) и ее основных Преимущество состоит в том, что он не содержит никаких аккумуляторов, и результат любой операции может быть сохранен в любом регистре, определяемом инструкцией.

 

 

Применение микроконтроллера ATmega8 AVR также очень обширно, и он до сих пор используется в качестве основы для изучения и исследования современных микропроцессоров. Блок-схема ATmega8 показана на рисунке ниже:

Память:

SRAM и 512 байт EEPROM. 8K Flash разделен на две части: нижняя часть используется как часть загрузочной флэш-памяти, а верхняя часть используется как часть флэш-памяти приложения. SRAM содержит 1 Кбайт и 1120 байтов общих регистров и регистров ввода/вывода.

 

Младшие 32 адреса используются для 32 8-битных регистров общего назначения, а следующие 64 адреса используются для регистров ввода-вывода. Кроме того, все регистры напрямую подключены к ALU, а EEPROM используется для хранения пользовательских данных.

 

Порт ввода-вывода

 

ATmega8 состоит из 23 линий ввода-вывода и 3 портов ввода-вывода, обозначенных B, C и D соответственно.

 

  • Порт B имеет 8 линий ввода-вывода,
  • Порт C имеет 7 линий ввода-вывода,
  • Порт D имеет 8 линий ввода-вывода.

 

Регистры, соответствующие любому порту X (B, C или D):

 

  • DDRX : регистр направления данных порта X.
  • PORTX : Регистр данных порта X.
  • PINX : Входной регистр порта X.

 

Таймеры и счетчики

 

ATmega8 состоит из 3 таймеров с сопоставимыми режимами, два из которых 8-битные, а третий 16-битный.

 

Генератор

 

ATmega8 включает в себя внутренний сброс и генератор, что устраняет необходимость во внешних входах. Внутренний RC-генератор генерирует внутренние часы, которые можно запрограммировать для работы на любой частоте 1 МГц, 2 МГц, 4 МГц или 8 МГц. Кроме того, он поддерживает внешний генератор с максимальной частотой 16 МГц.

Связь

ATmega8 обеспечивает синхронную и асинхронную схемы передачи данных через USART (Universal Synchronous and Asynchronous Receiver Transmitter), то есть для связи с модемами и другими последовательными устройствами. Он также поддерживает SPI (последовательный периферийный интерфейс) для связи между устройствами в режиме ведущий-ведомый, другим поддерживаемым типом связи является TWI (двухпроводной интерфейс) и позволяет любую коммутацию между двумя устройствами.

 

ATmega8 также имеет встроенный в микросхему модуль компаратора для сравнения двух напряжений, подаваемых на два входа аналогового компаратора через внешнюю микросхему.

 

Он также содержит 6-канальный АЦП, 4 из которых имеют 10-разрядную точность, а 2 — 8-разрядную точность.

 

Регистр состояния:

 

ATmega8 содержит информацию о выполняемом в данный момент наборе арифметических инструкций.

 

ATmega8 Схема конфигурации выводов

 

 

Одна из отличительных особенностей ATmega8 заключается в том, что все контакты, кроме пяти, поддерживают два сигнала.

 

Контакты 23, 24, 25, 26, 27, 28 и 1 предназначены для порта C, а контакты 9, 10, 14, 15, 16, 17, 18, 19 — для порта B, контакты 2, 3. , 4 , 5, 6, 11, 12 для порта D.

 

Контакт 1 также является контактом сброса, если сигнал низкого уровня подается дольше минимальной длины импульса, будет сгенерирован сброс.

 

Контакты 2 и 3 также используются для последовательной связи USART.

 

Выводы 4 и 5 используются как внешние прерывания, одно из которых срабатывает, когда установлен бит флага прерывания в регистре состояния, а другое срабатывает, когда выполняется условие прерывания.

 

Выводы 9 и 10 используются в качестве внешнего генератора, а также в качестве генератора счетчика таймера с кристаллом, подключенным непосредственно между выводами. Вывод 10 используется для кварцевого генератора или низкочастотного кварцевого генератора. Если в качестве источника тактового сигнала используется RC-генератор с внутренней калибровкой и включен асинхронный таймер, эти выводы можно использовать в качестве выводов генератора таймера.

 

Контакт 19 используется в качестве выхода главного тактового сигнала и входа ведомого тактового сигнала для канала SPI.

 

Контакт 18 используется как вход ведущего тактового сигнала и выход ведомого тактового сигнала.

 

Контакт 17 используется в качестве основного вывода данных и вспомогательного ввода данных для канала SPI. Он используется как вход, когда разрешен ведомым устройством, и является двунаправленным, если разрешен мастером. Этот вывод также можно использовать в качестве выхода совпадения сравнения выхода для внешнего выхода совпадения сравнения таймера/счетчика.

 

Контакт 16 используется в качестве входа выбора ведомого устройства, а также может использоваться для сравнения таймера/счетчика 1 путем настройки контакта PB2 в качестве выхода.

 

Контакт 15 можно использовать в качестве внешнего выхода для совпадения таймера/счетчика A.

 

Контакты с 23 по 28 всегда используются для каналов АЦП. Вывод 27 также можно использовать в качестве часов последовательного интерфейса, а вывод 28 — в качестве данных последовательного интерфейса.

 

Контакты 13 и 12 используются как входы аналогового компаратора.

 

Контакты 11 и 6 используются для источников таймера/счетчика.

 

Спящий режим

 

Микроконтроллер ATmega8 работает в 5 спящих режимах, а именно:

 

Режим ожидания. SPI, USART, АЦП, TWI, таймер/счетчик и Watchdog для запуска и прерывания работы системы. Это реализуется установкой битов SM0-SM2 флагов регистра MCU в ноль.

 

Режим шумоподавления АЦП: останавливает ЦП, но позволяет работать АЦП, внешнему прерыванию, таймеру/счетчику 2 и сторожевому таймеру.

 

Режим отключения питания: включает внешние прерывания, 2-проводной последовательный интерфейс, сторожевой таймер, отключая внешний генератор и останавливая все генерируемые часы.

 

Режим энергосбережения: используется, когда таймер/счетчик работает асинхронно, он останавливает все часы, кроме clkASY.

 

Режим ожидания: в этом режиме генератор может работать, а все остальные операции останавливаются.

 

Основное приложение

 

На изображении ниже показан мигающий светодиод, использующий микроконтроллер ATmega8. Программа написана на языке C и сначала скомпилирована в файл .c. Программный инструмент ATMEL преобразует этот файл в двоичный объектный файл ELF, затем снова преобразует его в шестнадцатеричный файл и, наконец, использует программу AVR dude для передачи шестнадцатеричного файла в микроконтроллер для обработки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *