Datasheet pic16f628a-i/p — microchip даташит 8- бит микроконтроллеры (mcu) 3.5 кб 224 ram 16 i/o

Введение

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

Модуль связывается с остальной схемой с помощью TTL или с помощью встроенной микросхемы MAX232. Это означает, что вся связь осуществляется с помощью UART микроконтроллера PIC, и все наши команды от PIC будут отправляться на порт UART с помощью .

Введение

DHT11 – это датчик температуры и влажности воздух, который использует один провод для передачи 40 бит данных. Первые 16 бит – это целая и дробная части значения влажности, следующие 16 бит – целая и дробная части значения температуры, и последние 8 бит – это контрольная сумма.

Чтобы DHT11 и микроконтроллер начали общаться друг с другом, их необходимо засинхронизировать. Чтобы засинхронизировать их, микроконтроллер посылает сигнал старта, который представляет собой импульс длительностью 20 мкс на выводе данных. После импульса, микроконтроллер ждет получения данных. В программе мы должны изменить направление вывода данных. Вы можете прочитать подробности о DHT11 в техническом описании. У вас может быть датчик, как в 4-выводном, так и в 3-выводном корпусе; но мы используем 3-выводную версию. Между этими версиями нет никакой разницы, а дополнительный вывод ни к чему не подключен.

Датчик температуры и относительной влажности воздуха DHT11

Принципиальная схема

Принципиальная схема разделена на блоки.

Принципиальная схема термометра на PIC16F628 и DHT11

Блок питания
Приводит входное напряжение к значению 5 вольт. Использует стабилизатор напряжения LM7805.
ICSP
Это 5-пиновый разъем, подключенный к выводам программирования микроконтроллера. Мы используем этот разъем для прошивки микроконтроллера.
DHT11
Это 3-пиновый разъем, к которому подключен датчик. Средний вывод подключен к микроконтроллеру для передачи данных.
MCU
Это PIC16F628, который принимает данные от DHT11 и выводит их на LCD дисплей.
Дисплей
LCD дисплей (2 строки по 16 символов), который показывает влажность и температуру воздуха.

Микроконтроллер у нас будет работать от внутреннего тактового генератора с частотой 4 МГц. Поэтому на схеме нам не нужен кварцевый резонатор.

Eagle сгенерировала нам следующий перечень элементов:

Термометр на PIC16F628 и DHT11. Перечень элементов
Позиционное обозначениеНоминалЭлементКорпусБиблиотекаЛист
C10.1uFC-EU025-050X050C025-050X050rcl1
C2100uFCPOL-EUE2.5-5E2,5-5rcl1
C30.1uFC-EU025-050X050C025-050X050rcl1
C4100uFCPOL-EUE2.5-5E2,5-5rcl1
C50.1uFC-EU025-050X050C025-050X050rcl1
D11N40041N4004DO41-10diode1
IC27805TV7805TVTO220Vlinear1
IC3PIC16F628DIL18DIL18ic-package1
JP1ICSPPINHD-1X51X05pinhead1
JP216×02 LCDPINHD-1X161X16pinhead1
JP3DHT11PINHD-1X31X03pinhead1
R110KR-EU_0204/70204/7rcl1
R25KTRIM_EU-LI10LI10pot1
R34K7R-EU_0204/70204/7rcl1
S1ResetTAC_SWITCHPTHTACTILE-PTHSparkFun1
X17-35vDCW237-10W237-102con-wago-5001

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

Подробное описание

Производитель: Microchip

Описание: 8- бит микроконтроллеры (MCU) 3.5 Кб 224 RAM 16 I/O

Краткое содержание документа:PIC16F627A/628A/648A Data SheetFlash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology 2007 Microchip Technology Inc.DS40044FNote the following details of the code protection feature on Microchip devices: · · Microchip products meet the specification contained in their particular Microchip Data Sheet.

Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. Microchip is willing to work with the customer who is concerned about the integrity of their code. Neither Microchip nor any other semiconductor manufacturer can gua

Спецификации:

  • Supply Voltage — Max: 5.5 В
  • Supply Voltage — Min: 2 В
  • Вид монтажа: SMD/SMT
  • Встроенный в чип АЦП: нет
  • Высота: 2.31 мм
  • Длина: 11.53 мм
  • Интерфейс: USART
  • Количество линий ввода/вывода: 16
  • Количество таймеров: 3
  • Рабочее напряжение питания: 2 В … 5.5 В
  • Рабочий диапазон температрур: — 40 C … + 85 C
  • Размер ОЗУ: 224 B
  • Размер ПЗУ данных: 128 B
  • Размер памяти программ: 3.5 Кб
  • Серия процессора: PIC16
  • Тактовая частота максимальная: 20 МГц
  • Тип корпуса: SOIC-18 Wide
  • Тип памяти программ: Flash
  • Упаковка: Tube
  • Шина данных: 8 бит
  • Ширина: 7.49 мм
  • Ядро: PIC16
  • RoHS: да

Варианты написания:

PIC16LF628AI/SO, PIC16LF628A I/SO

На английском языке: Datasheet PIC16LF628A-I/SO — Microchip 8- bit Microcontrollers (MCU) 3.5 Kb 224 RAM 16 I/O

26 предложений от 18 поставщиков
Исполнение: SO18-300. IC, SM, MCU, 8-BIT, 3.5KB FLASH; Series:PIC16LF; Memory Size, Flash:3.5KB; EEPROM Size:128Byte; Memory Size, RAM:224Byte; I/O lines, No. of:16;…

Стандарт СИЗРоссияPIC16LF628A-I/SOMicrochip59 ₽Купить
T-electronРоссия и страны СНГPIC16LF628A-I/SOMicrochip123 ₽Купить
ДКО ЭлектронщикРоссияPIC16LF628A-I/SOMicrochipот 123 ₽Купить
Электродеталь- ПоставкаРоссияPIC16LF628A-I/SO SO18W Микроконтроллер 8-бит, 3.5 кбайт, FLASH МикросхемыMicrochipпо запросуКупить

Newer Device Available PIC16F18444

Status: In Production

View Datasheet View Comparisons

Features:

  • Low voltage programming
  • Low speed Clock mode
  • Programmable BOR
  • 4MHz internal oscillator
  • Programmable VREF
  • 128 bytes of EEPROM
  • Data Memory
  • ICD

View More

  • ProgrammingServices Available
  • SamplingOptions
  • BuyNow

This powerful (200 nanosecond instruction execution) yet easy-to-program (only 35 single word instructions) CMOS FLASH-based 8-bit microcontroller packs Microchip’s powerful PIC architecture into an 18-pin package and is upwards compatible with the PIC16F628, PIC16C62XA, PIC16C5X and PIC12CXXX devices. The PIC16F628A features 4MHz internal oscillator, 128 bytes of EEPROM data memory, a capture/compare/PWM, a USART, 2 Comparators and a programmable voltage reference that make it ideal for analog/integrated level applications in automotive, industrial, appliances and consumer applications.

For product comparison, please consider: PIC16F18444

  • Low voltage programming
  • Low speed Clock mode
  • Programmable BOR
  • 4MHz internal oscillator
  • Programmable VREF
  • 128 bytes of EEPROM
  • Data Memory
  • ICD

User Guides

  • Integrated Development Environments
  • Compilers
  • Programmers
  • Demo & Evaluation Boards
  • Code Examples

MPLAB X Integrated Development Environment (IDE) is an expandable, highly configurable software program that incorporates powerful tools to help you discover, configure, develop, debug and qualify embedded designs for most of Microchip’s microcontrollers, microprocessors and digital signal controllers. MPLAB X IDE works seamlessly with the MPLAB development ecosystem of

Available as free, unrestricted-use downloads, our award-winning MPLAB XC C Compilers are comprehensive solutions for your project’s software development. Finding the right compiler to support your device is simple:

  • MPLAB XC8 supports all 8-bit PIC and AVR microcontrollers (MCUs)
  • MPLAB XC16 supports all 16-bit PIC MCUs and dsPIC Digital

Fast programming, increased functionality, at the same price as its predecessor, the PICkit 3.

The MPLAB PICkit 4 now has Programmer-to-Go functionality for 8-bit, 16-bit and 32-bit PIC MCUs and dsPICs and also SAM MCU devices . The firmware update comes with MPLAB X IDE v5.30. AVR is expected soon!

The MPLAB PICkit 4 In-Circuit

The MPLAB ICD 4 In-Circuit Debugger/Programmer is Microchip’s fastest, cost-effective debugging and programming tool for PIC and SAM Microcontrollers (MCUs), dsPIC Digital Signal Controllers (DSCs), and CEC flash microcontrollers. This speed is provided by a SAME70 MCU with 300 MHz, 32-bit MCU with 2MB of RAM and a high-speed FPGA to yield

The MPLAB PM3 Universal Device Programmer is easy to use and operates with a PC or as a stand-alone unit, and programs Microchip’s entire line of PIC devices as well as the latest dsPIC DSC devices. When used standalone, data can be loaded and saved with the SD/MMC card (not included).

Как прошивать микроконтроллер? С чего начать изучение?

Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.

Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.

Простой регулятор мощности на pic16F628A

Внимание: данный регулятор был переработан, обновленная схема и прошивка по этой ссылке.

Основное назначение — регулятор температуры для паяльника

Регуляция мощности не фазовая, а широтно-импульсная: один цикл в 10 секунд, 20 ступеней регулировки. Удерживание в нажатом состоянии любой кнопки при включении включает полную мощность — режим форсированного разогрева. Через 5 минут или при нажатии на любую кнопку загружается из памяти последний запомненный уровень мощности. Нажатие двух кнопок одновременно — запомнить текущий уровень мощности.

Контроллер был подселён в корпус к паяльной станции. Теперь можно паять сразу обеими руками.

Розетка для подключения нагрузки выходит на заднюю стенку.

Пока принципиальная схема и прошивка. Более подробное описание добавлю позже. Светодиоды HL1-HL10 — индикатор уровня мощности. HL11 — индикатор включения нагрузки, светится вместе с подачей напряжения на нагрузку.

Принципиальная схема

  • DD1 — pic16F628A
  • DA2 — MOC3061
  • VS2 — MAC15N
  • C8 — 1n-10n 600V
  • R27 — 39 Ohm 0.5W
  • HL1-HL4 — зеленые
  • HL5-HL7 — желтые
  • HL8-HL10 — красные
  • HL11 — зеленый

Update 18.01.2011: чуть поправил код, новая прошивка v2.00.

Скрин с протеуса: полет нормальный!

Для надежности и в железе проверяем: тоже работает.

Прошивка

Версия 1.00 от 17.01.2010: (доступно зарегистрированным пользователям)

Версия 2.00 от 18.01.2011: (доступно зарегистрированным пользователям)

Индикатор напряжения в электросети на микроконтроллере PIC16F676

Рейтинг:   / 5

Подробности
Категория: схемы на PIC
Опубликовано: 17.03.2018 08:24
Просмотров: 1935

Горчу к Н. В.
Индикатор предназначен для непрерывного измерения и индикации напряжения в электросети. Индикатор состоит из цифрового трехразрядного измерителя напряжения, источника питания и датчика напряжения электросети. По сути, датчик напряжения электросети и источник питания это единое целое. Прибор питается от электросети через источник питания, состоящий из понижающего трансформатора, выпрямителя и стабилизатора на микросхеме 7805. Напряжение питания измерителя 5V берется с выхода этого стабилизатора, а напряжение до стабилизатора служит как раз и датчиком напряжения электросети. Суть в том, что при изменении напряжения в сети меняется и напряжение на выходе выпрямителя. Измеритель напряжения построен на микроконтроллере D1 типа PIC16F676, у данного контроллера имеется порт, могущий работать для приема аналоговой информации, то есть с АЦП.

PIC16F628A — Страница 3 — Меандр — занимательная электроника

Однажды я  купил недорогой напольный вентилятор, у которого было два больших минуса: 1. Нет удаленного управления. 2. Нет таймера на отключение (а я не хочу, чтобы он гудел всю ночь). Итак, что есть под рукой: 1. Микроконтроллер pic16f628a в soic корпусе; 2. Два реле 5В на несколько ампер; 3. Вентилятор; Неплохо, вроде бы есть где …

Читать далее

Постоянная ссылка на это сообщение:

Большинство из нас проводят много времени в руках с паяльником. Не секрет, что хорошая пайка компонентов является залогом успешной работы электронного устройства. Качество пайки определяется по характерному блеску. Сероватая и неровная пайка является потенциальной причиной плохой работы схемы. Другая важная задача заключается в том, чтобы произвести пайку не перегревая компонентов. Хорошее качество пайки обеспечивают цифровые …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/10413

Вашему вниманию хочу представить таймер на 24 часа. Выполнен таймер на ЖКИ WH-0802 и на МК PIC16F628A. Таймер очень прост в повторении при правильной сборке, не каких настроек не надо. При подаче питании на ЖКИ появится: Кнопкой S1 заходим в меню и выбираем часы, минуты или секунды. Затем кнопками S2 и S3 выставляем нужное время, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/7222

Эта поделка является «побочным продуктом» после разборок с файловой системой FAT16. Все делалось «для себя» и предоставляется «как есть». Основная задача была сделать замену входному звонку на УМС8, поэтому применено батарейное питание. Все разрабатывалось на отладочной плате с более серьезным МК и было успешно перенесено на платформу 16F628A, поэтому схема отдельно не рисовалась, за отсутствием …

Читать далее

Постоянная ссылка на это сообщение:

Наверное у каждого есть маленькие родственники – дети. Ребёнок рано или поздно начинает осваивать счёт. Обучение наиболее эффективно проводить в форме игры. Для этих целей существуют различные настольные игры, в которых количество ходов определяется с помощью игральных кубиков (костей). Моя маленькая племянница проявляет большой интерес к электронным игрушкам, особенно к тем, у которых есть кнопки …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/3422

Виды микроконтроллеров PIC и их архитектура

Пожалуй, среди начинающих очень распространены микроконтроллеры пик младших моделей, а именно семейств:

  • Pic10;
  • Pic12;
  • Pic16.

Эти микроконтроллеры 8-битные, при этом различают две архитектуры:

  1. Baseline с 10-битными инcтрукциями с 35-ю ассемблерными командами.
  2. Mid-range с 14-битными инструкциями и 35 или 49 команд на языке ассемблера в зависимости от конкретной модели.

В разработках радиолюбителей очень часто встречается модель 16f628. Конфигурация этого pic-микроконтроллера следующая, в нём есть:

  • встроенный тактовый генератор может быть настроен на частоту 4 или 8 МГц;
  • 18 ножек – портов, из которых 16 может использоваться для ввода-вывода данных, 2 задействованы под питание;
  • возможность использовать кварцевый резонатор для работы на тактовых частотах до 20 МГц (тогда задействуют еще 2 ноги для него);
  • буква F в маркировке говорит о памяти типа Flash, объёмом на 2048 слов;
  • гарвардская архитектура, с 14-битными инструкциями, всего их 35 штук;
  • длина машинного цикла 4 такта (1 действие выполняется за 4 такта кварцевого резонатор или внутреннего генератора);
  • 224 байта ОЗУ;
  • 128 байт EEPROM;
  • USART – последовательный порт;
  • внутренний источник опорного напряжения;
  • питается от 3.3 до 5 В.

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

Существуют и более мощные модели, например, 16-битные:

  1. PIC24x
  2. DsPIC30/33F – для цифровой обработки сигналов.

Они способны выполнять 16 MIPS (миллионов итераций в секунду), что обеспечивает весьма высокое быстродействие вашей системы при 2 при двухтактном машинном цикле, такая скорость обеспечивается частотой в 32 МГц. 40 MIPS достигается при 80 МГц соответственно.

32-битные микроконтроллеры PIC32MX имеют большую производительность и превосходящий объём памяти, если сравнивать с 16-битными моделями, и работают на частоте в 80 МГц.

ЧАСТОТОМЕР НА PIC16F628A

   Ещё несколько лет назад измерители частоты делали на отдельных микросхемах с КМОП логикой, но так как вы уже стали PIC-программистами, используем для него микроконтроллер. Предлагаемый частотомер очень прост и вместе с тем показывает надёжную работу схемы. Здесь мы будем использовать 7-сегментный светодиодный дисплей, не ЖК, на котором будет простой частотомер до 1 МГц, который использует 6-разрядов индикатора. Если нужны более высокие частоты измерений — смотрите эти схемы с делителями на входе.

Принципиальная схема частотомера

   Микроконтроллер PIC16F628A служит для того, чтобы выполнить всю работу без каких-либо дополнительных микросхем. На 16F628A 16 I/O выводов, два из которых используются для кварцевого генератора, один предназначен для ввода сигнала, а другой может быть использован только для ввода, что дает нам только 12 полезных I/O контактов. Решение — поставить транзистор, который открывается при выключении всех других цифр.

   Светодиодный 7-сегментный дисплей, используемый здесь, с общим катодом типа BC56-12SRWA. Когда все сигналы находятся на высоком уровне, транзистор Q1 открывается и переключается на первой цифре. Ток для каждого сегмента составляет около 7 мА.

   Вся схема частотомера потребляет тока порядка 30 мА в среднем. Микроконтроллер использует свой внутренний 4 MHz генератор для тактирования CPU. А внешний кварцевый генератор с частотой 32768 Hz нужен для установки 1 второго временного интервала. Tmr0 используется для подсчета входного сигнала на выводе RA4.

   В качестве входного сигнала нужно будет 5 вольт прямоугольного вида. Сам частотомер может измерять до 1 мегагерца, что более чем достаточно для любительских проектов. Это сделано для удобства, так как счетчик может достигать показаний 999999 Гц — и ничего переключать не нужно. Меряем хоть 11 герц, хоть 139,622 килогерц.

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

Программное обеспечение

Хотя программа снабжена комментариями, здесь я рассмотрю некоторые ее фрагменты. Когда PIC-контроллер включается, отображается короткое приветственное сообщение. Затем начинается 15-секундный отсчет. Я добавил отсчет по двум причинам:

  1. позволить GSM модулю зарегистрироваться в сети;
  2. визуально показать пользователю, что что-то происходит, и микроконтроллер работает.

При завершении обратного отсчета PIC-контроллер отправляет команду:

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

Затем модуль возвращает следующую строку:

Это означает, что GSM модуль зарегистрирован в сети NetCom. NetCom – это название провайдера. Именно это название мы хотим отобразить на LCD дисплее. Теперь нам нужно извлечь это название из полученной строки. Способ, которым я это делаю, заключается в чтении всей строки в массив. Затем я ищу «какие-то_символы». Когда «какие-то_символы» найдены, я сохраняю их позиции в другом массиве. Назовем это стартом и стопом. Затем я использую значения старта и стопа, чтобы отобразить символы между ними на LCD дисплее. Возможно, это не самый изящный способ, но он прост.

Поиск названия оператора в строке ответа

Чтобы отправить SMS, я должен послать чуть больше AT команд.

Сначала я посылаю команду:

Это выбор формата SMS сообщения. 1 говорит модулю о необходимости перейти в текстовый режим.

Затем я посылаю команду:

“receiver” – это номер получателя, на который я хочу отправить сообщение.

Третьей я посылаю команду:

А это само сообщение. Поскольку сообщение состоит из нескольких символов, включая пробелы, существует отличный способ сообщить модулю, где находится конец сообщения. Я должен послать символ , что и происходит при нажатии CTRL+Z.

Это символ в обычно таблице ASCII. Теперь модуль отправит сообщение.

АЦП из компаратора, на примере PIC16F628A

АЦП очень полезная штука, но, к сожалению, она есть не во всех микроконтроллерах. Зато большинство МК оснащены аналоговыми компараторами. В этой статье я расскажу, как из аналогового компаратора микроконтроллера PIC16F628A можно сделать простенький АЦП.

Схема

Схема очень простая. На вход RA1 подаётся измеряемое напряжение (напряжение не должно превышать напряжение питания микроконтроллера, в данном примере 5В). Это изменяемое напряжение даёт переменный резистор R3 подключенный между небом входом питания и землёй. Для оценки результатов работы прошивки в схему добавлен вольтметр. Для работы МК и отображения результатов в схеме присутствуют кварцевый резонатор, знакогенерирующий LCD Winstar 16×2 и немного обвязки.

В этом микроконтроллере компаратор имеет встроенный источник опорного напряжения. Но к сожалению возможности его не очень велики: при напряжении питания 5В он может выдавать опорное напряжение до 3,59В с шагом 0,21В, т.е. всего 20 значений. Для некоторых задач хватит и этого.

При инициализации контроллера нужно уделить внимание тому, чтобы выводы МК, которые использует компаратор (в примере это RA1 и RA2) были проинициализированы как входы и на входе опорного напряжения (RA2) не висела ни какой периферии

CMCON=0b00000101;     //  используется только второй компаратор
TRISA=0x06; 	// RA1 и RA2 - выводы компаратора

Задаём массив с параметрами конфигурации регистра VRCON и соответствующими значениями напряжений.

const unsigned char AtDTest_mass=
{
{0b11100000,  0},
{0b11100001, 21},
{0b11100010, 42},
{0b11100011, 63},
{0b11100100, 83},
{0b11100101,104},
{0b11100110,125},
{0b11100111,146},
{0b11101000,167},
{0b11101001,188},
{0b11101010,208},
{0b11101011,229},
{0b11101100,250},
{0b11001000,250},
{0b11001001, 10},//266
{0b11001010, 25},//281
{0b11001011, 41},//297
{0b11001100, 57},//313
{0b11001101, 72},//328
{0b11001110, 88},//344
{0b11001111,103} //359
};

Что бы не расходовать драгоценную память попусту – значения напряжений будем хранить не в дробном виде, а умноженными на 100. А что бы они ещё и в unsigned char влезли – смешение на 256 будет производиться в функции.

В массиве повторяется напряжение 2,5В, это связана с изменением 5 бита регистра VRCON, который отвечает за выбор диапазона выходного напряжения.

Так же следует не забывать, что приведённые значения верны только при напряжение питания МК 5В, если оно будет отличаться – всё придётся пересчитывать.

Функция псевдо АЦП на компараторе выглядит следующим образом:

int AtDTest()
{
int otvet=0;
unsigned char i;
i=21;					//	количество элементов массива
//	или возможных вариантов +1
VRCON=0b11101111;
do
{
i--;
VRCON=AtDTest_mass;//	устанавливаем опорное напряжение
delay(10);			//	задержка
}
while(i>0&&C2OUT==1);		//	делаем, пока не прошли все варианты
//	или не нашли нужное напряжение
VRCON=0;					//	выключаем источник опорного напряжения
otvet=AtDTest_mass;	//	вычисляем напряжение
if(i>13)otvet+=256;		//	корректировка напряжения, с учётом переполнения
return otvet;
}

Смысл самой функции аналогового цифрового преобразователя следующий:

Постепенно уменьшая опорное напряжение ожидать сработки компаратора. Как только компаратор сработал, смотрим, какое опорное напряжение было выставлено, искомое напряжение чуть выше его. Искомое напряжение лежит в пределе между ним и выше лежащем. Например: компаратор сработал на 10 шаге – то искомое напряжение лежит между 2,08 и 2,29 вольтами.

Обратите внимание, что функция возвращает величину напряжения умноженную на 100

Проверка на железе

Alex_EXE | 03.03.2011 | Микроконтроллеры |

Низковольтное программирование LVP из PicKit2

Цель данной статьи – показать, как внутрисхемно прошивать микроконтроллер (далее МК) в режиме низковольтного программирования с использованием PicKit2. Показаны схемы включения и особенности работы в программе PICkit 2 Programmer v2.61 .

Традиционно для прошивания к микроконтроллеру подключают 5 линий:

Vpp – напряжения программирования (обычно на уровне +13 вольт);

Vdd – напряжение питания +5 вольт;

Vss – общая линия (минус питания);

PGD – «программинг дата» или данные;

PGC – » программинг клок» или тактирование.

Аналогичные линии наблюдаем и на микроконтроллере.

Всё бы хорошо, если бы в один прекрасный момент не потребовалась сделать устройство с микроконтроллером в корпусе SOIC(или вовсе по идеологии микроконтроллер припаян к плате в любом корпусе).

Первое, при разводке платы для любых случаев надо организовать работу вывода MCLR(мастер-клир или сброс). Это важный момент, т.к. именно на этой линии присутствует функция Vpp – т.е. подачи высокого напряжения, которое переводит МК в режим программирования (прошивания). Смотрим схемы:

Случай, когда организация MCLRне требуется. Банально отключается в битах конфигурации и линия вовсе может использоваться на вход. Строго говоря, MCLRвсё равно присутствует в неявном виде в МК. Присутствует в PIC16F627, PIC16F628, PIC16F627А, PIC16F628А, PIC16F648А. В данном случае всё просто, легко организовать высоковольтное программирование при условии, что по линии Vddсхема потребляет не больше, чем может дать программатор и USB. Либо Vdd отключаем от схемы в момент программирования.

Случай организации MCLRпутем объединения с плюсовой линией питания. И никак иначе. Для работы МК требуется сформировать высокий уровень после подачи питания. Для программирования однозначно требуется перемычка, чтобы Vppотключить от Vddна время высоковольтного программирования. Требования к питанию по Vdd как и предыдущем случае.

PIC16F77, PIC16F873, PIC16F874, PIC16F876, PIC16F877 (и они же с индексом А).

В данном случае Vppотделяем от Vddдиодом. Одновременно на MCLRв рабочем режиме обеспечивается потенциал высокого уровня. В отдельных случаях решение может быть оправданным. Лично мне не нравится распиновка для такого решения, где 1 вывод MCLRVpp, а 20 вывод Vdd(очень неудобно разводить в одном слое). Нам же документация навяливает еще более неудобное включение см. включение из документации к PicKit2.

И, наконец, случай, когда используется низковольтное LVPпрограммирование (линия Vppвовсе не нужна). Для режима LVPзадействуется вывод PGM (настраивается на выход и в режиме LVPне может использоваться как цифровая линия). Не будет секретом, что МК с завода выпускаются с включенным режимом LVP, который может быть переключен в HVPтолько при высоковольтном программировании (т.е. случайно это сделать не получится). Для перевода МК в режим программирования на PGMнужно установить высокий уровень (для рабочего режима и подтягиваем PGMк минусу). Далее рассмотрим подключение МК к PicKit2 и недокументированную греблю граблями.

Будем считать, что к этому моменту у вас сделаны следующие подключения микроконтроллера к PicKit2:

–общая линия Vss (до сих пор не знаю, нужно ли все Vss на МК к земле подключать или достаточно одну из Vss; кто может сослаться на официальный источник – дайте знать);

– линия PGC;

–линия PGD;

– линию PGMподключить к Auxiliary (как посоветовал Help-ReadMe).

– линию Vddне будем подключать к программатору, будем использовать питание в самом устройстве.
Таким образом, нам достаточно четыре провода для прошивания.

Теперь рассмотрим работу в оболочке PICkit 2 Programmer v2.61 (из MPLABне получилось в режиме LVPсоединиться с МК).
К этому моменту устройство соединено 4мя проводами, питание на устройство подано, запускаем PICkit 2 Programmer v2.61.
И тишина – в автомате PICkit2 не видит МК; одно радует, что не ругается.

Ставимручнойвыбор – меню Programmer – Manual Device Select (ставимгалочку).

Для моего микроконтроллера (PIC16F876A) не лишним будет клацнуть DeviceFamily – Midrange – Standard.

В выпадающем списке выбираем наш МК

Выбрали. Так и хочется нажать кнопку Read и проверить жизнеспособность. Нажимаем.
Наблюдаем грустную надпись «No device detected».

И только после этого в меню Toolsстановится активным пункт UseLVPProgramEntry на которым мы ставим галочку. Ок. Поставили.

После этого в главном окне мы наблюдаем несколько бодрых сообщений.

Всё, теперь можно читать и шить, в том числе шить с защитой (CPCPD).

Полезные ссылки:Попробуй сделать печатную плату на кухнеУзнай как прошить микроконтроллер прошивкойНаучись программировать и делать прошивкиЗадай вопрос или найди ответ в форуме

Аппаратное обеспечение

Я собрал макет по следующей схеме.

Схема макета для отправки SMS с помощью PIC16F628A и SIM900A

Поскольку я использую MAX232, я могу использовать её, чтобы обнаружить и устранить проблемы при передаче микроконтроллером GSM модулю. Для этого я отключаю GSM модуль, подключаю кабель для последовательного порта и открываю GtkTerm. Настройки передачи: 9600-8-N-1.

Подключение компьютера для устранения проблем

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

Я не получил ответ от GSM модуля, так как он еще не подключен

Сфера применения PIC-микроконтроллеров

Как уже было сказано, семейство PIC16 очень любят радиолюбители. К тому же оно хорошо описано в большом количестве литературы. По количеству учебников с семейством PIC, на момент написания статьи, может посоревноваться только семейство AVR.

Давайте рассмотрим несколько схем с применением микроконтроллеров семейства PIC.

Таймер для управления нагрузкой на PIC16f628

Простейшая автоматика на микроконтроллерах PIC – это стихия 8-битного семейства. Их объём памяти не позволяет делать сложных систем, но отлично подходит для самостоятельного выполнения пары поставленных задач. Так и эта схема трёхканального таймера на Pic16f628, поможет вам управлять нагрузкой любой мощности. Мощность нагрузки зависит только от установленного реле/пускателя/контактора и пропускной способности электросети.

Настраивается прибор с помощью набора из 4-х кнопок SB1-SB4, на HG1 выводятся параметры, это дисплей типа LCD на 2 строки по 16 символов. В схеме используется внешний кварцевый резонатор на 4 МГц, а KV1 – это реле, с питанием катушки в 24 В, вы можете использовать любое реле, лишь бы оно подходило по напряжению катушки к вашему БП. МК питается от 5 В стабилизированного источника.

Вы можете использовать от 1 до 3 каналов в управлении нагрузкой, стоит только продублировать схему, добавив реле к выводам RA3, RA4 микроконтроллера.

Часы-будильник на МК PIC16f628A

Такие часы, согласно заявлениям разработчика, получились весьма точными, их погрешность весьма мала – порядка 30 секунд в год.

С незначительными переделками вы можете использовать любые 7-мисегментные индикаторы. Питаются от блока питания на 5В, при этом, при отключении от сети продолжают работать от батареек, что вы можете увидеть в правом верхнем углу схемы.

Регулятор мощности паяльника на PIC16f628A

У начинающих радиолюбителей не всегда есть возможность купить паяльную станцию. Но они могут собрать её сами. На схеме ниже представлен регулируемый блок питания на PIC16f628, для работы паяльника. В основу схемы вложено фазоимпульсное управление. Это, по сути, доработанный и осовремененный аналог классического тиристорного регулятора, но с микроконтроллерным управлением.

Схема довольно простая, в нижней части реализация светодиодной индикации. Главный силовой элемент – тиристор BT139, а MOC3041 – нужен для гальванической развязки МК от сети и управления тиристором с помощью логического уровня в 5 В.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий