Как собрать часы на микроконтроллере PIC16F628A. Какие компоненты понадобятся для сборки часов. Как запрограммировать микроконтроллер PIC16F628A для работы часов. Какие особенности есть у часов на PIC16F628A.
Основные компоненты для сборки часов на PIC16F628A
Для сборки часов на микроконтроллере PIC16F628A потребуются следующие основные компоненты:
- Микроконтроллер PIC16F628A
- Кварцевый резонатор на 4 МГц
- Семисегментные светодиодные индикаторы (4 штуки)
- Транзисторы для управления индикаторами
- Резисторы и конденсаторы
- Кнопки для настройки часов
- Печатная плата
- Источник питания 5В
Микроконтроллер PIC16F628A является «мозгом» часов и управляет всей их работой. Кварцевый резонатор обеспечивает точность хода. Семисегментные индикаторы отображают время. Остальные компоненты необходимы для корректной работы схемы.
Схема подключения компонентов часов
Схема подключения основных компонентов часов на PIC16F628A выглядит следующим образом:

- К выводам RB0-RB3 подключаются транзисторы для управления разрядами индикаторов
- К выводам RA0-RA7 подключаются сегменты индикаторов через токоограничивающие резисторы
- Кварцевый резонатор подключается к выводам OSC1 и OSC2
- Кнопки управления подключаются к свободным выводам, например RB4-RB7
- VDD и VSS подключаются к +5В и общему проводу соответственно
Важно правильно рассчитать номиналы резисторов для индикаторов и обеспечить стабильное питание микроконтроллера. Подробная принципиальная схема часов зависит от используемых компонентов.
Программирование микроконтроллера PIC16F628A
Для работы часов микроконтроллер PIC16F628A необходимо запрограммировать. Программирование выполняется следующим образом:
- Написать программу на языке ассемблера или Си
- Скомпилировать программу в машинный код
- Подключить программатор к микроконтроллеру
- Загрузить скомпилированный код в память микроконтроллера
В программе реализуется алгоритм отсчета времени, управления индикацией, обработки нажатий кнопок. Готовые исходные коды программ для часов на PIC16F628A можно найти в интернете и адаптировать под свою схему.

Особенности часов на микроконтроллере PIC16F628A
Часы на базе PIC16F628A имеют следующие особенности и преимущества:
- Низкое энергопотребление
- Возможность точной подстройки хода
- Простота схемы
- Низкая стоимость компонентов
- Возможность добавления будильника, термометра и других функций
- Гибкость настройки отображения времени
При этом точность хода зависит от стабильности частоты кварцевого резонатора. Для повышения точности можно использовать термокомпенсированные кварцевые генераторы.
Настройка и калибровка часов на PIC16F628A
После сборки и программирования часы на PIC16F628A необходимо настроить и откалибровать. Для этого выполняются следующие действия:
- Установка точного времени с помощью кнопок управления
- Подстройка частоты тактирования для обеспечения точного хода
- Проверка работы всех режимов индикации
- Настройка яркости свечения индикаторов
- Калибровка хода часов по эталонному времени
Точность хода проверяется в течение нескольких суток. При необходимости выполняется корректировка программной задержки для устранения отставания или спешки часов. Правильно настроенные часы на PIC16F628A могут обеспечивать точность хода до нескольких секунд в месяц.

Добавление дополнительных функций
Базовую схему часов на PIC16F628A можно дополнить различными полезными функциями:
- Будильник со звуковой сигнализацией
- Измерение температуры и влажности
- Отображение даты
- Секундомер и таймер
- Автоматическая регулировка яркости индикаторов
Для реализации дополнительных функций может потребоваться подключение внешних датчиков и компонентов. Также необходимо дорабатывать программу микроконтроллера. При этом важно учитывать ограничения по объему памяти PIC16F628A.
Преимущества использования PIC16F628A для часов
Микроконтроллер PIC16F628A хорошо подходит для создания часов по следующим причинам:
- Низкая стоимость и доступность
- Наличие встроенного тактового генератора
- Достаточное количество портов ввода-вывода
- Низкое энергопотребление
- Простота программирования
- Наличие готовых программных решений
При этом для более сложных проектов часов можно использовать и более мощные микроконтроллеры серии PIC. Это позволит реализовать расширенный функционал и улучшить характеристики устройства.

Заключение
Важно внимательно подойти к выбору компонентов, сборке схемы и программированию микроконтроллера. Это позволит создать надежные и точные часы на базе PIC16F628A. При возникновении вопросов можно обратиться за помощью на тематические форумы, где найдется много полезной информации по данной теме.
Простые часы будильник с двумя DS18B20 на PIC16F628A и PIC16F690
Простые часы будильник с двумя DS18B20 на PIC16F628A и PIC16F690Неактуально, рекомендую часы на 16F690
Часы PIC16F628 + будильник с 2 DS18B20.
При подаче питания на схему происходит автоопрделение LED индикатора Анод или Катод. Датчики температуры DS18B20 в данной схеме могут работать как по трёх проводной схеме так и по двухпроводной (режим паразитного питания). При сробатывании будильника на 1/4сек на выводах 1,2,17 и 18 одновременно выстовляется высокий уровень, при этом мигает дисплей. Для схемы с общим анодом достаточно элемента 2И.

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

Схема: Питание схемы от 5В. Без транзистора автоопределение анод или катод. С транзистором менять программу. Третья нога PICa (pin данных DS) также задействована под дежурный режим, низкий уровень отключение LCD, высокий включение LCD. Поэтому датчики DS18b20 запитывать от линии +5V. Возможность работы схемы от батареек с переходом в режим энергосбережения (менее 1млА).
Прошивка и схема часы PIC16F628 + будильник с 2 DS18B20 — скачать в одном архиве new! 19.12.12.
Исходник (asm) и прошивка старого проекта термометра PIC16F628(A) — скачать в одном архиве
Частые проблемы: датчик DS врёт на +2С — т.к. подогревается от соседних деталей, вынести подальше.
Индикатор расположен со стороны печати дорожек.
Тестовый вариант. Продолжение проекта с расширенными возможностями часы + два термометра на PIC16F690A с DS18B20. Авторегулировка яркости по освещённости. На транзисторах с большими индикаторами ОА.
Прошивка и схема часы PIC16F690 с 2 DS18B20 автояркость — скачать в одном архиве тест! 09.01.13.
[email protected]
Сайт создан в системе uCoz
Самодельные электронные часы, элементная база — часть 2 / Хабр
Привет, geektimes! В первой части статьи были рассмотрены принципы получения точного времени на самодельных часах. Пойдем дальше, и рассмотрим, как и на чем это время лучше выводить. Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.Сегментная индикация
Тут все просто. Сегментный индикатор состоит из обычных светодиодов, которые банально подключаются к микроконтроллеру через гасящие резисторы.Осторожно, траффик!
Плюсы: простота конструкции, хорошие углы обзора, невысокая цена.
Минус: количество отображаемой информации ограничено.
Конструкции индикаторов бывают двух видов, с общим катодом и общим анодом, внутри это выглядит примерно так (схема с сайта производителя).
Есть 1001 статья как подключить светодиод к микроконтроллеру, гугл в помощь. Сложности начинаются тогда, когда мы захотим сделать большие часы — ведь смотреть на мелкий индикатор не особо удобно. Тогда нам нужны такие индикаторы (фото с eBay):
Они питаются от 12В, и напрямую от микроконтроллера просто не заработают. Тут нам в помощь приходит микросхема CD4511, как раз для этого предназначенная. Она не только преобразует данные с 4-битной линии в нужные цифры, но и содержит встроенный транзисторный ключ для подачи напряжения на индикатор. Таким образом, нам в схеме нужно будет иметь «силовое» напряжение в 9-12В, и отдельный понижающий преобразователь (например L7805) для питания «логики» схемы.
Матричные индикаторы
По сути, это те же светодиоды, только в виде матрицы 8х8.
Продаются на eBay в виде одиночных модулей либо готовых блоков, например по 4 штуки. Управление ими весьма просто — на модулях уже распаяна микросхема MAX7219, обеспечивающая их работу и подключение к микроконтроллеру с помощью всего лишь 5 проводов. Для Arduino есть много библиотек, желающие могут посмотреть код.
Плюсы: невысокая цена, хорошие углы обзора и яркость.
Минус: невысокое разрешение. Но для задачи вывода времени вполне достаточно.
ЖК-индикаторы
ЖК-индикаторы бывают графические и текстовые.Графические дороже, однако позволяют выводить более разнообразную информацию (например график атмосферного давления). Текстовые дешевле, и с ними проще работать, они также позволяют выводить псевдографику — есть возможность загружать в дисплей пользовательские символы.
Работать с ЖК-индикатором из кода несложно, но есть определенный минус — индикатор требует много управляющих линий (от 7 до 12) от микроконтроллера, что неудобно. Поэтому китайцы придумали совместить ЖК-индикатор с i2c-контроллером, получилось в итоге очень удобно — для подключения достаточно всего 4х проводов (фото с eBay).
ЖК-индикаторы достаточно дешевые (если брать на еБее), крупные, их просто подключать, и можно выводить разнообразную информацию. Единственный минус это не очень большие углы обзора.
OLED-индикаторы
Являются улучшенным продолжением предыдущего варианта. Варьируются от маленьких и дешевых с диагональю 1.1″, до больших и дорогих. Фото с eBay.Собственно, хороши всем кроме цены. Что касается мелких индикаторов, размером 0.9-1.1″, то (кроме изучения работы с i2c) какое-то практическое применение им найти сложно.
Газоразрядные индикаторы (ИН-14, ИН-18)
Эти индикаторы сейчас весьма популярны, видимо из-за «теплого лампового(фото с сайта nocrotec.com)
Схема их подключения несколько сложнее, т.к. эти индикаторы для зажигания используют напряжение в 170В. Преобразователь из 12В=>180В может быть сделан на микросхеме MAX771. Для подачи напряжения на индикаторы используется советская микросхема К155ИД1, которая специально для этого и была создана. Цена вопроса при самостоятельном изготовлении: около 500р за каждый индикатор и 100р за К155ИД1, все остальные детали, как писали в старых журналах, «дефицитными не являются». Основная сложность тут в том, что и ИН-хх, и К155ИД1, давно сняты с производства, и купить их можно разве что на радиорынках или в немногих специализированных магазинах.
Arduino
Самый простой вариант для начинающих. Готовая плата стоит недорого (около 10$ на eBay с бесплатной доставкой), имеет все необходимые разъемы для программирования.
Под Arduino есть огромное количество разных библиотек (например для тех же ЖК-экранов, модулей реального времени), Arduino аппаратно совместима с различными дополнительными модулями.
Главный минус: сложность отладки (только через консоль последовательного порта) и довольно-таки слабый по современным меркам процессор (2КБайт RAM и 16МГц).
Главный плюс: можно сделать много чего, практически не заморачиваясь с пайкой, покупкой программатора и разводкой плат, модули достаточно соединить друг с другом.
32-разрядные процессоры STM
Для тех кто захочет что-то помощнее, есть готовые платы с процессорами STM, например плата с STM32F103RBT6 и TFT-экраном. Фото с eBay:Здесь мы уже имеем полноценную отладку в полноценной IDE (из всех разных мне больше понравилась Coocox IDE), однако понадобится отдельный программатор-отладчик ST-LINK с разъемом JTAG (цена вопроса 20-40$ на eBay). Как вариант, можно купить отладочную плату STM32F4Discovery, на которой этот программатор уже встроен, и его можно использовать отдельно.
Raspberry PI
И наконец, для тех кто хочет полной интеграции с современным миром, есть одноплатные компьютеры с Linux, всем уже наверное известные Raspberry PI. Фото с eBay:Это полноценный компьютер с Linux, гигабайтом RAM и 4х-ядерным процессором на борту. С краю платы выведена панель из 40 пинов, позволяющая подключать различную периферию (пины доступны из кода, например на Python, не говоря о C/C++), есть также стандартный USB в виде 4х разъемов (можно подключить WiFi). Так же есть стандартный HDMI.
Мощности платы хватит к примеру, не только чтобы выводить время, но и чтобы держать HTTP-сервер для настройки параметров через web-интерфейс, подгружать прогноз погоды через интернет, и так далее. В общем, простор для полета фантазии большой.
С Raspberry (и процессорами STM32) есть одна единственная сложность — ее пины используют 3-вольтовую логику, а большинство внешних устройств (например ЖК-экраны) работают «по старинке» от 5В. Можно конечно подключить и так, в принципе заработает, но это не совсем правильный метод, да и испортить плату за 50$ как-то жалко. Правильный способ — использовать «logic level converter», который на eBay стоит всего 1-2$.
Фото с eBay:
Теперь достаточно подключить наше устройство через такой модуль, и все параметры будут согласованы.
ESP8266
Способ скорее экзотический, но довольно-таки перспективный в силу компактности и дешевизны решения. За совсем небольшие деньги (около 4-5$ на eBay) можно купить модуль ESP8266, содержащий процессор и WiFi на борту.Фото с eBay:
Изначально такие модули предназначались как WiFi-мост для обмена по serial-порту, однако энтузиастами было написано множество альтернативных прошивок, позволяющих работать с датчиками, i2c-устройствами, PWM и пр. Гипотетически вполне возможно получать время от NTP-сервера и выводить его по i2c на дисплей. Для тех кто хочет подключить много различной периферии, есть специальные платы NodeMCU с большим числом выводов, цена вопроса около 500р (разумеется на eBay):
Единственный минус — ESP8266 имеет очень мало памяти RAM (в зависимости от прошивки, от 1 до 32КБайт), но задача от этого становится даже интересней. Модули ESP8266 используют 3-вольтовую логику, так что вышеприведенный конвертор уровней тут также пригодится.
На этом вводный экскурс в самодельную электронику можно закончить, автор желает всем удачных экспериментов.
Я в итоге остановился на использовании Raspberry PI с текстовым индикатором, настроенным на работу с псевдографикой (что вышло дешевле чем графический экран той же диагонали). Сфоткал экран настольных часов во время написания этой статьи.Часы выводят точное время, взятое из Интернета, и погоду которая обновляется с Яндекса, все это написано на Python, и вполне работает уже несколько месяцев. Параллельно на часах запущен FTP-сервер, что позволяет (вкупе с пробросом портов на роутере) обновить на них прошивку не только из дома, но и из любого места где есть Интернет. Как бонус, ресурсов Raspberry в принципе хватит и для подключения камеры и/или микрофона с возможностью удаленного наблюдения за квартирой, или для управлением различными модулями/реле/датчиками. Можно добавить всякие «плюшки», типа светодиодной индикации о пришедшей почте, и так далее.
PS: Почему eBay?
Как можно было видеть, для всех девайсов приводились цены или фото с ебея. Почему так? К сожалению, наши магазины часто живут по принципу «за 1$ купил, за 3$ продал, на эти 2 процента и живу». В качестве простого примера, Arduino Uno R3 стоит (на момент написания статьи) 3600р в Петербурге, и 350р на eBay с бесплатной доставкой из Китая. Разница действительно на порядок, безо всяких литературных преувеличений. Да, придется подождать месяц чтобы забрать посылку на почте, но такая разница в цене думаю, того стоит. Но впрочем, если кому-то надо прямо сейчас и срочно, то наверно и в местных магазинах есть выбор, тут каждый решает сам.
— справка для разработчиков
Некоторые микроконтроллеры (MCU) PIC ® оснащены схемой измерения температуры, предназначенной для измерения рабочей температуры кремниевого кристалла. Диапазон рабочих температур контура составляет от -40°C до +85°C. Выход схемы представляет собой напряжение, пропорциональное температуре устройства и подключенное внутри к аналого-цифровому преобразователю (АЦП) устройства. Канал зарезервирован для выхода температурного контура. В зависимости от приложения результат аналого-цифрового преобразователя можно либо сравнивать напрямую с конкретными точками срабатывания, либо использовать для определения фактической температуры путем расчета, справочной таблицы или их комбинации.
Схема индикатора температуры может использоваться в качестве детектора порога температуры или более точного индикатора температуры, в зависимости от уровня выполненной калибровки. Калибровка по одной температуре или по одной точке позволяет схеме указывать температуру, близкую к этой температуре калибровки. Двойная температурная или двухточечная калибровка позволяет цепи более точно определять весь диапазон температур. На рисунке ниже показана упрощенная блок-схема температурного контура.
Температуру можно рассчитать по приведенному ниже уравнению. Выходной сигнал АЦП преобразуется в температуру в зависимости от рабочего напряжения (Vdd) и выбранного режима.
Ссылка для приведенного выше уравнения:
режим (высокий режим) = 4
режим (низкий режим) = 2
, где n — разрешение АЦП; 8 или 10 бит.
Результат АЦП
Показание температуры АЦП получается путем установки канала АЦП на индикатор температуры. Аналого-цифровые регистры результатов ( ADRESH и ADRESL ) будут содержать результат преобразования температуры. Дополнительные сведения о работе периферийного устройства АЦП см. в статье об аналого-цифровом преобразователе (АЦП).
На приведенной ниже диаграмме показан пример выходных данных с графиком зависимости АЦП от температуры.
РЕЗУЛЬТАТ АЦП (ДЕСЯТИЧНЫЙ) ПРОТИВ. ТЕМПЕРАТУРА (РЕГУЛИРУЕМОЕ НАПРЯЖЕНИЕ ПИТАНИЯ)
Схема индикатора температуры во многих микроконтроллерных устройствах PIC ® выдает напряжение, пропорциональное температуре кремния. Пропорциональное выходное напряжение достигается путем измерения прямого падения напряжения на нескольких кремниевых переходах внутри устройства. Напряжение на двух ( нижний диапазон ) или четыре ( верхний диапазон ) кремниевые переходы могут быть выбраны.
Цепь измерения температуры интегрирована с модулем фиксированного опорного напряжения (FVR). Схема активируется установкой бита включения датчика температуры ( TSEN ) регистра управления фиксированным опорным напряжением (FVRCON). В отключенном состоянии цепь не потребляет ток.
Идеальное напряжение температуры одного перехода можно рассчитать по приведенному ниже уравнению.
(1)\begin{equation} Vt = 0,659 – (Температура градусов C + 40) * (0,00132) \end{equation}
Приведенные ниже уравнения описывают выходные характеристики индикатора температуры, где Vt – напряжение на одном переходе кремния. .
Высокий Диапазон:
(2)\begin{equation} Vtemp = VDD — 4Vt \end{equation}
Нижний диапазон:
(3)\begin{equation} Vtemp = VDD — 2Vt \end{equation}
Верхний диапазон , выбранный установкой бита TSRNG регистра FVRCON , обеспечивает более широкое выходное напряжение. Это обеспечивает большее разрешение в диапазоне температур, но может быть менее стабильным от детали к детали. В этом диапазоне для работы требуется более высокое напряжение смещения и, следовательно, требуется более высокое значение VDD.
Нижний диапазон выбирается путем очистки бита TSRNG в регистре FVRCON . Низкий диапазон генерирует более низкое падение напряжения, и поэтому для работы схемы требуется более низкое напряжение смещения. Низкий диапазон предназначен для работы при низком напряжении.
Минимальное рабочее напряжение VDD в зависимости от минимальной измеряемой температуры
Когда температурный контур работает в низком диапазоне, устройство может работать при любом рабочем напряжении, которое находится в пределах технических характеристик. Когда температурная цепь работает в высоком диапазоне, рабочее напряжение устройства, VDD, должно быть достаточно высоким, чтобы обеспечить правильное смещение температурной цепи.
В таблице ниже показаны рекомендуемые минимальные значения VDD и диапазона для устройства PIC16F1825. Технический паспорт устройства должен быть справочным для точного диапазона. 9n-1) \end{equation}
, где n — разрешение АЦП; 8 или 10 бит.
Выходной сигнал индикатора температуры основан на приведенной ниже формуле идеальной температуры перехода. Однако результаты могут немного отличаться от устройства к устройству. Это связано с пороговым значением напряжения транзистора Vt, которое может изменяться в пределах производственных допусков. Индикатор температуры не имеет встроенного механизма калибровки, поэтому может потребоваться внешнее тестирование, если допуски выходят за рамки конкретных приложений. Как правило, индикатор температуры лучше всего работает для отдельных точек срабатывания или приложений с перегревом. Для более точных измерений температуры используется внешний датчик температуры, такой как MCP9.700 или MCP9800 могут обеспечить точность в более широком диапазоне температур.
Идеальное напряжение температуры одного перехода можно рассчитать по приведенному ниже уравнению.
(5)\begin{equation} Vt = 0,659 – (температура градусов C + 40) * (0,00132) \end{equation}
Некоторые приложения могут получать данные калибровки в процессе производства. В этих случаях можно измерить индикатор температуры и рассчитать калибровочное значение и сохранить его в ЭСППЗУ или флэш-памяти, чтобы компенсировать результаты уравнения результата АЦП для идеальной температуры. Это может потребовать калибровки по одной или двум точкам, если измеряется несколько устройств. Например, выборка из 12 устройств может предложить диапазон измерений температуры, аналогичный показанному на диаграмме ниже. 9n-1) \end{equation}
режим (высокий режим) = 4
режим (низкий режим) = 2
, где n — разрешение АЦП; 8 или 10 бит.
КАЛИБРОВКА ПО ОДНОЙ ТОЧКЕ
Калибровка по одной точке выполняется путем измерения реакции устройства при одной фиксированной температуре. Это может предложить значение смещения для более точного измерения точки срабатывания. Но различия от устройства к устройству могут повлиять на точность измерения в точках с более высокой или более низкой температурой вокруг контрольной точки. Поэтому рекомендуется калибровка по одной точке, когда индикатор температуры используется для порога или точки срабатывания в зависимости от температуры устройства. Калибровка по одной точке может быть выражена с помощью приведенного ниже уравнения.
\begin{equation} Результат калибровки АЦП = результат АЦП – значение калибровки \end{equation}
С образцом устройства PIC16F1937 при следующих условиях:
• Питание 5 В
• Работа в верхнем диапазоне 4 В
• 25°C принудительная температура
Измеренное аналого-цифровое преобразование дает результат 561 десятичного знака.
Типичный результат аналого-цифрового преобразования при 25°C рассчитывается как 554 десятичного числа с использованием приведенного выше уравнения (2).
Для одноточечной калибровки разница между результатом преобразования и идеальным значением результата аналого-цифрового преобразования является значением калибровки.
\begin{equation} Значение калибровки = идеальное – измерено \end{equation}
(9)\begin{equation} 554 — 561 = 7 \end{equation}
Следовательно, для этого устройства значение калибровки будет равно 7. Это значение может быть сохранено в энергонезависимой памяти программ или данных EEPROM внутри устройства для использования при снятии измерения температуры.
ДВУХТОЧЕЧНАЯ КАЛИБРОВКА
Калибровка выполняется при двух температурах, по которым мы можем определить калиброванную температуру. В результате этот метод является более точным в более широком диапазоне температур, но требует двух совершенно разных точек измерения калибровки температуры. Эти точки калибровки можно использовать для определения параметров приведенного ниже уравнения.
(10)\begin{equation} Результат калибровки АЦП = A + (B * Результат АЦП) \end{equation}
(11)\begin{equation} A = (Идеальное @ T1 — Идеальное @ T2)/(Фактическое @ T1 — Фактическое @ T2) \end{equation}
(12)\begin{equation} B = Фактический @ T1 — (A * Идеальный @ T1) \end{equation}
Где:
Температура калибровки T1 1
Температура калибровки T2 2
Калибровка Примечание по применению
Программирование низкого напряжения 8-битных устройств PIC®
Низковольтное программирование 8-битных устройств PIC®
Существует два режима программирования микроконтроллера PIC ® : режим высокого напряжения (HV) и режим низкого напряжения (LV). Режим низковольтного программирования (LVP) позволяет программировать микроконтроллеры PIC Flash с использованием рабочего напряжения VDD устройства. Это дает много преимуществ конструкциям In-Circuit Serial Programming™ (ICSP) .
Новое устройство PIC будет иметь конфигурацию, установленную в режим LVP при покупке. Любой из инструментов разработки Microchip может запрограммировать устройство, используя метод LVP. Многие из последних плат разработки, такие как Curiosity Board, используют режим LVP для встроенного программатора устройства.
Когда бит LVP регистров конфигурации установлен в 1, запись программирования низкого напряжения ICSP разрешена. Чтобы отключить низковольтный режим ICSP, бит LVP должен быть запрограммирован на 0.
Типовая структура регистра конфигурации LVP
LVP: бит разрешения программирования низкого напряжения
1 = разрешено программирование низкого напряжения. Функция контакта MCLR/VPP — MCLR.
0 = HV на MCLR/VPP необходимо использовать для программирования.
Бит LVP не может быть записан (в ноль) при работе с интерфейсом программирования LVP. Целью этого правила является предотвращение выхода пользователя из режима LVP при программировании из режима LVP или случайного исключения режима LVP из состояния конфигурации. Бит LVP можно перепрограммировать только на «0» с помощью режима программирования высокого напряжения.
Вход в режим низковольтного программирования Для входа в режим требуются следующие шаги:
- MCLR переводится в состояние низкого логического напряжения (VIL).
- 32-битная последовательность ключей представлена на выводе данных ICSP (ICSPDAT) во время синхронизации на выводе ICSP Clock (ICSPCLK).
После завершения последовательности клавиш MCLR необходимо удерживать в положении VIL до тех пор, пока должен поддерживаться режим Program/Verify.
Любой из инструментов Microchip Programmer/Debugger обрабатывает эту настройку через MPLAB® X IDE .
Старые 8-битные устройства имеют вывод PGM, который должен быть установлен на логический уровень извне. Обратитесь к техническому описанию вашего устройства для правильного метода LVP.
MCLR — это входной контакт, который может сбрасывать устройство, когда оно включено. Вывод MCLR также может быть сконфигурирован как стандартный вывод только для цифрового ввода. Бит конфигурации MCLRE включает или отключает вывод MCLR.
Если LVP включен (LVP = 1), вывод MCLR включается автоматически и не может быть отключен.
MCLR ВКЛЮЧЕН
Когда MCLR включен и контакт удерживается в низком уровне, устройство удерживается в состоянии сброса. Вывод MCLR подключен к VDD через внутренний слабый подтягивающий резистор.
MCLR ОТКЛЮЧЕН
Когда MCLR отключен, вывод MCLR становится выводом только для цифрового ввода и может иметь внутренний слабый подтягивающий резистор посредством программного управления.
Вывод MCLR/Только цифровой вход имеет индивидуально управляемый слабый внутренний подтягивающий резистор, подключенный к VDD.