Pic16f876 схемы самоделок

Добавил пользователь Alex
Обновлено: 05.09.2024

Имя режима
(символы
отображаемые
на ндикаторе)

Название режима работы

Описание и порядок работы

Prob

PULS

В этом режиме на дисплее, в последних трех знакоместах отображается длительность импульсов в последовательности: 0.5 мкс, 50 мкс, 500 мкс, 5.0 мс. По нажатию кнопки S1 происходит генерация последовательности импульсов выбранной длительности (при этом светится средний сегмент в первом знакоместе). Выбранный параметр для этого режима сохраняется в EEPROM.

FrEq

Cnt

В режиме счетчика на дисплее отображаются младшие разряды счетчика – младшие 4 цифры. При нажатии на кнопку S1 на дисплее отображаются старшие четыре цифры. Кнопка S2 – сброс счетчика.

VoLt

Функция вольтметра в данном пробнике реализована с целью приблизительного измерения напряжения. Опорное напряжение для АЦП подается от измеряемой цепи, поэтому не следует подключать пробник к цепям с напряжением более 5 В.

diod

Напряжение на p-n переходе

Это режим вольтметра с включенным резистором 10 кОм параллельно тестируемому p-n переходу (диод, транзистор). Переход подключается к щупу и общему проводу, на дисплее отображается падение напряжения на p-n переходе.

Cap

Измерение емкости
конденсатора

Измеряется емкость подключенного к пробнику конденсатора. Конденсатор подключается к пробнику и нажимается кнопка S1, на дисплее отображается емкость конденсатора. Возможно измерение емкости конденсаторов от 0.01 мкФ до 500 мкФ. Помните, что чем больше емкость конденсатора, тем больше времени затрачивается на измерение. Что бы настроить прибор нужно изменять резистор R4 и добиться правильного измерения.

SIG

Генератор
прямоугольных
импульсов

Генерирует прямоугольные импульсы частотой от 1 Гц до 9999 Гц. Кнопка S1 уменьшает значение, S2 увеличивает значение частоты.

1 - меню переработано и разделено на 2 группы:
- длинное нажатие (1 секунда)
CLOC - настройка часов и минут
SEC - настройка минут, сброс секунд
dAY - настройка дня недели
tdAY - время отображения дня недели в дежурном меню
ttEr - время отображения температуры в дежурном меню
Corr - коррекция хода +/- 24.0 сек/сут с шагом 0,1
LIGH - ночная яркость
nIGH - ХХ.ХХ - "время начала ночи"."время конца ночи"
- длинное нажатие (6 секунда)
LIGH - LDr - яркость от датчика освещения
- tIПE - яркость изменяется по времени
FREQ - частота кварца 4.000/4.096 MHz
dAt1 - 18B/18S/no - датчик 1 DS18B20/DS18S20/нет
dAt2 - 18B/18S/no - датчик 2 DS18B20/DS18S20/нет
otEr - знак градуса в термометре
dECt - десятичная точка в термометре
Ind - индикатор с общим анодом/катодом
oCLC - незначащий ноль в часах
dot - мигает одна точка/две точки 88,88/88,'88
2 - устранено мигание индикаторов при опросе датчиков температуры
3 - полностью устранен неконтролируемый уход времени при использовании кварца 4,000 МГц

и предустановки TMR0 (TMR0 не предустанавливается - предделитель не сбрасывается)
4 - изменено отображение дней недели
5 - добавлена возможность программно выбрать конфигурацию прошивки под разработанные мной платы с

разными индикаторами (5 плат)
6 - изменен алгоритм коррекции хода: +/- 24.0 сек/сут с шагом 0,1
7 - все параметры (кроме номера схемы) могут изменяться в меню и сохраняются в EEPROM через 20 секунд

после отпускания кнопок
8 - добавлен выбор индикаторов с общим анодом/катодом
9 - выключен резервный переход на внутренний генератор контроллера при отказе или долгой раскачке кварца
10 - переработан алгоритм перехода на низкую/высокую яркость от внешнего датчика освещения
11 - начало и конец ночи настраиваются от 0 до 23 часов. При равенстве значений, яркость остается максимальной.


Обновление 13.05.2016
Изменения:
1 - знакогенератор перенесен в EEPROM.
2 - вдвое повышена частота динамической индикации (122 Hz).
3 - медленное изменения яркости от LDR.
4 - изменен принцип опроса датчиков DS18x20, что исключает подмигивание индикатора, кроме самой минимальной яркости. Необходимо в меню подобрать минимальную яркость индикаторов ночью, при которой подмигивания незаметны. Обновление температуры 1 раз в 1,5 секунды.
5 - исправлены ошибки в прошивке 873/876 контроллеров.
Прошивки, исходники, схемы, платы v2.2 (для PIC16F 873/876/ 883/886 v2.2)

Протеус PIC16F886 с одним термометром и вольтметром
Прошивка, исходник с вольтметром (PIC16F886 v1.0)
(по кнопке "+" показывается только время и напряжение, по кнопке "-" часы переводятся в обычный режим "день-напряжение-температура")


В предыдущем уроке мы освоили работу с AVR-микроконтроллером ATmega8. Этот урок посвящен любителям PIC-микроконтроллеров, если вы работаете с AVR, то можете пропустить этот урок.

На этом уроке мы начнём осваивать работу с МК PIC16F876A. Номера выводов определим согласно даташиту. Номера выводов определим согласно даташиту. Будем подключать МК к программатору согласно этому рисунку


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

  • Vpp – напряжения программирования;
  • Vdd – напряжение питания +5 вольт;
  • Vss – общая линия (минус питания);
  • PGD – линия данных;
  • PGC – линия тактирования.

Подпаиваем провода к панельке для проверки. Получается как-то так…


Ну а теперь эти страшные фьюзы… В нашем МК их нет! А вместо них директива __CONFIG.

  • FOSC – тактовый генератор;
  • WDTE – сторожевой таймер;
  • PWRTE – таймер включения питания;
  • CP – защита кода программы;
  • BOREN – сброс по снижению напряжения питания;
  • LVP – низкоуровневое программирование;
  • CPD – защита данных EEPROM;
  • WRT – защита от записи памяти программ.

Первая программа

Программу для нашего МК мы будем писать в MPLAB X IDE v1.95. Запускаем MPLAB X IDE. Создаём новый проект File->New Project…

Выбираем тип процессора, язык программирования, жмём далее. В результате мастер создания проектов, выдаёт шаблон кода:

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

Указываем программе, с какой частотой работает тактовый генератор…

Первым делом настроим эту линию на вывод. Для настройки направления данных используется регистр TRISx, где х – это имя порта. В нашем случае регистр будет называться TRISB.

PORTBbits.RB7 = 1; // Устанавливаем линию порта в высокое состояние

Собираем всё вместе.

Чтобы установить вывод порта PB7 в низкое состояние, нам необходимо в бит PB7 порта PORTB записать ноль. Для этого применяют следующую конструкцию:

PORTBbits.RB7 = 0; //Устанавливаем линию порта в низкое состояние

Остаётся скомпилировать проект и прошить контроллер файлом с расширением .hex, который лежит по адресу диск:\ \dist\default\production.

Работоспособность программы проверяется вольтметром, подключённым к линии PB7 порта PORTB. Наблюдают изменение потенциала линии PB7 раз в две секунды.

Кто хочет идти "в ногу" с автором курса - создавайте свои дневники на форуме и выкладывайте что у вас получается и какие вопросы возникают при этом.

sergey.boreysha Опубликована: 18.03.2015 0 2


Вознаградить Я собрал 0 0

Напряжение регулируется от 0 до 24,00 вольт, ток может быть любой, вплоть до 10 ампер, зависит от количества запаралеленных транзисторов. Напряжение и ток регулируются кнопками, БП имеет защиту от КЗ, установку ограничения тока. БП как БП вообщем, отличие от некоторых остальных вариантов только в микроконтроллерной части, часть схемы на ОУ так же многим должна быть знакома понятна. Дисплей применен на 2 строки по 16 символов.



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

Первая часть схемы:

Открыть схему в большем разрешении.



Вторая часть схемы не полная, часть элементов вырезал для уменьшения схемы, ниже в архиве можете скачать все схемы (полные варианты), фото дорожек печатной платы которую можно использовать для метода ЛУТ, и проект микроконтроллерной части.


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


Измеряем ток замкнув + и - через резистор 5R, ток КЗ вышел около 250 ампер, понятно, что столько выжать нереально.

доступная для повторения версия MPLAB-ICD2 дебаггера (внутрисхемного отладчика - программатора PIC контроллеров серий PIC12F, PIC16F, PIC18F и dsPIC30F) компании Microchip.

Несколько несложных самоделок на PIC контроллерах

PIC-контроллеры для начинающих

часы - термометр

Пример программирования устройства на PIC-контроллере при помощи ICD2-SeVeN дебаггера и пакета MPLAB

  • динамическая индикация на LED индикаторах
  • динамическое сканирование клавиатуры
  • часы реального времени
  • организация иерархического меню настроек
  • электронный термометр

декодер RC5 кода

Считывание кода RC-5 при помощи PIC - контроллера

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

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

С помощью небольшой подпрограммы вы получаете возможность считывания кода от стандартного пульта, работающего с кодом RC-5.

контроль протока воды

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

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

контроль работоспособности инкрементальных энкодеров

Прибор контроля работоспособности инкрементальных энкодеров

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

(программный проект на microC PRO)

изготовление печатных плат

Способ изготовления печатных плат

Описанный способ позволяет изготавливать печатные платы достаточно высокого качества, пригодные как для обычного, так и для SMD монтажа. Способ достаточно прост. Из оборудования требуется лишь лазерный принтер и утюг.

Доработка Microlab Solo3C

Несложная доработка начального уровня мультимедийных колонок Microlab Solo3C с целью устранения искажений сигнала и коррекции амплитудно - частотной характеристики (один из возможных вариантов)


Блок дополнительного охлаждения

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

Читайте также: