Часы термометр на микроконтроллере pic18f2550: Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)

Содержание

Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)

РадиоКот >Лаборатория >Цифровые устройства >

Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)

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

Основой термометра является микроконтроллер PIC16F84, который осуществляет опрос интегральных термодатчиков DS18B20 и отображение информации на дисплее. Информация отображается на 10-разрядном 7-сегментном дисплее MT10T7-7T со встроенным контроллером производства компании «МЭЛТ». Подробное описание дисплея можно найти на сайте компании: https://www.

melt.aha.ru.

Микросхема DS18B20 это термометр с цифровым вводом/выводом, работающий с точностью +0.5°C. Данные считываются через 1-проводную последовательную шину в дополнительном от 9 до 12 битном (программируется пользователем) коде с ценой младшего разряда от 0.5°C до 0.0625°C.

Устройство выглядит следующим образом:

На индикаторе символ «d» обозначает «дом», символ «u» — улица. В свободном на снимке разряде между символом «u» и значением температуры появляется знак «» при отрицательных значениях температуры.

Внутренности градусника:

А так размещен датчик на улице:

Датчик, измеряющий температуру в комнате находится внутри корпуса устройства. В корпусе просверлено несколько отверстий в месте расположения датчика. Датчик, измеряющий уличную температуру, помещен в подходящий пластмассовый корпус, наполненный теплопроводной пастой КПТ-8 и заизолирован от влаги герметиком.

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

Файлы:
Прошивка — 01.rar
Плата — 02.rar

Все вопросы — сюда.


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

Часы с термометром на микроконтроллере

Подробности
Категория: Микроконтроллеры
Опубликовано 15.06.2016 13:34
Автор: Admin
Просмотров: 2259

Простые часы с термометром на микроконтроллере AVR ATtiny2313 с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS1307 — часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B20.

 Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.

 Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.

Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения. Измеренная температура округляется до целого значения. На дисплее имеются специальные символы повашения температуры (стрелка вверх) и понижения температуры (стрелка вниз), которые показывают как изменилась температура повисилась она или понизилась.

 Если нажать на кнопке «меньше» то на дисплее сразу отобразится время. Если кнопку «больше» то отобразится температура последнего измеренного значения и начнется новый процесс измеерения температуры и новое значение отобразиться на дисплее в этом случае точность составит десятые доли и в таком формате будет отображатся в течении минуты. Если датчик температуры неисправен или отсутсвует подключение то будет оторажаться только время.

Схема часов с термометром на микроконтроллере

 

Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен. 

Прошивка для микроконтроллера

В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.

Скачать: прошивка микроконтроллера

Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки «ввод». После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки «больше» и «менеше». Для того чтобы перейти в режим установки часов необходимо нажать на кнопку «ввод». Для того чтобы сохранить выбранное время нужно также нажать и удерживать кнопку «ввод» после этого программа выйдет из режима установки времени. Если после этих всех операций в течении 10 секунд не будет нажата какия нибудь кнопка то часы перейдут в рабочее состояние и новое значение времени не будет сохраненно.

Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.

Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.

Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.

Исходник статьи: Часы-термометр

  • < Назад
  • Вперёд >
Добавить комментарий

Конструкции на микроконтроллерах



Назначение этого термометра всего лишь показывать температуру. Небольшие отлиия от других подобных схем только в формате вывода температуры на LED индикатор, который представляет из себя 4-х разрядный сверхяркий  CA04-41SRWA. В качестве датчика температуры применён DS18B20 в обычном включении с отдельным проводом питания. Схема расчитана на питание от батареек…

    Генератор с регулируемой частотой и скважностью
Генератор позволяет генерировать прямоугольный импульсный сигнал в широком диапазоне частот от 0,01 Гц до 60 КГц. Коэффициент заполнения импульсом (скважность) регулируется от 3 до 97 %. Применить данный регулируемый генератор импульсов возможно при самых различных видах работ по настройке узлов и схем электронной аппаратуры.
       Generator with variable frequency and pulse ratio
Generator allows to generate square wave signal with frequency varying from 0,01 Hz to 60 kHz. Pulse ratio adjustments go from  3 to 97 %.  This generator can be used differently for adjustments of units and  electronics circuits, to control circuits of switched power supplies, to estimate settings of low-frequency amplifier when square wave signal is passing, it is used for digital circuits.  
Наличие «железного» COM порта например в ноутбуке в настоящее время большая редкость. Данная статья о том, как изготовить самодельный переходник USB — COM из легкодоступных комплектующих, найти которые можно буквально на каждом углу,.В  общем салон сотовой связи как правило такие переходники продаёт в ассортименте…
.Хорошо известен и широко распространён сегодня датчик температуры DS18B20. Дёшев, легко купить, малогабаритный, надёжный. Может работать в сетях, когда на одном двухпроводном кабеле подключено несколько датчиков. Очень удобен, но требует для работы наличия микроконтроллера. А там где микроконтроллер, там и своя электронная схема и программа. При использовании переходника USB_USART схема выходит достаточно простой 
. Этот программатор  объединяет в одном устройстве несколько вариантов программирования. Предназначен для программирования PIC — микроконтроллеров и микросхем памяти типа 24Cxxx.
Поддержаны протоколы связи с компьютером через USB и COM порт.
Совместно с программатором возможно использовать такие программы, как IC-Prog и PonyProg — схема содержит JDM программатор.

Часы и таймеры повышенной точности на микроконтроллерах
Схема таймера под индикаторы с общим катодом


Выкладываю схему и прошивку под индикаторы с общим катодом. Не всегда есть возможность приобрести нужные индикаторы. Эта схема таймера — поможет в этом случае. В схеме есть отличия от предыдущих схем с индикаторами с общим анодом, которые необходимо учитывать. Собран таймер на микроконтроллере PIC 16F628A.

Часы — таймер для аквариума на микроконтроллере PIC16F628A  (timer_4c)


Проектировался этот таймер, как таймер для аквариума и предназначен для включения/выключения освещения в аквариуме с циклом в одни сутки. Малое энергопотребление схемы позволяет применить конденсаторный источник питания от сети.
   Таймер сделан на основе программы, в которой реализованы кратковременные подсказки названий режимов индикации. Описание работы программы соответствует программе часов, с питанием от батареек.

Будильник — часы на микроконтроллере PIC16F628A с внешним питанием (clock_4c_02)


Так как ресурс работы батареек мал, здесь размещена схема часов, рассчитанная на применение внешнего источника питания.
 При использовании маломощного сверхяркого индикатора (такого как CA04-41SRWA) и обычных пальчиковых или мизинчиковых батареек необходимости отключать индикатор во время отсутствия сетевого напряжения нет. Можно использовать любую из прошивок для clock_4c.

Часы — будильник на микроконтроллере PIC16F628A с питанием от батареек (clock_4c)


Очень простая схема часов, рассчитанная на питание от батареи, напряжением 4,5 В.
Несмотря на простоту схемы, в программе реализовано достаточно много функций:
  — отсчёт часов(0…23 с гашением незначащего нуля), минут, секунд, даты, месяца, дня недели, года
  — определение количества дней в феврале для високосного года
  — переход на летнее/зимнее время в последнее воскресенье марта и октября
  — коррекция хода часов с точностью 1 микросекунда в секунду (30 секунд в год)
  — регулируемая яркость индикаторов
  — двухтональный сигнал сирены будильника
  — звуковое подтверждение нажатия кнопок
  — 9 режимов индикации с подсказками названий режимов

Часы — таймер на микроконтроллере PIC16F628A с защитой от перебоев в питании (timer_a)


Одна из моих первых разработок — таймер для управления освещением аквариума. Выбор комплектующих здесь не очень удачен (ставил то что было под рукой). Тем не менее и схема таймера и программа проверены неоднократно, и не только мной. Это устройство в данное время безотказно включает и выключает свет у меня в аквариуме.

Обновлённые прошивки

Прошивка для Clock_4c_02 с отключенным переходом на летнее/зимнее время (16 января 2012 года)
HEX:   Clock_4c_02_noplzv 
Печатные платы для конструкций часов, которые здесь описаны. Clock4c_Alex.rar                        — печатка для часов с контролем внешнего питания под смд детали и
 так же фото готового изделия и прошивки,а именно стандартная прошивка в которой отключен переход лето зима,а так же прошивку под двухточечный часовой дисплей са56-21,в обычном режиме мигают обе точки,при включеном будильнике верхняя горит постоянно,а нижняя мигает. Timer4c_plata_SK.rar                — Печатная плата для таймера Timer_4c от Сергея Кондратович из Луганска (maverick5334)
Timer4c_plata_SK1.rar              — Доработано 4.06.2010 plat_timer_dsorokin.rar               — Вариант платы для таймера с кратковременными подсказками названий режимов.Файл в формате layout 5 с использованием SMD компонентов и индикатора BQ-M326RD (от dsorokin) Clock_4C_02a_control.rar         — Плата для часов с внешним питанием и индикаторами Kingbright SA08-11SRWA в lay 5.0 формате(От КД213) Clock_4c_bat_Vadan_plata.rar  — Плата для батарейного варианта Clock_4c. (формат layout5) Clock_a_Vadan_plata.rar           — Ещё одна плата для часов — тех что на «Радиокот». (формат layout5)

Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20. — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

Начну из далека. Года два назад, когда я начал осваивать микроконтроллеры PIC16,  мне естественно хотелось собрать действующую схему. Был закуплен самый дешевый программатор, собрана схема, естественно самые простые часы на PIC16F84A. Все собрал, прошил, запустил, начал тестировать и понял, что это фигня. После примерно месяца работы, часы сбивались. Собрал еще одни на PIC16F628A с резервным питанием вроде, но они тоже через несколько месяцев работы сбивались. Понял я, что делать часы только на микроконтроллере не очень хорошая идея. Ну и естественно мой взор привлекли часы реального времени DS1307 с интерфейсом I2C. В сети достаточно много схем на этих микросхемах. Нашел, на мой взгляд самую оптимальную для себя с сайта:  http://c2.at.ua/load/pic/prostye_chasy_termometr_s_poocherednoj_smenoj_indikacii/12-1-0-136

Собрал, прошил, запустил. Отличные часы, простые, температуру показывают. Вроде все ничего, но при включение высвечивается на несколько секунд надпись «Soir». Возможно программист решил таким образом увековечить свой труд, но на мой взгляд это как то не правильно.  С этим я смерился. Собрал я этих часов аж три экземпляра. Но вдруг оказалось, что датчика температуры DS18B20 у меня больше нет, но осталось 3 датчика DS18S20. Это и оказалось тем решающим фактором, который подвиг меня на написание своей программы для этих часов. Ну, почти этих, все таки одну перемычку все же пришлось добавить.  К этому времени я уже достаточно поднаторел в программировании PIC контроллеров, опять же как мне кажется. Ну в общем все получилось. Все изготовленные мной ранее   часы были перепрошиты и уже несколько недель успешно работаю, вроде даже без нареканий. Соответственно две прошивки, для DS18B20 и DS18S20. Ну вот и вся история.

Соответственно  прошивка  для датчика температуры DS18S20:

 Файлы к статье Часы термометр на PIC16F628A

 для датчика температуры DS18B20:

 Файлы к статье Часы термометр на PIC16F628A

PROTEUS:

DS18S20:  Файлы к статье Часы термометр на PIC16F628A

DS18B20:  Файлы к статье Часы термометр на PIC16F628A

Печатная плата с контроллером: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

Плата индикатора: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

Плата кнопок: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

% PDF-1.6 % 40123 0 obj> эндобдж xref 40123 842 0000000016 00000 н. 0000023306 00000 п. 0000023442 00000 п. 0000023628 00000 п. 0000023668 00000 п. 0000023724 00000 п. 0000023770 00000 п. 0000023832 00000 п. 0000024044 00000 п. 0000024189 00000 п. 0000024364 00000 п. 0000025182 00000 п. 0000025831 00000 п. 0000026344 00000 п. 0000026974 00000 п. 0000031711 00000 п. 0000031944 00000 п. 0000032274 00000 п. 0000033010 00000 п. 0000033624 00000 п. 0000033808 00000 п. 0000034241 00000 п. 0000034933 00000 п. 0000035024 00000 п. 0000035213 00000 п. 0000035873 00000 п. 0000036349 00000 п. 0000036809 00000 п. 0000037251 00000 п. 0000037691 00000 п. 0000038146 00000 п. 0000038629 00000 п. 0000039044 00000 н. 0000045271 00000 п. 0000050869 00000 п. 0000050932 00000 п. 0000051044 00000 п. 0000051148 00000 п. 0000051199 00000 п. 0000051352 00000 п. 0000051464 00000 п. 0000051577 00000 п. 0000051710 00000 п. 0000051828 00000 п. 0000051927 00000 п. 0000052081 00000 п. 0000052236 00000 п. 0000052389 00000 п. 0000052524 00000 п. 0000052690 00000 п. 0000052786 00000 п. 0000052950 00000 п. 0000053054 00000 п. 0000053161 00000 п. 0000053323 00000 п. 0000053437 00000 п. 0000053583 00000 п. 0000053727 00000 п. 0000053897 00000 п. 0000054045 00000 п. 0000054198 00000 п. 0000054359 00000 п. 0000054494 00000 п. 0000054633 00000 п. 0000054797 00000 п. 0000054948 00000 п. 0000055098 00000 п. 0000055267 00000 п. 0000055412 00000 п. 0000055529 00000 п. 0000055702 00000 п. 0000055852 00000 п. 0000055996 00000 п. 0000056173 00000 п. 0000056345 00000 п. 0000056497 00000 п. 0000056657 00000 п. 0000056789 00000 п. 0000056954 00000 п. 0000057143 00000 п. 0000057272 00000 п. 0000057423 00000 п. 0000057639 00000 п. 0000057780 00000 п. 0000057935 00000 п. 0000058120 00000 п. 0000058240 00000 п. 0000058375 00000 п. 0000058539 00000 п. 0000058647 00000 п. 0000058807 00000 п. 0000058975 00000 п. 0000059133 00000 п. 0000059276 00000 п. 0000059459 00000 п. 0000059607 00000 п. 0000059751 00000 п. 0000059925 00000 н. 0000060061 00000 п. 0000060195 00000 п. 0000060349 00000 п. 0000060477 00000 п. 0000060655 00000 п. 0000060809 00000 п. 0000060953 00000 п. 0000061090 00000 п. 0000061244 00000 п. 0000061375 00000 п. 0000061536 00000 п. 0000061690 00000 н. 0000061821 00000 п. 0000061964 00000 п. 0000062115 00000 п. 0000062235 00000 п. 0000062393 00000 п. 0000062545 00000 п. 0000062685 00000 п. 0000062843 00000 п. 0000063008 00000 п. 0000063106 00000 п. 0000063240 00000 п. 0000063398 00000 п. 0000063549 00000 п. 0000063694 00000 п. 0000063855 00000 п. 0000064007 00000 п. 0000064178 00000 п. 0000064336 00000 п. 0000064487 00000 п. 0000064656 00000 п. 0000064802 00000 п. 0000064939 00000 п. 0000065088 00000 п. 0000065246 00000 п. 0000065401 00000 п. 0000065555 00000 п. 0000065720 00000 п. 0000065853 00000 п. 0000065993 00000 п. 0000066148 00000 п. 0000066289 00000 п. 0000066450 00000 п. 0000066574 00000 п. 0000066675 00000 п. 0000066794 00000 п. 0000066907 00000 н. 0000067026 00000 п. 0000067133 00000 п. 0000067262 00000 п. 0000067380 00000 п. 0000067506 00000 п. 0000067621 00000 п. 0000067727 00000 н. 0000067860 00000 п. 0000067983 00000 п. 0000068130 00000 п. 0000068279 00000 п. 0000068427 00000 н. 0000068532 00000 п. 0000068658 00000 п. 0000068786 00000 п. 0000068903 00000 п. 0000069061 00000 п. 0000069238 00000 п. 0000069352 00000 п. 0000069500 ​​00000 п. 0000069667 00000 п. 0000069773 00000 п. 0000069949 00000 н. 0000070104 00000 п. 0000070265 00000 п. 0000070418 00000 п. 0000070535 00000 п. 0000070700 00000 п. 0000070807 00000 п. 0000070970 00000 п. 0000071122 00000 п. 0000071277 00000 п. 0000071456 00000 п. 0000071617 00000 п. 0000071762 00000 п. 0000071911 00000 п. 0000072059 00000 п. 0000072176 00000 п. 0000072305 00000 п. 0000072423 00000 п. 0000072512 00000 п. 0000072616 00000 п. 0000072784 00000 п. 0000072933 00000 п. 0000073066 00000 п. 0000073166 00000 п. 0000073277 00000 п. 0000073427 00000 п. 0000073525 00000 п. 0000073665 00000 п. 0000073790 00000 п. 0000073933 00000 п. 0000074086 00000 п. 0000074222 00000 п. 0000074377 00000 п. 0000074532 00000 п. 0000074667 00000 п. 0000074808 00000 п. 0000074922 00000 п. 0000075075 00000 п. 0000075236 00000 п. 0000075350 00000 п. 0000075472 00000 п. 0000075571 00000 п. 0000075680 00000 п. 0000075820 00000 п. 0000075990 00000 п. 0000076085 00000 п. 0000076260 00000 п. 0000076396 00000 п. 0000076554 00000 п. 0000076662 00000 н. 0000076805 00000 п. 0000076965 00000 п. 0000077071 00000 п. 0000077225 00000 п. 0000077385 00000 п. 0000077520 00000 п. 0000077644 00000 п. 0000077738 00000 п. 0000077852 00000 п. 0000077974 00000 п. 0000078125 00000 п. 0000078244 00000 п. 0000078377 00000 п. 0000078536 00000 п. 0000078703 00000 п. 0000078872 00000 п. 0000079049 00000 н. 0000079190 00000 п. 0000079314 00000 п. 0000079439 00000 п. 0000079599 00000 н. 0000079745 00000 п. 0000079905 00000 н. 0000080023 00000 п. 0000080168 00000 п. 0000080331 00000 п. 0000080424 00000 п. 0000080566 00000 п. 0000080729 00000 п. 0000080831 00000 п. 0000080979 00000 п. 0000081079 00000 п. 0000081250 00000 п. 0000081358 00000 п. 0000081526 00000 п. 0000081642 00000 п. 0000081763 00000 п. 0000081860 00000 п. 0000082027 00000 н. 0000082187 00000 п. 0000082329 00000 п. 0000082463 00000 п. 0000082576 00000 п. 0000082743 00000 н. 0000082888 00000 п. 0000083032 00000 п. 0000083176 00000 п. 0000083287 00000 п. 0000083406 00000 п. 0000083548 00000 п. 0000083704 00000 п. 0000083900 00000 п. 0000084067 00000 п. 0000084226 00000 п. 0000084384 00000 п. 0000084498 00000 п. 0000084659 00000 п. 0000084769 00000 п. 0000084930 00000 п. 0000085067 00000 п. 0000085193 00000 п. 0000085310 00000 п. 0000085433 00000 п. 0000085605 00000 п. 0000085734 00000 п. 0000085854 00000 п. 0000086021 00000 п. 0000086169 00000 п. 0000086340 00000 п. 0000086466 00000 п. 0000086597 00000 п. 0000086753 00000 п. 0000086906 00000 п. 0000087057 00000 п. 0000087207 00000 п. 0000087344 00000 п. 0000087476 00000 п. 0000087608 00000 п. 0000087729 00000 п. 0000087842 00000 п. 0000087985 00000 п. 0000088100 00000 п. 0000088277 00000 н. 0000088402 00000 п. 0000088538 00000 п. 0000088650 00000 п. 0000088764 00000 п. 0000088885 00000 п. 0000089020 00000 н. 0000089153 00000 п. 0000089281 00000 п. 0000089433 00000 п. 0000089542 00000 п. 0000089652 00000 п. 0000089785 00000 п. 0000089914 00000 н. 00000 00000 п. 00000 00000 п. 00000

  • 00000 п. 00000

    00000 п. 00000 00000 п. 00000 00000 п. 00000

    00000 п. 00000 00000 п. 00000 00000 н. 00000

    00000 п. 00000

    00000 п. 00000

    00000 п. 00000

  • 00000 п. 0000091784 00000 п. 0000091937 00000 п. 0000092079 00000 п. 0000092223 00000 п. 0000092376 00000 п. 0000092518 00000 п. 0000092660 00000 п. 0000092813 00000 п. 0000092962 00000 н. 0000093112 00000 п. 0000093268 00000 н. 0000093400 00000 п. 0000093535 00000 п. 0000093685 00000 п. 0000093779 00000 п. 0000093894 00000 п. 0000094045 00000 п. 0000094217 00000 п. 0000094331 00000 п. 0000094468 00000 п. 0000094640 00000 п. 0000094754 00000 п. 0000094892 00000 п. 0000095065 00000 п. 0000095178 00000 п. 0000095314 00000 п. 0000095487 00000 п. 0000095601 00000 п. 0000095738 00000 п. 0000095864 00000 п. 0000095990 00000 п. 0000096116 00000 п. 0000096243 00000 п. 0000096354 00000 п. 0000096493 00000 п. 0000096619 00000 п. 0000096730 00000 н. 0000096880 00000 п. 0000096983 00000 п. 0000097163 00000 п. 0000097291 00000 п. 0000097420 00000 н. 0000097537 00000 п. 0000097695 00000 п. 0000097841 00000 п. 0000097995 00000 н. 0000098112 00000 п. 0000098270 00000 п. 0000098412 00000 п. 0000098579 00000 п. 0000098710 00000 п. 0000098868 00000 н. 0000098986 00000 п. 0000099128 00000 н. 0000099254 00000 п. 0000099381 00000 п. 0000099515 00000 н. 0000099674 00000 н. 0000099789 00000 н. 0000099936 00000 н. 0000100054 00000 н. 0000100171 00000 н. 0000100300 00000 п 0000100417 00000 н. 0000100577 00000 н. 0000100707 00000 н. 0000100865 00000 н. 0000100981 00000 н. 0000101122 00000 п. 0000101244 00000 н. 0000101395 00000 н. 0000101548 00000 н. 0000101657 00000 н. 0000101807 00000 н. 0000101961 00000 н. 0000102070 00000 н. 0000102212 00000 н. 0000102378 00000 п. 0000102538 00000 н. 0000102686 00000 н. 0000102819 00000 п. 0000102923 00000 н. 0000103069 00000 н. 0000103200 00000 н. 0000103321 00000 п. 0000103454 00000 п. 0000103586 00000 п. 0000103740 00000 н. 0000103866 00000 н. 0000103998 00000 н. 0000104117 00000 п. 0000104251 00000 н. 0000104409 00000 н. 0000104505 00000 н. 0000104647 00000 н. 0000104800 00000 н. 0000104880 00000 н. 0000105000 00000 н. 0000105110 00000 н. 0000105248 00000 н. 0000105397 00000 п. 0000105555 00000 н. 0000105672 00000 п. 0000105839 00000 н. 0000105934 00000 н. 0000106107 00000 п. 0000106213 00000 н. 0000106351 00000 п. 0000106487 00000 н. 0000106614 00000 н. 0000106780 00000 н. 0000106928 00000 н. 0000107075 00000 п. 0000107245 00000 н. 0000107380 00000 п. 0000107545 00000 н. 0000107678 00000 п. 0000107838 00000 п. 0000107956 00000 п. 0000108096 00000 н. 0000108255 00000 н. 0000108371 00000 н. 0000108514 00000 н. 0000108682 00000 н. 0000108825 00000 н. 0000108962 00000 н. 0000109119 00000 п. 0000109214 00000 п. 0000109309 00000 н. 0000109465 00000 н. 0000109596 00000 н. 0000109739 00000 п. 0000109834 00000 п. 0000109980 00000 н. 0000110086 00000 н. 0000110208 00000 н. 0000110373 00000 п. 0000110501 00000 п. 0000110612 00000 п. 0000110739 00000 п. 0000110895 00000 п. 0000111037 00000 н. 0000111203 00000 н. 0000111360 00000 н. 0000111480 00000 н. 0000111650 00000 н. 0000111842 00000 н. 0000111997 00000 н. 0000112145 00000 н. 0000112293 00000 н. 0000112419 00000 н. 0000112582 00000 н. 0000112740 00000 н. 0000112870 00000 н. 0000113002 00000 н. 0000113165 00000 н. 0000113304 00000 н. 0000113475 00000 н. 0000113579 00000 п. 0000113702 00000 н. 0000113878 00000 н. 0000114015 00000 н. 0000114129 00000 н. 0000114274 00000 н. 0000114419 00000 н. 0000114562 00000 н. 0000114669 00000 н. 0000114816 00000 н. 0000114960 00000 н. 0000115126 00000 н. 0000115294 00000 н. 0000115411 00000 н. 0000115586 00000 н. 0000115711 00000 н. 0000115892 00000 н. 0000116063 00000 н. 0000116190 00000 н. 0000116377 00000 н. 0000116499 00000 н. 0000116677 00000 н. 0000116794 00000 н. 0000116973 00000 н. 0000117104 00000 н. 0000117227 00000 н. 0000117385 00000 н. 0000117483 00000 н. 0000117642 00000 н. 0000117739 00000 п. 0000117834 00000 н. 0000117947 00000 н. 0000118062 00000 н. 0000118178 00000 н. 0000118329 00000 н. 0000118419 00000 н. 0000118533 00000 н. 0000118644 00000 н. 0000118750 00000 н. 0000118852 00000 н. 0000119001 00000 п. 0000119124 00000 н. 0000119282 00000 н. 0000119426 00000 н. 0000119567 00000 н. 0000119747 00000 н. 0000119900 00000 н. 0000120014 00000 н. 0000120132 00000 н. 0000120297 00000 н. 0000120421 00000 н. 0000120552 00000 н. 0000120697 00000 н. 0000120845 00000 н. 0000121006 00000 н. 0000121127 00000 н. 0000121253 00000 н. 0000121445 00000 н. 0000121595 00000 н. 0000121718 00000 н. 0000121869 00000 н. 0000121989 00000 н. 0000122096 00000 н. 0000122229 00000 н. 0000122350 00000 н. 0000122486 00000 н. 0000122657 00000 н. 0000122782 00000 н. 0000122920 00000 н. 0000123034 00000 н. 0000123188 00000 н. 0000123299 00000 н. 0000123461 00000 н. 0000123569 00000 н. 0000123688 00000 н. 0000123840 00000 н. 0000123956 00000 н. 0000124108 00000 н. 0000124245 00000 н. 0000124387 00000 н. 0000124539 00000 н. 0000124684 00000 н. 0000124819 00000 н. 0000124940 00000 н. 0000125064 00000 н. 0000125184 00000 н. 0000125350 00000 н. 0000125475 00000 н. 0000125609 00000 н. 0000125742 00000 н. 0000125912 00000 н. 0000126069 00000 н. 0000126219 00000 н. 0000126353 00000 п. 0000126543 00000 н. 0000126657 00000 н. 0000126838 00000 н. 0000126941 00000 н. 0000127094 00000 н. 0000127223 00000 н. 0000127371 00000 н. 0000127525 00000 н. 0000127642 00000 н. 0000127813 00000 н. 0000127961 00000 н. 0000128121 00000 н. 0000128248 00000 н. 0000128407 00000 н. 0000128562 00000 н. 0000128681 00000 н. 0000128829 00000 н. 0000128942 00000 н. 0000129094 00000 н. 0000129232 00000 н. 0000129380 00000 н. 0000129543 00000 н. 0000129700 00000 н. 0000129898 00000 н. 0000130075 00000 н. 0000130237 00000 н. 0000130435 00000 н. 0000130607 00000 н. 0000130779 00000 н. 0000130909 00000 н. 0000131067 00000 н. 0000131225 00000 н. 0000131391 00000 н. 0000131558 00000 н. 0000131724 00000 н. 0000131885 00000 н. 0000132044 00000 н. 0000132210 00000 н. 0000132373 00000 н. 0000132548 00000 н. 0000132714 00000 н. 0000132877 00000 н. 0000133044 00000 н. 0000133204 00000 н. 0000133360 00000 н. 0000133526 00000 н. 0000133647 00000 н. 0000133797 00000 н. 0000133947 00000 н. 0000134102 00000 н. 0000134218 00000 н. 0000134334 00000 н. 0000134486 00000 н. 0000134598 00000 н. 0000134727 00000 н. 0000134883 00000 н. 0000135020 00000 н. 0000135160 00000 н. 0000135269 00000 н. 0000135396 00000 н. 0000135579 00000 п. 0000135729 00000 н. 0000135868 00000 н. 0000136053 00000 н. 0000136175 00000 н. 0000136317 00000 н. 0000136448 00000 н. 0000136608 00000 н. 0000136731 00000 н. 0000136877 00000 н. 0000137058 00000 н. 0000137223 00000 н. 0000137360 00000 н. 0000137508 00000 н. 0000137627 00000 н. 0000137780 00000 н. 0000137929 00000 н. 0000138062 00000 н. 0000138197 00000 н. 0000138315 00000 н. 0000138465 00000 н. 0000138614 00000 н. 0000138766 00000 н. 0000138882 00000 н. 0000139012 00000 н. 0000139145 00000 н. 0000139322 00000 н. 0000139436 00000 н. 0000139581 00000 п. 0000139750 00000 н. 0000139862 00000 н. 0000140008 00000 н. 0000140136 00000 п. 0000140266 00000 н. 0000140392 00000 н. 0000140537 00000 п. 0000140681 00000 п. 0000140817 00000 н. 0000140942 00000 н. 0000141080 00000 н. 0000141199 00000 н. 0000141334 00000 н. 0000141456 00000 н. 0000141616 00000 н. 0000141727 00000 н. 0000141852 00000 н. 0000142013 00000 н. 0000142125 00000 н. 0000142238 00000 н. 0000142359 00000 п. 0000142524 00000 н. 0000142633 00000 н. 0000142764 00000 н. 0000142910 00000 н. 0000143058 00000 н. 0000143177 00000 н. 0000143300 00000 н. 0000143433 00000 н. 0000143584 00000 н. 0000143722 00000 н. 0000143857 00000 н. 0000143980 00000 н. 0000144133 00000 п. 0000144255 00000 н. 0000144414 00000 н. 0000144552 00000 н. 0000144690 00000 н. 0000144810 00000 н. 0000144922 00000 н. 0000145075 00000 н. 0000145203 00000 н. 0000145394 00000 н. 0000145547 00000 н. 0000145651 00000 н. 0000145812 00000 н. 0000145908 00000 н. 0000146039 00000 н. 0000146152 00000 н. 0000146333 00000 п. 0000146488 00000 н. 0000146609 00000 н. 0000146773 00000 н. 0000146885 00000 н. 0000146999 00000 н. 0000147158 00000 н. 0000147323 00000 н. 0000147486 00000 н. 0000147615 00000 н. 0000147726 00000 н. 0000147855 00000 н. 0000148006 00000 н. 0000148144 00000 н. 0000148285 00000 н. 0000148455 00000 н. 0000148555 00000 н. 0000148686 00000 н. 0000148817 00000 н. 0000148990 00000 н. 0000149114 00000 п. 0000149249 00000 н. 0000149395 00000 н. 0000149549 00000 н. 0000149687 00000 н. 0000149813 00000 п. 0000149978 00000 н. 0000150158 00000 н. 0000150336 00000 н. 0000150511 00000 н. 0000150685 00000 н. 0000150857 00000 н. 0000151030 00000 н. 0000151204 00000 н. 0000151377 00000 н. 0000151553 00000 н. 0000151728 00000 н. 0000151902 00000 н. 0000152077 00000 н. 0000152252 00000 н. 0000152408 00000 н. 0000152550 00000 н. 0000152712 00000 н. 0000152894 00000 н. 0000153022 00000 н. 0000153140 00000 н. 0000153258 00000 н. 0000153371 00000 н. 0000153508 00000 н. 0000153648 00000 н. 0000153787 00000 н. 0000153917 00000 н. 0000154049 00000 н. 0000154206 00000 н. 0000154360 00000 н. 0000154491 00000 н. 0000154637 00000 н. 0000154783 00000 н. 0000154922 00000 н. 0000155038 00000 н. 0000155154 00000 н. 0000155317 00000 н. 0000155554 00000 н. 0000155678 00000 н. 0000155810 00000 н. 0000156010 00000 н. 0000156213 00000 н. 0000156363 00000 н. 0000156517 00000 н. 0000156650 00000 н. 0000156790 00000 н. 0000156923 00000 н. 0000157065 00000 н. 0000157186 00000 н. 0000157346 00000 н. 0000157482 00000 н. 0000157626 00000 н. 0000157757 00000 н. 0000157955 00000 н. 0000158119 00000 н. 0000158277 00000 н. 0000158415 00000 н. 0000158557 00000 н. 0000158685 00000 н. 0000158833 00000 н. 0000158991 00000 н. 0000159146 00000 н. 0000159310 00000 н. 0000159458 00000 н. 0000159600 00000 н. 0000159757 00000 н. 0000159923 00000 н. 0000160071 00000 н. 0000160201 00000 н. 0000160363 00000 п. 0000160505 00000 н. 0000160659 00000 н. 0000160810 00000 н. 0000160978 00000 н. 0000161129 00000 н. 0000161293 00000 н. 0000161445 00000 н. 0000161609 00000 н. 0000161760 00000 н. 0000161919 00000 н. 0000162080 00000 н. 0000162234 00000 н. 0000162383 00000 н. 0000162584 00000 н. 0000162716 00000 н. 0000162901 00000 н. 0000163043 00000 н. 0000163172 00000 н. 0000163371 00000 н. 0000163533 00000 н. 0000163676 00000 н. 0000163833 00000 н. 0000163991 00000 н. 0000164172 00000 н. 0000164322 00000 н. 0000164483 00000 н. 0000164643 00000 н. 0000164761 00000 н. 0000164897 00000 н. 0000017495 00000 п. трейлер ] >> startxref 0 %% EOF 40964 0 obj> поток / eQgX`; _TS> CS ~

    PIC18F2550 Распиновка микроконтроллера, программирование, приложения, особенности

    Микроконтроллер PIC18F2550 — это 8-битный микроконтроллер, разработанный MICROCHIP.Это один из самых дешевых микроконтроллеров серии PIC18FXXXX. Он популярен благодаря своей производительности, дешевизне и множеству функций. Микроконтроллер PIC18F2250 может напрямую взаимодействовать с другим ПК. Он имеет множество вспомогательных материалов в Интернете из-за его популярности, и это одна из причин, по которой его используют большинство разработчиков и инженеров. Микроконтроллер может поддерживать активность периферийного устройства, когда ядро ​​ЦП находится в режиме ожидания, а использование внутреннего генератора также приводит к экономии энергии контроллером до 90% .

    PIC18F2550 Конфигурация контактов

    Распиновка, включая детали всех контактов и периферийных устройств, указана ниже:

    PIC18F2550 Функции и периферийные устройства

    В этом разделе мы увидим все функции и подробную информацию о доступных встроенных функциях.

    КОНТАКТЫ ЦИФРОВОГО ВЫХОДА

    Микроконтроллер имеет четыре порта GPIO (A, B, C и E). Вместо E все порты обеспечивают функцию вывода.Выходной контакт подключается к порту A, и B дает логику TTL, но выход порта C поступает в логику ST. Выходные контакты на PIC18F2250:

    • RA0 — GPIO2
    • RA1 — GPIO3
    • RA2 — GPIO4
    • RA3 — GPIO5
    • RA4 — GPIO6
    • RA5 — GPIO7
    • RA6 — GPIO10
    • RB0 — GPIO21
    • РБ1 — GPIO22
    • РБ2 — GPIO23
    • РБ3 — GPIO24
    • РБ4 — GPIO25
    • РБ5 — GPIO26
    • РБ6 — GPIO27
    • РБ7 — GPIO28
    • RC0 — GPIO11
    • RC1 — GPIO12
    • RC2 — GPIO13
    • RC6 — GPIO17
    • RC7 — GPIO18

    Проверьте это руководство: Как использовать выводы GPIO микроконтроллеров Pic

    КОНТАКТЫ ЦИФРОВОГО ВХОДА

    В PIC18F2550 количество входных контактов больше, чем у любых других контактов.Каждый порт имеет возможность ввода. Входные контакты на портах A и B все входные контакты могут работать с входом TTL, но в порте C (RC4 и RC5) могут работать только с входом TTL, для других контактов на портах C и E требуется логика ST, иначе это может вызвать проблемы для программа микроконтроллера, чтобы понять и правильно работать. Список всех входных контактов:

    • RA0 — GPIO2
    • RA1 — GPIO3
    • RA2 — GPIO4
    • RA3 — GPIO5
    • RA4 — GPIO6
    • RA5 — GPIO7
    • RA6 — GPIO10
    • RB0 — GPIO21
    • РБ1 — GPIO22
    • РБ2 — GPIO23
    • РБ3 — GPIO24
    • РБ4 — GPIO25
    • РБ5 — GPIO26
    • РБ6 — GPIO27
    • РБ7 — GPIO28
    • RC0 — GPIO11
    • RC1 — GPIO12
    • RC2 — GPIO13
    • RC4 — GPIO14
    • RC5 — GPIO15
    • RC6 — GPIO16
    • RC7 — GPIO17

    Прочтите это руководство: ИСПОЛЬЗУЙТЕ ВХОДНЫЕ ВЫХОДНЫЕ ПОРТЫ МИКРОКОНТРОЛЛЕРА PIC18F452

    Функция прерывания PIC18F2550

    Каждое внешнее устройство требует функции прерывания в случае привлечения внимания ЦП, а PIC18F2550 имеет три контакта прерывания, которые можно использовать для приема входного сигнала для генерации прерывания в микроконтроллере.Контакты прерывания:

    • INT0 — GPIO21
    • IN1 — GPIO22
    • IN2 — GPIO23

    Прочтите эту статью по прерываниям: Как использовать внешнее прерывание микроконтроллера PIC18F452

    АСИНХРОННЫЕ ШТИФТЫ EUSART

    В настоящее время для большинства систем требуются системы последовательной связи, и система асинхронной последовательной связи Eusart является одной из самых популярных систем для последовательной связи. Он имеет отдельные контакты для передачи и приема данных, и оба могут использоваться одновременно.

    • прием — GPIO18
    • TX — GPIO17

    ПОСЛЕДОВАТЕЛЬНАЯ СВЯЗЬ С МИКРОКОНТРОЛЛЕРОМ PIC16F877A

    Связь SPI PIC18F2550

    Контроллеру иногда требуются внешние модули для выполнения связи, и некоторые из них используют метод связи SPI. Она известна как трехпроводная система связи, в которой используются два провода данных, один провод тактовых импульсов и третий провод, известный как выбор ведомого, который используется в случае нескольких периферийных устройств.Контакты SPI на PIC18F2550:

    • SDO (вывод данных) — GPIO18
    • SDI (вход данных) — GPIO21
    • SCK (тактовый импульс) — GPIO22
    • SS ’(выбор ведомого) — GPIO7

    I 2 C Связь PIC18F2550 Микроконтроллер

    Это двухпроводная последовательная связь, но она односторонняя. Он использует два провода, один используется для тактовых импульсов, а другие будут использоваться для передачи и приема данных. Тактовый импульс помогает контроллеру использовать несколько периферийных устройств одновременно.I 2 Выводы C в PIC18F2550 приведены ниже:

    • SDA — GPIO22
    • SCL — GPIO23

    Учебное пособие по микроконтроллеру PIC для связи I2C

    СИНХРОННЫЕ ШТИФТЫ EUSART

    У ИС есть несколько способов программирования, но ее можно запрограммировать посредством синхронного последовательного программирования. Для последовательного программирования контроллера будут использоваться три контакта: первый для часов, второй для передачи / приема данных и третий для программирования входной мощности.

    • В PP — GPIO1
    • СК — GPIO17
    • ДТ — GPIO18

    Последовательное программирование ICSP Pic18f2550

    Это известно как внутрисхемное последовательное программирование, при котором используется специальная схема программирования, разработанная компанией для MICROCHIP для программирования микроконтроллера с использованием HEX-файла программы. В этом процессе будут использоваться 6-контактные. Все эти контакты перечислены ниже:

    • MCLR ’- GPIO1
    • VDD — GPIO20
    • VSS — GPIO19
    • PGM — GPIO26
    • PGC — GPIO27
    • PGD — GPIO28

    Контакты USB

    В PIC18F2550 USB можно подключить напрямую к микроконтроллеру.Рисунок содержит полноскоростной и половинный интерфейс USB. USB может быть подключен через внутренний трансивер или внешний трансивер. Внутренний трансивер можно подключить к внешнему USB-интерфейсу, но он также может использовать внешний трансивер в случае необходимости. Контакты для обоих трансиверов указаны ниже:

    ВНЕШНИЙ ТРАНСИВЕР:

    • RCV — GPIO6
    • VMO — GPIO23
    • ВПО — GPIO24
    • UOE ’- GPIO12
    • ВМ — GPIO15
    • ВП — GPIO16

    ВНУТРЕННИЙ ТРАНСИВЕР:

    • В USB — GPIO14
    • D- — GPIO15
    • D + — GPIO16

    USB-коммуникационный микроконтроллер PIC

    ТАЙМЕРЫ PIC18F2550

    Всего в PIC18F2550 четыре таймера.Один таймер (Timer0) — 8-битный, а другие три (Timer1, Timer2, Timer3) — 16-битные. В PIC18F2550 Timer1 может использовать внешний генератор, отдельный от генератора микроконтроллера. Таймер 1 и таймер 3 — единственные таймеры, которые могут работать с внешним входным сигналом, Time0 и Timer2 работают только внутри:

    • T0CKI (вход внешнего таймера Timer0) — GPIO6
    • T1OSO (выход генератора Timer1) — GPIO11
    • T13CKI (вход внешнего таймера Timer3) — GPIO11
    • T1OSI (вход генератора Timer1) — GPIO12

    Таймеры микроконтроллера PIC

    HLVDIN PIN

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

    АНАЛОГ НА ЦИФРОВОЙ КАНАЛ Аналого-цифровой преобразователь

    становится потребностью каждой цифровой схемы, потому что несколько датчиков и периферийных устройств выдают выходной сигнал в аналоговой форме, а микроконтроллер требует аналоговый канал преобразователя для работы с этими данными.В PIC18F2550 всего 10 каналов аналого-цифрового преобразования по 10 бит. Все эти каналы могут преобразовывать 10 аналоговых входных сигналов в цифровой, а затем сохранять / использовать его в соответствии с инструкциями, приведенными в программе. Контакты АЦП в PIC18F2550 перечислены ниже:

    • AN0 — GPIO2
    • AN1 — GPIO3
    • AN2 — GPIO4
    • AN3 — GPIO5
    • AN4 — GPIO7
    • AN8 — GPIO23
    • AN9 — GPIO24
    • AN10 — GPIO22
    • AN11 — GPIO25
    • AN12 — GPIO21

    V REF PINS

    В PIC18F2550 АЦП умный из-за контактов V REF .Есть два контакта Vref, один из которых используется для описания максимального напряжения входного аналогового сигнала, а второй будет использоваться для ввода минимального напряжения аналогового входного сигнала. Таким образом, АЦП выдает на выходе только значения в диапазоне, заданном V REF . Контакты опорного напряжения:

    • В REF + — GPIO4
    • В REF- — GPIO5

    Модуль КОМПАРАТОРА

    В микроконтроллере есть два компаратора.Эти два компаратора могут сравнивать несколько входов. Их входы могут быть приняты с помощью любого аналогового входного сигнала от AN0-AN4. Выходное напряжение может сравниваться на VDD или отдельное опорное напряжение компаратора может быть обеспечено на опорном выводе компаратора.

    • CV REF — GPIO4
    • CV1OUT — GPIO6
    • CV2OUT — GPIO7

    Модуль ЗАХВАТА / СРАВНЕНИЯ / ШИМ PIC18F2550

    В этом микроконтроллере есть два контакта захвата / сравнения / ШИМ.Этот внутренний модуль использует Timer1 и Timer3 и позволяет устройству генерировать выходные данные в определенное время. Этот модуль позволяет контроллеру генерировать ШИМ желаемого рабочего цикла с помощью таймеров и предделителя. Выходные контакты этого модуля в PIC182550:

    • CCP1 (выход) — GPIO13
    • CCP2 / RC1 (вход / выход) — GPIO12
    • CCP2 / RB3 (ввод / вывод) — GPIO24
    • FLT0 (Неисправность) — GPIO21

    По умолчанию RB3 выдает выходной сигнал, но RC1 и RB3 можно отличить от программы внутренне.Вывод обнаружения неисправности используется для инициализации минимального периода активности неисправности в CCP1 (выход компаратора 1). Прочтите эти руководства по ШИМ:

    ПИН СБРОСА

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

    ВХОДНЫЕ ШТИФТЫ

    PIC имеет три вывода питания; один используется для подачи питания, а оставшиеся два — это контакты заземления, используемые для создания общего заземления, и они также являются общими для контроллера.Выводы питания и заземления PIC18F2550:

    • VSS — GPIO19, GPIO8
    • VDD — GPIO20

    ОСЦИЛЛЯТОР / ЧАСЫ

    Для работы каждого микроконтроллера требуется тактовый импульс. PIC18F2550 поставляется с внутренними часами от 32 кГц до 8 МГц, и их можно откалибровать на другом уровне с помощью инструкций. Для использования тактовой частоты до 48 МГц в контроллере предусмотрены два входа тактовой частоты: один для входа, а второй — для выхода. Оба контакта:

    • OSC1 / CLKI — GPIO9
    • OSC2 / CLKO — GPIO10

    БЛОК-СХЕМА PIC18F2550 Микроконтроллер

    Вот блок-схема PIC18F2550:

    PIC18F2550 Программирование микроконтроллеров

    Чтобы начать изучение программирования микроконтроллера pic , вы должны иметь представление о выводах GPIO.Поэтому мы подробно остановились на всех выводах и их функциях в предыдущих разделах. Мы можем использовать либо язык ассемблера , либо c программированием для программирования микроконтроллеров. Мы предлагаем вам ознакомиться с этими руководствами по началу работы:

    Инструменты для программирования

    Для начала программирования вам потребуются следующие программные и аппаратные компоненты:

    1. Компилятор или IDE для написания программы на ассемблере или языке C : Главное, где вы будете вводить свою первую программу микроконтроллера, — это компилятор или интегрированная среда разработки.Тремя наиболее популярными компиляторами, используемыми для программирования микроконтроллеров pic, являются MPLABX IDE, Mikro C для PIC и компилятор PIC CCS. Компилятор используется для создания шестнадцатеричного файла, который пользователь загружает в микроконтроллер.
    2. Программист или записывающее устройство : Когда вы закончите писать код, у вас будет шестнадцатеричный файл, который вы хотите загрузить в микроконтроллер. Мы используем программатор или записывающее устройство для загрузки двоичных файлов на pic16f866. Pickit3 — один из лучших вариантов для записи кода.
    3. Pic Development Boards : Макетные платы не являются обязательными, но они значительно упрощают процесс разработки.Потому что они предлагают встроенные периферийные устройства, такие как разъемы GPIO, датчики, АЦП и т. Д.

    Мы обновим этот раздел, добавив в этот раздел примеров программирования на встроенном языке C в этом разделе.

    ПРИЛОЖЕНИЯ
    • Используется с теми устройствами, которым требуется интерфейс с ПК.
    • Большая часть интеллектуальных приложений использует PIC18F2550, потому что он заполняет почти весь протокол связи большинства приложений.

    Модель памяти PIC18F2550

    PIC18F2550 имеет 32 КБ памяти, которая указана ниже:

    2D Схема

    Все о часах для PIC


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

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

    Однако, если вы возьмете таблицу и попытаетесь отсортировать все возможности, вы быстро пожалеете о старой фразе: «За деревьями не видно леса». Таблицы данных для PIC состоят из сотен страниц и не обязательно организованы для лучшего обучения.И, конечно же, время от времени возникает ошибка, из-за которой новичку становится еще труднее разобраться.

    Как человек, посвятивший всю свою сознательную жизнь преподаванию, я всегда интуитивно ценил важность хорошо организованной презентации. Вы начинаете с «леса» и только потом подходите к «деревьям». Вот что мы сделаем здесь — сначала будем иметь в виду общую картину, а затем заняться деталями, когда они, наконец, понадобятся.

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

    Основные частоты

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

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

    А пока давайте сосредоточимся на основных часах, которые нам нужны для большинства проектов. См. Рисунок 1 , на котором показано, что доступно.

    РИСУНОК 1. Восемь режимов для основных часов.


    Эта древовидная диаграмма упорядочивает типы основных тактовых генераторов, доступных в PIC16F88, в порядке сверху вниз. Для начала посмотрите на первые ветви древовидной диаграммы. Часы могут быть внутренними RC-цепочками или, если хотите, вы можете поставить свои собственные резистор и конденсатор и получить внешнюю RC-схему. В ситуациях, требующих большей точности, можно использовать внешний кварцевый или керамический резонатор.Наконец, если хотите, вы можете управлять PIC с существующими внешними часами.

    Добавив немного больше деталей, ветви дерева снова разделяются, показывая восемь отдельных режимов. Каждому из них присвоено сокращенное название Microchip. Их стоит изучить сейчас, чтобы впоследствии упростить чтение таблицы. Давайте просканируем эти конкретные режимы слева направо. Первый — INTRC, что означает внутренний RC-генератор. Работающий на частоте около 31 кГц, это низкоскоростное устройство, встроенное в PIC.Хотя это довольно медленно по любым стандартам, у него есть то преимущество, что он прост и потребляет очень мало тока.

    Следующий режим — INTOSC. Как и INTRC, он является внутренним (не требует внешних компонентов), но может работать на семи различных скоростях вплоть до 8 МГц. В некоторых PIC INTRC и INTOSC действительно независимы, но не в PIC16F88, который мы изучаем. По этой причине в таблице данных авторы иногда используют INTRC для обозначения только INTRC, а в других случаях для обозначения INTRC или INTOSC.Это только усугубляет путаницу, поэтому здесь я оставлю имена отдельно.

    В любом из этих режимов линию порта A.6 можно настроить так, чтобы она следила за часами, разделенными на четыре, если это необходимо. Это обозначается символом φ / 4 — читается как «фи, деленная на четыре». Используйте этот выход, если вы хотите синхронизировать какое-то внешнее устройство с микроконтроллером. Если вам интересно, в даташите этот режим называется INTIO1. В противном случае вы можете дополнительно освободить контакт A.6 для обычного цифрового ввода / вывода, называемого режимом INTIO2.

    Переходя к режимам внешнего RC, первый называется просто RC.В этом случае внешний резистор и конденсатор на выводе A.7 запускают работу. Предполагая, что источник питания +5 В, резистор должен находиться в диапазоне от 3 кОм до 100 кОм, а емкость должна быть больше 20 пФ. При наименьших значениях максимальная частота составляет около 4 МГц. Как мы видели с внутренними часами — при желании — A.6 можно заставить следовать φ / 4 (это режим RC) или же быть бесплатным для обычного использования (это RCIO). Между прочим, резистор может быть потенциометром, подключенным как реостат, который даст вам переменные часы.

    Кристаллы и керамические резонаторы привлекательны тем, что они намного более точны как в краткосрочной, так и в долгосрочной перспективе, а также в отношении допусков и температуры. Здесь есть три режима. Первый, LP, что означает малое энергопотребление, предназначен для использования с кварцевым камертоном 32,768 кГц. Они обычно появляются в наручных часах и часах реального времени. Кристалл и связанные с ним нагрузочные конденсаторы подключаются к контактам A.6 и A.7. Следующий режим, называемый XT, аналогичен, но предназначен для использования с более высокочастотными кристаллами и резонаторами примерно до 4 МГц.Последний режим — HS — обозначает высокую скорость — и необходим для кристаллов или резонаторов, работающих на частотах выше 4 МГц. Просто чтобы вы знали, верхний предел для PIC16F88 составляет 20 МГц. Что интересно в этих трех режимах, так это то, что микросхема автоматически выбирает правильный коэффициент усиления внутреннего драйвера для кристалла в зависимости от того, указываете ли вы LP, XT или HS.

    Последний режим — ECIO, который просто позволяет подавать внешний тактовый сигнал на вывод A.7. Это может происходить от любой схемы часов, которая выдает прямоугольные импульсы, колеблющиеся от земли до напряжения питания.

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

    Вторичные часы

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

    РИСУНОК 2. Три режима для вторичных часов.


    Есть два варианта RC_RUN. Могут использоваться внутренние часы INTRC или INTOSC, описанные ранее; единственная разница в скорости колебаний.

    Или, при желании, вы можете присоединить кристалл 32,768 кГц и нагрузочные конденсаторы к B.6 и B.7. Что в этом такого крутого, так это то, что кристалл часов всегда работает — даже когда вы переводите чип в так называемый спящий режим.Этот режим, обозначенный как T1OSC, идеально подходит для приложений часов реального времени. (Обычно PIC отключает неиспользуемые часы при переходе в спящий режим).

    Обратите внимание, что первичные тактовые генераторы используют A.6 и A.7 в различных комбинациях, а вторичные тактовые частоты — нет — по крайней мере, для PIC16F88. Схема на рис. 7 (для одного из предстоящих экспериментов) показывает, что здесь задействовано.

    На этом мы закончили обзор первичных и вторичных часов. Почему бы не потратить несколько минут на изучение Рисунков 1 и 2 еще раз, чтобы действительно зафиксировать различия и детали в своем уме, прежде чем продолжить.

    Как сделать свой выбор

    Итак, вы определились, какие часы вам нужны. Теперь, как вы выразите свои пожелания КВС? Ответ кроется в битах конфигурации и трех специальных регистрах. Биты конфигурации устанавливаются во время фазы записи (мигания или программирования), в то время как биты регистра доступны во время выполнения. Вот сенсация.

    На рисунке 3 показаны два набора битов конфигурации в PIC16F88. (У более простых PIC есть только один набор.) Да, здесь много всего, но когда дело доходит до настройки часов, нас беспокоит лишь небольшая часть. Например, три бита, обозначенные FOSC, обозначают первичный генератор, как описано ранее. Другими словами, они устанавливают поведение по умолчанию при включении питания.

    РИСУНОК 3. Конфигурационные биты устанавливаются при записи PIC.


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

    После запуска программы вы можете управлять часами (или часами) различными способами, изменяя регистры OSCON, OSCTUNE и T1CON. Они показаны на Рисунок 4 . Давайте вдумаемся в подробности.

    РИСУНОК 4. Эти регистры могут быть изменены во время выполнения.


    Возможно, наиболее важными битами в OSCON являются те, которые помечены как IRCF, что означает частоту внутреннего RC-генератора. Как следует из названия, эти биты выбирают желаемую тактовую частоту внутреннего генератора (ов).Далее идут два бита SCS, обозначающие выбор системных часов. Здесь вы можете выбрать использование основных или дополнительных часов. Неудивительно, что регистр OSCTUNE позволяет точно настроить тактовую частоту INTRC или INTOSC. (На некоторых PIC затрагивается только INTOSC.) Все, что требуется, — это шестибитное дополнительное число до двух. Отрицательные числа замедляют ход часов, а положительные — ускоряют. Возможна настройка в диапазоне ± 12,5%.

    Регистр T1CON занимается управлением таймером 1, который обычно синхронизируется внешним 32.Кристалл 768 кГц, который также может выполнять двойную функцию как системные часы. Вы, возможно, помните это как режим T1OSC из , рис. 2, . Важным флагом здесь является T1OSCEN, который включает кварцевый генератор Таймера 1.

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

    Переключение часов

    Может наступить день, когда вы захотите выйти за рамки простого включения основных часов и позволить им делать свое дело.Если да, то вам нужно немного узнать о переключении часов. Рисунок 5 дает общую картину. По сути, вы можете вручную переключаться между основными и дополнительными часами или делать это автоматически при определенных условиях.

    РИСУНОК 5. Тактовые генераторы можно переключать между первичным и вторичным режимами.


    Чтобы вручную переключиться с одного на другой, вы вернетесь к , рис. 4 , и вам просто нужно изменить несколько битов в трех описанных здесь регистрах.Например, чтобы перейти с INTRC на INTOSC, вы должны настроить биты с IRCF0 до IRCF2 по мере необходимости. Или, чтобы перейти от кварцевого генератора, скажем, к INTOSC, перейдите к SCS0 и SCS1, которые позволяют переключаться с первичного на вторичный. Вы уловили идею; переключение осцилляторов вручную — это всего лишь вопрос битрейта в вашей программе.

    А как насчет автоматических переключений? Что ж, есть две ситуации, когда одни часы заменяют другие. Первый — это отказоустойчивый механизм.Представьте, что вы разрабатываете схему для работы в критических условиях, например, в медицине или при мониторинге промышленной безопасности. Если бы первичный генератор был, например, кристаллом, и он по какой-то причине вышел из строя, то PIC просто остановился бы. Нехорошо! С дополнительными часами в крыльях микросхема могла переключаться на нее почти без проблем и продолжать работать до тех пор, пока исходная неисправность не будет устранена. Как показано на рис. 5 , функция отказоустойчивости может проверять наличие проблем с любым из четырех режимов кристалла (LP, XT, HS или T1OSC).Он активируется битом FCMEN в CONFIG2.

    Если важно избежать задержек, то может оказаться полезным двухскоростной пробуждение. Вот основная идея. Предположим, вы управляете схемой на кристалле. Как вы, наверное, знаете, кварцевым генераторам требуется мгновение или два, чтобы нагреться. PIC понимает это и терпеливо ждет немного, прежде чем позволить часам начать передавать инструкции по конвейеру. Другими словами, ваш проект просто сидит без дела несколько мгновений.С другой стороны, внутренние генераторы INTRC и INTOSC по существу включаются мгновенно. Так почему бы не выбрать один из них в качестве дополнительных часов?

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

    Когда это нужно? Как указывалось ранее, PIC поддерживают команду сна.При выполнении энергоемкий компонент отключается, и микросхема простаивает с очень низким током. В частности, любой кристалл, используемый в качестве основных часов, останавливается. Различные сигналы, такие как сброс, прерывание или что-то, что называется сторожевым таймером, могут снова разбудить микросхему. Если вы хотите мгновенного действия, пока кристалл набирает обороты, подумайте об только что описанном двухскоростном пробуждении. Чтобы включить этот ответ, перейдите к биту IESO в CONFIG2.

    Эксперименты

    На этом мы рассмотрели основы синхронизации PIC.Есть и другие тонкости, о которых вы можете позаботиться позже, и для этого предназначены таблицы данных. На этом этапе вы, по крайней мере, сможете справиться с наиболее распространенными ситуациями и будете в гораздо лучшей форме, чтобы на самом деле прочитать эту чертову штуку!

    Чтобы по-настоящему закрепить то, что вы узнали, вам предлагается попробовать дюжину экспериментов пекаря, описанных на боковой панели ниже. Вы будете буквально учиться на практике. На рисунках 6 и 7 изображена настройка оборудования, в то время как программное обеспечение PIC16F88 обслуживается исходным кодом, доступным в файлах загрузки по ссылке на статью.Программы написаны на бесплатном языке Great Cow Basic с открытым исходным кодом, но легко переносятся на PICBasic и другие языки. В каждом эксперименте исходный код включает множество комментариев, которые помогут вам, а также описывает, что делать, чтобы интерпретировать результаты.

    Попробуйте и убедитесь сами, что синхронизация PIC далеко не так ужасна, как вы когда-то могли подумать! NV


    Файл загрузки для этой статьи содержит исходный код для 13 экспериментов с использованием распространенного и недорогого микроконтроллера PIC16F88.В упражнениях демонстрируются все различные режимы часов. Программы хорошо документированы и содержат инструкции о том, как их настроить и что искать. Аппаратное обеспечение для экспериментов с 1 по 12 изображено на , рис. 6, , а , рис. 7, показывает, что необходимо для эксперимента 13.

    РИСУНОК 6. Вот детали оборудования для основных часов.


    В экспериментах 2, 4 и 6 используйте осциллограф или частотомер для контроля φ / 4.Во всех случаях мигает светодиод, чтобы ПОС чем-то занялся.

    РИСУНОК 7. В режиме T1OSC в качестве временной развертки используется часовой кристалл.


    Список экспериментов

    ПЕРЕКЛЮЧАТЕЛЬ
    # Иллюстрированный элемент Исходный код
    1 INTRC, A.6 бесплатно INTRC.GCB
    2 INTRC, A.6 следует за φ / 4 INTRC.GCB
    3 INTOSC, A.6 бесплатно INTOSC.GCB
    4 INTOSC, A.6 следует φ / 4 INTOSC.GCB
    5 RCIO, A.6 свободный RC-RCIO.GCB
    6 RC, A.6 следует за φ / 4 RC-RCIO.GCB
    7 LP, низкое энергопотребление, кристалл 32,768 кГц LP.GCB
    8 XT, кристалл средней мощности 4 МГц XT.GCB
    9 HS, высокая скорость 19.6608 МГц кристалл HS.GCB
    10 ECIO, таймер 555 внешние часы ECIO.GCB
    11 Failsafe, выдерните кристалл и посмотрите, как INTOSC захватит FAILSAFE.GCB
    12 Переключение с вторичного на первичный при сбросе .GCB
    13 T1OSC как вторичные часы T1OSC.GCB

    PIC18F2550 Назначение выводов микроконтроллера, конфигурация, характеристики, спецификации и техническое описание

    « PIC » — это популярная серия микроконтроллеров от MICROCHIP, а PIC18F2550 — один из популярных микроконтроллеров семейства «PIC18F».PIC18F2550 — это высокопроизводительный усовершенствованный USB-микроконтроллер с флеш-памятью и технологией NANO-Watt. Это 8-битный микроконтроллер, популярный среди производителей и инженеров благодаря своим характеристикам и невысокой стоимости. PIC18F2550 поставляется в различных пакетах, таких как DIP, QPF и QPN, и может быть выбран в соответствии с требованиями проекта.

    PIC18F2550 Конфигурация выводов

    Это 28-контактная ИС, как показано на схеме контактов PIC18F2550 . У контроллера так много функций, что производитель не может предоставить контакты ввода-вывода для каждой из них.Так много контактов контроллера имеют несколько функций. Эти функции отключены по умолчанию и могут быть включены путем программирования. Ниже мы кратко опишем функции каждого вывода.

    Номер контакта

    Имя контакта

    Описание

    1

    MCLR / VPP / RE3

    MCLR: Вход Master Clear (RESET)

    VPP: вход напряжения программирования

    RE3: Контакт ввода / вывода PORTE, PIN 3

    2

    RA0 / AN0

    RA0: Контакт ввода / вывода PORTA, PIN 0

    AN0: Аналоговый вход 0

    3

    RA1 / AN1

    RA1: контакт ввода / вывода PORTA, PIN 1

    AN1: Аналоговый вход 1

    4

    RA2 / AN2 / VREF- / CVREF

    RA2: контакт ввода / вывода PORTA, PIN 2

    AN2: Аналоговый вход 2

    VREF-: вход опорного напряжения аналогово-цифрового преобразования (низкий)

    CVREF: опорный выход аналогового компаратора

    5

    RA3 / AN3 / VREF +

    RA3: Контакт ввода / вывода PORTA, PIN 3

    AN3: Аналоговый вход3

    VREF +: вход опорного напряжения A / D (высокий)

    6

    RA4 / T0CKI / C1OUT / RCV

    RA4: контакт ввода / вывода PORTA, PIN 4

    T0CKI: Вход внешнего тактового сигнала Timer0

    C1OUT: выход компаратора 1

    RCV: Вход RCV для внешнего USB-трансивера

    7

    RA5 / AN4 / SS / HLVDIN / C2OUT

    RA5: Контакт ввода / вывода PORTA, PIN 5

    AN4: Аналоговый вход 4

    SS: вход выбора ведомого SPI

    HLDVIN: вход обнаружения высокого / низкого напряжения

    C2OUT: Выход компаратора 2

    8

    VSS

    Земля

    9

    OSC1 / CLKI

    OSC1: Вывод генератора 1

    CLKI: вход внешнего источника синхронизации

    10

    OSC2 / CLKO / RA6

    OSC2: Вывод 2 генератора

    CLKO: выход тактового сигнала

    RA6: Контакт ввода / вывода PORTA, PIN 6

    11

    RC0 / T1OSO / T13CKI

    RC0: контакт ввода / вывода PORTC, PIN 0

    T1OSO: Выход генератора Timer1

    T13CKI: Вход внешнего тактового сигнала Timer1 / Timer3

    12

    RC1 / T1OSI / CCP2 / UOE

    RC1: контакт ввода / вывода PORTC, PIN 1

    T1OSI: Вход генератора Timer1

    CCP2: захват 2 входа / сравнение 2 выходов / выход PWM2

    UOE: Выход OE внешнего USB-трансивера

    13

    RC2 / CCP1

    RC2: контакт ввода / вывода PORTC, PIN 2

    CCP1: захват 1 входа / сравнение 1 выхода / выход PWM1.

    14

    VUSB

    VUSB: Внутренний USB-выход регулятора напряжения 3,3 В

    15

    RC4 / D- / VM

    RC4: контакт ввода / вывода PORTC, PIN 4

    D-: USB-дифференциальная минусовая линия (вход / выход)

    VM: Внешний USB-трансивер, вход VM

    16

    RC5 / D + / VP

    RC5: контакт ввода / вывода PORTC, PIN 5

    D +: дифференциальная плюсовая линия USB (вход / выход).

    VP: Внешний USB-трансивер, вход VP

    17

    RC6 / TX / CK

    RC6: контакт ввода / вывода PORTC, PIN 6

    TX: асинхронная передача EUSART

    CK: синхронные часы EUSART (см. RX / DT).

    18

    RC7 / RX / DT / SDO

    RC7: контакт ввода / вывода PORTC, PIN 7

    RX: асинхронный прием EUSART

    DT: синхронные данные EUSART (см. TX / CK).

    SDO: выход данных SPI

    19

    VSS

    Земля

    20

    VDD

    Положительный источник питания (+ 5 В)

    21

    RB0 / AN12 / INT0 / FLT0 / SDI / SDA

    RB0: контакт ввода / вывода PORTB, PIN 0

    AN12: Аналоговый вход 12

    INT0: внешнее прерывание 0

    FLT0: Вход неисправности расширенного ШИМ (модуль ECCP1)

    SDI: данные SPI в

    SDA: ввод / вывод данных I2C

    22

    RB1 / AN10 / INT1 / SCK / SCL

    RB1: контакт ввода / вывода PORTB, PIN 1

    AN10: Аналоговый вход 10

    INT1: Внешнее прерывание 1

    SCK: синхронный последовательный тактовый вход / выход для режима SPI

    SCL: синхронный последовательный тактовый вход / выход для режима I2C

    23

    RB2 / AN8 / INT2 / VMO

    RB2: контакт ввода / вывода PORTB, PIN 2

    AN8: Аналоговый вход 8

    INT2: внешнее прерывание 2

    VMO: Внешний USB-трансивер Выход VMO

    24

    RB3 / AN9 / CCP2 / VPO

    RB3: контакт ввода / вывода PORTB, PIN 3

    AN9: Аналоговый вход 9

    CCP2: захват 2 входов / сравнение 2 выходов / выход PWM2

    VPO: Внешний USB-трансивер, выход VPO

    25

    RB4 / AN11 / KBI0

    RB4: контакт ввода / вывода PORTB, PIN 4

    AN11: Аналоговый вход 11

    KBI0: Вывод прерывания при изменении

    26

    РБ5 / КБИ1 / PGM

    RB5: контакт ввода / вывода PORTB, PIN 5

    KBI1: вывод прерывания при изменении

    PGM: вывод разрешения программирования ICSP низкого напряжения

    27

    RB6 / KBI2 / PGC

    RB6: контакт ввода / вывода PORTB, PIN 6

    KBI2: вывод прерывания при изменении

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

    28

    РБ7 / КБИ3 / ПГД

    RB7: контакт ввода / вывода PORTB, PIN 7

    KBI3: вывод прерывания при изменении

    PGD: внутрисхемный отладчик и вывод данных программирования ICSP.

    PIC18F2550 Характеристики микроконтроллера

    PIC18F2550 — Упрощенные функции

    ЦП

    8-бит

    Общее количество контактов

    28

    Рабочее напряжение

    +4.От 0 до +5,5 В (+ 5,5 В является абсолютным максимумом)

    Количество программируемых контактов ввода / вывода

    24

    Коммуникационный интерфейс

    Последовательный интерфейс USB (15,16 контактов) [Может использоваться для программирования этого контроллера]

    Главный / подчиненный последовательный интерфейс SPI (7,18,21,22PINS) [Может использоваться для программирования этого контроллера]

    Программируемый последовательный порт UART (17,18 контактов) [Может использоваться для программирования этого контроллера]

    Двухпроводной последовательный интерфейс (21,22PINS) [Может использоваться для подключения периферийных устройств, таких как датчики и ЖК-дисплеи]

    Модуль АЦП

    10 каналов, разрешение 10 бит АЦП

    Модуль таймера

    Один 8-битный счетчик, Три 16-битных счетчика

    Аналоговые компараторы

    2

    ШИМ каналов

    2

    Внешний осциллятор

    до 48 МГц

    Внутренний осциллятор

    Откалиброванный внутренний генератор от 32 кГц до 8 МГц

    Программная память Тип

    Вспышка

    Программная память / Флэш-память

    32 Кбайт [10000 циклов записи / стирания]

    Частота процессора

    12 MIPS

    RAM память

    2 КБ

    Память EEPROM

    256 байт

    Сторожевой таймер

    Программируемый сторожевой таймер с отдельным встроенным генератором

    Режимы энергосбережения

    В наличии

    Рабочая температура

    от -40 ° C до + 85 ° C (+85 — абсолютный максимум, -40 — абсолютный минимум)

    PIC18F2550 Замены

    PIC18F2455

    PIC18F2550 Семья

    PIC18F4455, PIC18F4550

    Краткая информация о PIC18F2550

    PIC18F2550 — один из самых дешевых микроконтроллеров на рынке, с которым можно работать. В Интернете доступно множество учебных пособий и поддержки для начинающих.Контроллер имеет 32 Кбайт флеш-памяти, чего достаточно для многих приложений. Наряду с 24 программируемыми контактами ввода / вывода, он может легко взаимодействовать со многими периферийными устройствами. Благодаря сторожевому таймеру для автоматического сброса при ошибке контроллер можно использовать в системах без вмешательства человека. Имея функцию интерфейса USB, вы можете без проблем связываться с контроллером с любого ПК. Со многими сложенными функциями дополнительно способствует использованию микроконтроллера PIC18F2550 .

    Как использовать микроконтроллер PIC18F2550

    PIC18F2550 используется как любой другой микроконтроллер.Микроконтроллеры не похожи на цифровые ИС, поскольку для цифровых ИС все, что вам нужно, — это подключить питание, чтобы оно работало. Перед тем, как микросхема заработала, необходимо было программировать микроконтроллер. Поэтому для работы PIC18F2550 сначала необходимо сохранить правильный программный файл во FLASH-памяти контроллера. После подачи питания контроллер выполняет этот код, сохраненный во флэш-памяти, для создания ответа.

    Весь процесс с использованием PIC18F2550 выглядит следующим образом:

    • Список функций, которые будут выполняться PIC18F2550
    • Запишите эти функции в «программное обеспечение IDE», используя поддерживаемый язык программирования.

    (MPLAB IDE для ОС Windows [www.microchip.com/mplabx-ide-windows-installer]

    (для этих MPLAB IDE вы можете использовать язык «C» для написания прикладной программы)

    • После написания нужной программы скомпилируйте для устранения ошибок с помощью IDE.
    • После успешной компиляции приложение IDE генерирует HEX-файл для написанной программы.
    • Выберите устройство программирования (обычно «PIC kit 3»), которое устанавливает связь между ПК и PIC18F2550.
    • Запустите программу дампа файла HEX, которая связана с выбранным устройством программирования.
    • Выбираем в программе соответствующий HEX файл.
    • Запишите HEX-файл (сгенерированный для написанной программы) во флэш-память PIC18F2550 с помощью этой программы.
    • Отключите программатор и подключите соответствующие периферийные устройства для контроллера.

    После подключения питания контроллер выполняет этот шестнадцатеричный код (или машинный код), сохраненный в памяти, и выполняет задачи в соответствии с инструкциями.

    2D Модель

    Термометр | Встроенная лаборатория

    Последний проект Lucky Resister связан с интеллектуальным датчиком температуры на базе Arduino и контроллером вентилятора с широтно-импульсной модуляцией (ШИМ).Он может одновременно контролировать температуру окружающей среды с помощью двух датчиков DHT22 и управлять скоростью двух вентиляторов с минимальным шумом и на минимально возможной скорости, которая достаточно хороша для поддержания температуры на желаемом уровне. В проекте также используется щит регистратора данных Adafruit, который содержит микросхему часов реального времени и слот для SD-карты, для записи показаний датчиков вместе с отметками времени. ЖК-дисплей I2C обеспечивает приятный пользовательский интерфейс и отображает время, показания температуры и состояние вентиляторов.

    Контроллер вентиляторов Arduino

    Дисплеи на органических светодиодах (OLED) — самые крутые дисплеи из когда-либо созданных. Ознакомьтесь с инструкциями по созданию OLED-часов , управляемых Arduino, , которые используют модуль DS3231 RTC для точного отсчета времени. DS3231 — это недорогие, чрезвычайно точные часы реального времени (RTC) I2C со встроенным кварцевым генератором с температурной компенсацией (TCXO) и кварцевым резонатором.В проекте используется аккумуляторная батарея для точного хронометража во время сбоя питания. Реализация интерактивной системы меню, в которой осуществляется навигация с помощью двух тактовых переключателей, установка времени становится удобной. Модуль DS3231 использует встроенный датчик температуры для компенсации дрейфа часов из-за колебаний температуры, что помогает поддерживать точность до 1 или 2 минут в год. По умолчанию температура измеряется и обновляется DS3231 каждые 64 секунды. Тем не менее, с помощью программного обеспечения можно обновлять показания температуры и регулировку осциллятора со скоростью 5 раз в секунду.Измерения температуры также отображаются на экране часов OLED. Автор использует графическую библиотеку Adafruits для управления OLED-дисплеем с контроллером SSD1306.

    Часы Arduino OLED

    Эти цифровые часы DIY с термометром разработаны Джо Фарром и основаны на микроконтроллере PIC18F25K22. Полная информация о конструкции этого проекта, включая принципиальные схемы, макеты печатных плат и прошивку PIC, размещена на его веб-сайте.Он разработал свою прошивку с использованием компилятора Proton PIC BASIC, который доступен для бесплатной загрузки для этого конкретного микроконтроллера PIC. Он использует DS1302 RTC для хронометража и DS18B20 для измерения температуры. Температура и время отображаются на четырех 2-дюймовых семисегментных светодиодных дисплеях.

    PIC часы и термометр

    В этом беспроводном термометре на базе Arduino используются две платы Arduino для измерения температуры в помещении и на улице.Наружная плата Arduino отправляет наружную температуру, измеренную датчиком DS18B20, на внутреннюю плату Arduino с помощью недорогих радиочастотных модулей передатчика и приемника 433 МГц. Затем внутренняя плата Arduino отображает температуру в помещении и на улице на символьном ЖК-дисплее.

    Arduino термометр для помещений / для улицы

    В Уроке 3 мы узнали, как использовать каналы АЦП chiKIT для считывания внешнего аналогового напряжения и преобразования его в цифровое число.Мы также обсудили сопряжение стандартного символьного ЖК-дисплея на базе Hitachi 44780 с платой chipKIT Uno32 в Учебнике 4. Теперь пришло время применить полученные знания, чтобы создать наше первое практическое приложение с использованием chipKIT, который представляет собой цифровой термометр. Поскольку температура не является электрической величиной, первое, что нам нужно, это преобразователь или датчик, чтобы преобразовать ее в электрический сигнал. В этом проекте мы будем использовать для этого датчик LM34, который преобразует температуру окружающей среды в аналоговое электрическое напряжение.Аналоговый выход датчика подается на канал АЦП на chipKIT Uno32, который затем обрабатывает сигнал и отображает температуру на ЖК-дисплее в градусах Цельсия и Фаренгейта.

    Термометр цифровой проект

    Подробнее

    Режим внешнего тактового генератора

    — Справка разработчика

    Режим внешнего тактового генератора позволяет микроконтроллеру PIC ® работать от внешнего сигнала логического уровня, который используется в качестве источника системного синхросигнала.Когда выбран этот режим, сигнал подается на вывод OSC1. Вывод OSC2 затем доступен для синхронизации того же синхросигнала или для использования в качестве вывода ввода-вывода общего назначения. Системные часы всегда обозначаются как Fosc в таблицах данных микроконтроллера PIC ® . Тактовая частота команд выводится из Fosc через делитель, чтобы обеспечить тактовую частоту команд Fosc / 4.

    Тактовая частота команд может быть экспортирована через вывод OSC2, если бит CLKOUTEN установлен в слове конфигурации (показано в разделе ниже).

    В режиме EC есть три режима мощности на выбор. Режим EC выбирается в регистре конфигурации. Три режима включают:

    • ECH — режим повышенной мощности, 4–32 МГц
    • ECM — режим средней мощности, 0,5 МГц — 4 МГц
    • ECL — режим пониженного энергопотребления, менее 0,5 МГц

    Таймер запуска генератора (OST) — это задержка, встроенная в устройство микроконтроллера PIC ® , позволяющая генератору стабилизироваться. OST определяет или считает 1024 колебания от кристалла или резонатора до вывода OSC1.

    OST отключается при выборе режима EC. Следовательно, нет задержки в работе после сброса при включении питания (POR) или выхода из спящего режима. Поскольку микроконтроллер PIC ® полностью статичен, остановка входа внешнего тактового сигнала при сохранении питания приведет к остановке устройства с сохранением всех данных. После перезапуска внешних часов устройство возобновит работу, как если бы не прошло времени.

    Внешний RC-генератор выбирается битами Fosc в регистре конфигурации.

    Бит CLKOUTEN также находится в регистре конфигурации и обычно в том же регистре, что и биты Fosc.

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


    Аналоговые часы с использованием OLED и PIC микроконтроллера



    Мы собираемся построить этот проект в среде моделирования Proteus и использовать микроконтроллер PIC18F.Что касается программных компонентов, нам потребуются библиотека I2C, библиотека OLED и библиотека DS1307 RTC.
    Если вы следите за моими блогами, то, возможно, знаете, что эти три библиотеки уже доступны и хорошо протестированы. Ниже приведены ссылки на предыдущие сообщения, на которые вы можете ссылаться, если хотите.
    Дисплей OLED I2C с использованием микроконтроллера Microchip PIC
    Часы реального времени (DS1307) Взаимодействие с микроконтроллером PIC
    ( Все мои новые проекты будут на GitHub, и я также пытаюсь перенести все предыдущие проекты на GitHub, чтобы их можно было поддерживать хорошо.)

    Ниже приведены шаги по созданию аналоговых часов.

    • Создайте маленький круг с очень маленьким радиусом, например 1
    • Создайте большой круг с большим радиусом, но не превышайте размер экрана.
    • Сделать часовые тики
      • У нас 12 часов и 360 градусов, что означает, что 1 час равен 30 градусам.
      • Мы будем использовать цикл for с шагом 30 градусов, чтобы рисовать маленькие линии, представляющие отметки для каждой часовой позиции.Это делает функция draw_clock_face .
      • draw_clock_face Функция использует формулы синуса и косинуса для рисования 12 знаков длиной 5 в каждой часовой позиции.
    • Отображение часов, минут и секундных стрелок
      • Отображение времени с помощью стрелок очень похоже на отображение меток.
      • Часовая стрелка должна быть очень маленькой, минутная — средней, а секундная — самой длинной.
    • Данные из RTC считываются и преобразуются в десятичный формат из формата BCD, и эти данные передаются функции display_time.
    • Выполнение этой функции посекундно приведет к анимационному эффекту перемещения секундной стрелки часов.
    • В проекте мы назвали это значение на 500 мс, причиной этого являются цифровые часы, так как мы хотели отображать мигание двоеточия, которое длится полсекунды.
  • Добавить комментарий

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