256Б производства MICROCHIP TECHNOLOGY PIC16F877A-I/L
Количество | Цена ₽/шт |
---|---|
+1 | 1 110 |
+5 | 1 044 |
+25 | 991 |
+100 | 880 |
Alex_EXE » Неудавшийся контроллер робоплатформы PIC16F877A
Робоконтроллер 877A
Но ничего, на ошибках учатся.
Хоть проект с этой реализацией контроллера и не удался, но был извлечен из своих ошибок важный опыт, который ляжет в основу следующей версии контроллера. И что бы этот проект не пропал почём зря, ведь что-то всё-таки реализовать получилось, – решил информацию о нём опубликовать.
Изначально этот контроллер разрабатывался, как контроллер нижнего уровня, т.е. он должен был являться чисто исполнителем и не должен был обладать какой-либо своей логикой, а управление должно было происходить с контроллера верхнего уровня, в качестве которого мог выступать, к примеру, ноутбук или навороченный ARM контроллер, или на крайний случай прямое управление по Bluetooth.
Заложенная спецификация:
- Встроенный драйвер 2-х коллекторных двигателей с током до 4-х А
- Контроль тока каждого из двигателей и контроль общего напряжения
- Управление по Bluetooth
- 5 универсальных аналого-цифровых входов
- 8 универсальных цифровых логических/PPM выходов
- Контроль энкодеров каждого из моторов (колеса)
- Связь с I2C датчиками и периферией
- Бонус предыдущего пункта управление по I2C с Nunchake WII
- Раздельно питание контроллера с датчиками и цифровых исполнительных устройств подключенных к 8-ми универсальным цифровых выходам
Функциональная схема
На самом деле заложить хотелось гораздо больше, но из выбранного контроллера, уже на этапе проектирования, удалось выжат только это. Некоторые вещи удалось реализовать, некоторые только частично, некоторые сразу после изготовления накрылись медным тазом, а другие отвалились в этапе программирования, но самое обидное, что закончился стек переходов и даже половины программного функционала не удалось реализовать. Конечно, можно оптимизировать код и, думаю, это даже поможет, но смысл борьбы за этот камень мною был утрачен, всё придётся начинать сначала, но уже на новом и на голову более мощном и функциональном микропроцессоре.
Плата
Схема имеет следующий вид:
Принципиальная схема
Схему можно разделить на следующие части:
- микроконтроллер с обвязкой
- два драйвера двигателей
- слаботочный 0,5А стабилизатор для микроконтроллера и датчиков на 5В
- силовой 3А стабилизатор для периферии на 5В
- блок из 5-ти аналого-цифровых входов
- блок из 8-ми цифровых выходов
- блок интерфейсов UART, i2c и ещё двух портов
- блок для подключения двух энкодеров
- и последний блок, состоящий из 3-х делителей для контроля входного напряжения и тока моторов.
Замечу, что джампер предполагался для замыкания 5В цепей после слаботочного 78l05 стабилизатора и силового LM2576 в случае экономии на одном из них. Ещё на схеме упустил ICSP разъём для внутрисхемного программирования, на плате он есть, и из-за него в схеме присутствует диод VD1 с вытекающими схемотехническими последствиями.
Печатка выглядит следующим образом:
Вид печатки сверху
Вид печатки снизу
Спецификацию приводить не буду. Единственное, что об устройстве драйверов двигателей можно прочитать в статье — драйвер коллекторного двигателя 1-4А. И отмечу, что схема и печатка могут содержать небольшие неточности, т.к. их не приводил к конечному виду.
Прошивка
Прошивку выкладываю во все её сырости и не оптимизированности. В принципе она рабочая и робот вполне успешно катается, управляемый по Bluetooth. Протокол управления собственной разработки, использованная версия PRAL2.0 , в одной из следующих статей опишу его.
Что было реализовано:
- управления 2-мя моторами с плавным разгоном (плавный старт, остановка, реверс), что бы стартовыми токами не перегружало и не выбивало аккумуляторы (прецеденты до введения были, а датчики тока реализовать не удалось)
- управление по UART на скорости 9600 по протоколу PRAL2.0 заточенное под Bluetooth
- логическое управление нагрузками (исполнителями) подключенными к универсальным цифровым выходам
- было реализовано, но позже «заморожено» управление с Nunchuk Wii
- была начата реализация работы с АЦП и контроль напряжений, но на этом остановился.
Что есть – то есть, может кому-нибудь пригодятся мои наработки. Повторюсь, они выложены в сыром виде и без намека на оптимизацию.
Гусеничная платформа
И на последок расскажу об используемой гусеничной платформе – Rover 5 Tracked Robot Chassis.
Робот на природе
Несмотря на её красоту – она меня разочаровала. Хоть она гусеничная и имеет приличную проходимость, но она также имеет неприятные конструктивные особенности:
- гусеницы часто слетают, особенно на ковровых покрытиях
- колеса, на которые насажены гусеницы, под натяжением этих самых гусениц, трутся и потихоньку истираются.
Ну и пара мелких придирок: малая скорость и пластиковые шестерни в редукторах. Так же, думаю, ей не понравится грязь, т.е. она пригодна только для домашнего применения.
Заключение
Хоть неудачный, но всё же опыт, может он ещё кому-нибудь будет полезным.
Позже, как доберусь с фотиком до рабочей лаборатории, пересниму контроллер и робота.
Скачать файлы проекта
Схема вольтметра-амперметра на микроконтроллере PIC16F877A (до 25В, 2,5А)
В некоторых старых лабораторных блоках питания, других приборах, применялись спаренные стрелочные индикаторы. Они представляли собой общий корпус, в котором расположены две магнитодинамические индикаторные системы. В случае с блоком питания, -одна для индикации напряжения, вторая для индикации тока.
Практически это было два одинаковых прибора, но с разными шкалами. А необходимое соответствие показаний измеряемым величинам задавалось внешними деталями, – резистивным делителем для вольтметра и шунтом для амперметра.
Принципиальная схема
На рисунке 1 показана схема аналогичной «измерительной головки», но на основе микроконтроллера PIC16F877A и двухстрочного жидкокристаллического индикатора (две строки по 8 символов). В верхней строке он показывает напряжение, а в нижней ток. Индикация напряжения до 25V, а тока до 2.5А. Но это только шкала.
Реально напряжение на вход нельзя подавать более 1,6V. То есть, эта величина есть максимальное значение, при котором прибор показывает 25V. Данная величина задана напряжением на выводе 5 с помощью светодиода HL1 который здесь работает как стабистор.
Изменяя это напряжение (но не более 5V) можно изменять величину входного напряжения, при котором прибор показывает максимальное значение. Поэтому, для работы в реальном источнике питания требуются внешние элементы, – резистивный делитель напряжения и шунт.
Рис.1. Принципиальная схема вольтметра и амперметра на микроконтроллере PIC16F877A.
Тактируется микроконтроллер от внешнего кварцевого резонатора 20 MHz. Подбором сопротивления R2 регулируют контрастность дисплея.
Прошивка и подключение
Рис. 2. Прошивка для микроконтролера.
Прошивка и исходный код для микроконтроллера: Скачать (2 КБ).
На рисунке 3 показан вариант использования данного прибора в лабораторном блоке питания. При условии, что напряжение на светодиоде равно 1,6V сопротивления будут такими: Rд1 = 1кОм, Rд\2 =15 кОм, Rш1 = 0,63 Ом.
Рис. 3. Схема включения вольт-ампрметра к источнику питания.
Налаживание
Налаживание заключается в подгонке результатов измерения по действительные величины напряжения и ток более точным подбором сопротивления резисторов делителя напряжения (Rд) и шунта (Rш).
Горчук Н. В. РК-2010-04.
PIC16F877A – Микроконтроллеры и процессоры
8
3,5
256
$ 0,53
10-разрядный АЦП, опции с низким энергопотреблением
14
3.5
256
$ 0,57
10-разрядный АЦП, опции с низким энергопотреблением
14
7
512
$ 0.64
10-разрядный АЦП, опции с низким энергопотреблением
14
14
1,024
$ 0,71
10-разрядный АЦП, опции с низким энергопотреблением
14
28
2 048
$ 0.78
10-разрядный АЦП, опции с низким энергопотреблением
20
7
512
$ 0,70
10-разрядный АЦП, опции с низким энергопотреблением
20
14
1,024
$ 0.77
10-разрядный АЦП, опции с низким энергопотреблением
20
28
2 048
$ 0,84
10-разрядный АЦП, опции с низким энергопотреблением
14
7
512
$ 0.71
12-разрядный АЦП с вычислениями, маломощные опции
14
14
1,024
$ 0,78
12-разрядный АЦП с вычислениями, маломощные опции
14
28
2 048
$ 0.85
12-разрядный АЦП с вычислениями, маломощные опции
20
7
512
$ 0,81
12-разрядный АЦП с вычислениями, маломощные опции
20
14
1,024
$ 0.88
12-разрядный АЦП с вычислениями, маломощные опции
20
28
2 048
$ 0,95
12-разрядный АЦП с вычислениями, маломощные опции
28
14
1,024
$ 0.95
12-разрядный АЦП с вычислениями, маломощные опции
28
28
2 048
1,04
12-разрядный АЦП с вычислениями, маломощные опции
40
14
368
$ 4.69
10-битный АЦП
% PDF-1.4 % 19885 0 объект > эндобдж xref 19885 499 0000000016 00000 н. 0000010360 00000 п. 0000010610 00000 п. 0000010764 00000 п. 0000010809 00000 п. 0000010875 00000 п. 0000010932 00000 п. 0000016619 00000 п. 0000016877 00000 п. 0000016950 00000 п. 0000017079 00000 п. 0000017194 00000 п. 0000017345 00000 п. 0000017409 00000 п. 0000017534 00000 п. 0000017685 00000 п. 0000017857 00000 п. 0000017972 00000 п. 0000018094 00000 п. 0000018287 00000 п. 0000018473 00000 п. 0000018585 00000 п. 0000018770 00000 п. 0000018910 00000 п. 0000019093 00000 п. 0000019214 00000 п. 0000019332 00000 п. 0000019538 00000 п. 0000019663 00000 п. 0000019841 00000 п. 0000020018 00000 н. 0000020186 00000 п. 0000020353 00000 п. 0000020531 00000 п. 0000020696 00000 п. 0000020897 00000 п. 0000021060 00000 п. 0000021208 00000 п. 0000021396 00000 н. 0000021541 00000 п. 0000021705 00000 п. 0000021886 00000 п. 0000022074 00000 п. 0000022260 00000 п. 0000022449 00000 п. 0000022645 00000 п. 0000022842 00000 п. 0000023037 00000 п. 0000023233 00000 п. 0000023421 00000 п. 0000023614 00000 п. 0000023769 00000 п. 0000023960 00000 п. 0000024174 00000 п. 0000024368 00000 п. 0000024569 00000 п. 0000024767 00000 п. 0000024966 00000 п. 0000025129 00000 п. 0000025291 00000 п. 0000025453 00000 п. 0000025618 00000 п. 0000025781 00000 п. 0000025962 00000 п. 0000026127 00000 п. 0000026299 00000 п. 0000026561 00000 п. 0000026683 00000 п. 0000026816 00000 п. 0000026961 00000 п. 0000027176 00000 п. 0000027337 00000 п. 0000027508 00000 п. 0000027675 00000 н. 0000027854 00000 п. 0000028002 00000 п. 0000028146 00000 п. 0000028307 00000 п. 0000028461 00000 п. 0000028605 00000 п. 0000028760 00000 п. 0000028916 00000 п. 0000029082 00000 п. 0000029247 00000 п. 0000029426 00000 п. 0000029601 00000 п. 0000029775 00000 п. 0000029943 00000 н. 0000030110 00000 п. 0000030275 00000 п. 0000030490 00000 п. 0000030637 00000 п. 0000030839 00000 п. 0000030994 00000 п. 0000031136 00000 п. 0000031294 00000 п. 0000031438 00000 п. 0000031652 00000 п. 0000031783 00000 п. 0000031920 00000 п. 0000032084 00000 п. 0000032239 00000 п. 0000032423 00000 п. 0000032569 00000 п. 0000032698 00000 п. 0000032852 00000 п. 0000032994 00000 п. 0000033148 00000 п. 0000033307 00000 п. 0000033450 00000 п. 0000033604 00000 п. 0000033757 00000 п. 0000033905 00000 п. 0000034070 00000 п. 0000034224 00000 п. 0000034374 00000 п. 0000034529 00000 п. 0000034674 00000 п. 0000034849 00000 п. 0000035025 00000 п. 0000035170 00000 п. 0000035311 00000 п. 0000035469 00000 п. 0000035602 00000 п. 0000035761 00000 п. 0000035910 00000 п. 0000036039 00000 п. 0000036230 00000 п. 0000036402 00000 п. 0000036525 00000 п. 0000036656 00000 п. 0000036788 00000 п. 0000036942 00000 п. 0000037138 00000 п. 0000037300 00000 п. 0000037445 00000 п. 0000037591 00000 п. 0000037720 00000 п. 0000037872 00000 п. 0000038053 00000 п. 0000038238 00000 п. 0000038345 00000 п. 0000038527 00000 п. 0000038647 00000 п. 0000038818 00000 п. 0000038944 00000 п. 0000039140 00000 п. 0000039275 00000 п. 0000039416 00000 н. 0000039589 00000 п. 0000039723 00000 п. 0000039922 00000 н. 0000040044 00000 п. 0000040164 00000 п. 0000040297 00000 п. 0000040430 00000 п. 0000040563 00000 п. 0000040698 00000 п. 0000040853 00000 п. 0000041041 00000 п. 0000041228 00000 п. 0000041417 00000 п. 0000041585 00000 п. 0000041746 00000 п. 0000041902 00000 п. 0000042038 00000 п. 0000042184 00000 п. 0000042323 00000 п. 0000042458 00000 п. 0000042623 00000 п. 0000042789 00000 н. 0000042903 00000 п. 0000043090 00000 н. 0000043230 00000 п. 0000043346 00000 п. 0000043506 00000 п. 0000043709 00000 п. 0000043819 00000 п. 0000043998 00000 п. 0000044148 00000 п. 0000044289 00000 п. 0000044477 00000 п. 0000044606 00000 п. 0000044787 00000 п. 0000044934 00000 п. 0000045095 00000 п. 0000045265 00000 п. 0000045467 00000 п. 0000045589 00000 п. 0000045771 00000 п. 0000045905 00000 п. 0000046029 00000 п. 0000046179 00000 п. 0000046328 00000 п. 0000046465 00000 п. 0000046645 00000 п. 0000046786 00000 п. 0000046908 00000 н. 0000047089 00000 п. 0000047224 00000 п. 0000047348 00000 п. 0000047474 00000 п. 0000047616 00000 п. 0000047801 00000 п. 0000047921 00000 п. 0000048162 00000 п. 0000048302 00000 п. 0000048465 00000 н. 0000048609 00000 н. 0000048733 00000 п. 0000048909 00000 н. 0000049098 00000 н. 0000049230 00000 п. 0000049397 00000 п. 0000049510 00000 п. 0000049659 00000 п. 0000049816 00000 п. 0000050006 00000 п. 0000050146 00000 п. 0000050272 00000 п. 0000050398 00000 п. 0000050554 00000 п. 0000050759 00000 п. 0000050928 00000 п. 0000051102 00000 п. 0000051294 00000 п. 0000051472 00000 п. 0000051652 00000 п. 0000051797 00000 п. 0000051948 00000 п. 0000052132 00000 п. 0000052317 00000 п. 0000052499 00000 п. 0000052658 00000 п. 0000052807 00000 п. 0000052970 00000 п. 0000053117 00000 п. 0000053265 00000 п. 0000053457 00000 п. 0000053634 00000 п. 0000053823 00000 п. 0000054014 00000 п. 0000054149 00000 п. 0000054302 00000 п. 0000054471 00000 п. 0000054640 00000 п. 0000054774 00000 п. 0000054929 00000 п. 0000055074 00000 п. 0000055208 00000 п. 0000055365 00000 п. 0000055537 00000 п. 0000055695 00000 п. 0000055881 00000 п. 0000056018 00000 п. 0000056142 00000 п. 0000056292 00000 п. 0000056457 00000 п. 0000056626 00000 п. 0000056812 00000 п. 0000056943 00000 п. 0000057094 00000 п. 0000057262 00000 п. 0000057398 00000 п. 0000057607 00000 п. 0000057741 00000 п. 0000057895 00000 п. 0000058048 00000 п. 0000058217 00000 п. 0000058397 00000 п. 0000058575 00000 п. 0000058753 00000 п. 0000058921 00000 п. 0000059092 00000 п. 0000059226 00000 п. 0000059359 00000 п. 0000059544 00000 п. 0000059689 00000 п. 0000059825 00000 п. 0000059969 00000 н. 0000060157 00000 п. 0000060301 00000 п. 0000060470 00000 п. 0000060627 00000 п. 0000060835 00000 п. 0000061034 00000 п. 0000061154 00000 п. 0000061335 00000 п. 0000061445 00000 п. 0000061617 00000 п. 0000061755 00000 п. 0000061909 00000 п. 0000062049 00000 п. 0000062238 00000 п. 0000062363 00000 п. 0000062540 00000 п. 0000062698 00000 п. 0000062870 00000 п. 0000063004 00000 п. 0000063170 00000 п. 0000063356 00000 п. 0000063480 00000 п. 0000063650 00000 п. 0000063808 00000 п. 0000063995 00000 н. 0000064167 00000 п. 0000064337 00000 п. 0000064499 00000 н. 0000064668 00000 п. 0000064851 00000 п. 0000064981 00000 п. 0000065115 00000 п. 0000065286 00000 п. 0000065420 00000 п. 0000065536 00000 п. 0000065680 00000 п. 0000065811 00000 п. 0000066001 00000 п. 0000066128 00000 п. 0000066263 00000 п. 0000066411 00000 п. 0000066575 00000 п. 0000066748 00000 п. 0000066927 00000 н. 0000067045 00000 п. 0000067176 00000 п. 0000067292 00000 п. 0000067464 00000 н. 0000067635 00000 п. 0000067758 00000 п. 0000067918 00000 п. 0000068084 00000 п. 0000068256 00000 п. 0000068396 00000 п. 0000068552 00000 п. 0000068723 00000 п. 0000068857 00000 п. 0000069024 00000 п. 0000069199 00000 п. 0000069353 00000 п. 0000069496 00000 п. 0000069669 00000 п. 0000069795 00000 п. 0000069884 00000 п. 0000070015 00000 п. 0000070188 00000 п. 0000070330 00000 п. 0000070449 00000 п. 0000070587 00000 п. 0000070725 00000 п. 0000070861 00000 п. 0000071037 00000 п. 0000071205 00000 п. 0000071362 00000 п. 0000071497 00000 п. 0000071621 00000 п. 0000071757 00000 п. 0000071880 00000 п. 0000072031 00000 п. 0000072204 00000 п. 0000072328 00000 п. 0000072484 00000 п. 0000072628 00000 п. 0000072766 00000 п. 0000072935 00000 п. 0000073108 00000 п. 0000073261 00000 п. 0000073420 00000 п. 0000073583 00000 п. 0000073722 00000 п. 0000073878 00000 п. 0000074054 00000 п. 0000074262 00000 п. 0000074394 00000 п. 0000074598 00000 п. 0000074737 00000 п. 0000074921 00000 п. 0000075029 00000 п. 0000075172 00000 п. 0000075284 00000 п. 0000075452 00000 п. 0000075611 00000 п. 0000075763 00000 п. 0000075911 00000 п. 0000076036 00000 п. 0000076172 00000 п. 0000076301 00000 п. 0000076499 00000 н. 0000076670 00000 п. 0000076831 00000 н. 0000077015 00000 п. 0000077174 00000 п. 0000077326 00000 п. 0000077484 00000 п. 0000077643 00000 п. 0000077829 00000 п. 0000077972 00000 п. 0000078107 00000 п. 0000078271 00000 п. 0000078407 00000 п. 0000078596 00000 п. 0000078738 00000 п. 0000078885 00000 п. 0000079020 00000 н. 0000079208 00000 п. 0000079381 00000 п. 0000079526 00000 п. 0000079662 00000 п. 0000079845 00000 п. 0000079979 00000 п. 0000080125 00000 п. 0000080265 00000 п. 0000080417 00000 п. 0000080542 00000 п. 0000080688 00000 п. 0000080823 00000 п. 0000080969 00000 п. 0000081120 00000 п. 0000081270 00000 п. 0000081448 00000 п. 0000081560 00000 п. 0000081731 00000 п. 0000081877 00000 п. 0000082034 00000 п. 0000082224 00000 п. 0000082413 00000 п. 0000082556 00000 п. 0000082692 00000 п. 0000082880 00000 п. 0000082988 00000 н. 0000083173 00000 п. 0000083278 00000 п. 0000083464 00000 п. 0000083571 00000 п. 0000083693 00000 п. 0000083868 00000 п. 0000084016 00000 п. 0000084202 00000 п. 0000084382 00000 п. 0000084506 00000 п. 0000084637 00000 п. 0000084811 00000 п. 0000084942 00000 п. 0000085127 00000 п. 0000085269 00000 п. 0000085372 00000 п. 0000085501 00000 п. 0000085687 00000 п. 0000085862 00000 п. 0000086033 00000 п. 0000086171 00000 п. 0000086306 00000 п. 0000086456 00000 п. 0000086607 00000 п. 0000086760 00000 п. 0000086910 00000 п. 0000087080 00000 п. 0000087244 00000 п. 0000087415 00000 п. 0000087552 00000 п. 0000087689 00000 н. 0000087820 00000 п. 0000087948 00000 н. 0000088078 00000 п. 0000088216 00000 п. 0000088371 00000 п. 0000088522 00000 п. 0000088672 00000 н. 0000088793 00000 п. 0000088948 00000 н. 0000089264 00000 п. 00000
00000 п. 00000
Введение в PIC16F877a – Инженерные проекты
Привет, друзья, я надеюсь, что у вас все хорошо и весело.Сегодня я собираюсь дать вам Введение в PIC16F877a . Это наиболее часто используемый микроконтроллер PIC из-за его эксплуатационной гибкости, доступности и дешевизны. Вы можете купить этот микроконтроллер PIC почти в каждом электронном онлайн-магазине, и вы получите его всего за 2–3 доллара. У меня много запросов на PIC16F877a от студентов-инженеров, потому что этот микроконтроллер PIC много используется в инженерных проектах. Вот почему я решил поделиться всеми подробностями о PIC16F877a.Если вы новичок в микроконтроллере PIC, я должен предложить вам внимательно прочитать этот полный пост и задать свои вопросы в комментариях. Вы также должны посмотреть это видео, в котором я дал Введение в PIC16F877a:Введение в PIC16F877a
- PIC16F877a – это 40-контактный микроконтроллер PIC, который в основном используется во встраиваемых проектах и приложениях. Вот некоторые из его функций:
- Он имеет пять портов, начиная с порта A и заканчивая портом E .
- Он содержит трех таймеров , два из которых являются 8-битными таймерами, а 1 – 16-битными.
- Он поддерживает множество протоколов связи, например:
- Последовательный протокол.
- Параллельный протокол.
- Протокол I2C.
- Он поддерживает прерывания как от аппаратных выводов, так и от таймера.
- Вот схема выводов PIC16F877a, я упомянул имена всех выводов, а также присвоил разные цвета разным портам.
- На изображении выше вы можете видеть, что выводы микроконтроллера PIC имеют более одного имени, потому что каждый вывод PIC может выполнять множество задач.
- Например, проверьте контакт № 25, он может использоваться как контакт № 6 цифрового порта C (RC6), а также может использоваться как передатчик (TX) для последовательной связи.
- Итак, теперь вам решать, как вы хотите использовать каждый вывод, и мы проверим большинство этих функций вывода в сегодняшнем руководстве.
- В следующем разделе я по очереди объясню все эти функции Pin.
- Итак, в первую очередь, мы рассмотрим базовую схему PIC16F877a:
1. Базовая схема PIC16F877a
- Каждый микроконтроллер PIC имеет базовую схему, и если вы не будете разрабатывать базовую схему, тогда она не сработает.
- Это то же самое, что и питание вашего микроконтроллера PIC, и он работает на уровне + 5В.
- Если вы хотите включить вентилятор, что вы будете делать? Вы просто предоставите ему питание, и это то, что мы будем делать с PIC, но в случае PIC нам также нужно указать частоту, на которой он будет работать.
- Итак, теперь мы знаем, что нам нужно спроектировать базовую схему, и эта базовая схема содержит мощность, а также частоту, на которой она будет работать.
- Чтобы обеспечить частоту для микроконтроллера PIC, мы используем кварцевый генератор, а для PIC 16F877a вы можете использовать кварцевый генератор с диапазоном частот от 4 МГц до 40 МГц .
- Итак, вот базовая схема PIC16F877a , которую вам нужно спроектировать:
- Я изо всех сил старался сделать эту базовую схему PIC16F877a как можно более простой.
- Вышеупомянутая схема может показаться вам немного сложной, но на самом деле это не так, позвольте мне объяснить это вывод за выводом:
- Вывод № 1: Этот вывод называется MCLR (Master Clear) , и нам нужно обеспечить 5 В для этот вывод через сопротивление 10 кОм.
- Контакт № 11 и Контакт № 32: Эти контакты обозначены как Vdd , поэтому нам также необходимо обеспечить его + 5 В, и вы можете видеть, что эти линии красного цвета на рисунке выше.
- Контакт № 12 и Контакт № 31: Эти контакты имеют вид Vss , поэтому мы установили GND (Земля) на этот контакт, и его линии окрашены в черный цвет.
- Pin # 13 и 14: Эти контакты называются OSC1 (Oscillator 1) и OSC2 (Oscillator 2), теперь мы должны подключить наш Crystal Oscillator (16MHz) к этим контактам, которые я обозначил в оранжевом цвете. После кварцевого генератора у нас есть конденсаторы емкостью 33 пФ, а затем они заземлены.
- Мы разработали нашу базовую схему, и теперь наш микроконтроллер PIC готов к работе, но вы также можете увидеть светодиод, подключенный к выводу # 21, и это потому, что нам также нужно проверить, работает он или нет, чтобы мы могли включить или выключить этот светодиод. .
- Вам следует взглянуть на проект LED Blinking Project на микроконтроллере PIC, в котором я мигал светодиодом с помощью микроконтроллера PIC.
- Вот видео, в котором я разработал эту базовую схему PIC16F877a:
2. Порты PIC16F877a
- Итак, теперь я надеюсь, что вы получили полное представление о базовой схеме PIC16F877a, так что теперь, если вы заметили, что в В базовой схеме мы использовали все выводы питания микроконтроллера PIC, в то время как все выводы портов были свободными.
- Итак, теперь, когда мы включили наш микроконтроллер PIC, следующее, что нам нужно сделать, это разработать код и использовать порты микроконтроллера PIC. Сначала давайте взглянем на эти порты PIC16F877a.
- PIC16F877a имеет всего 5 портов, а именно:
- Порт A : всего 6 контактов, начиная с Pin # 2 до Pin # 7 . Контакты порта A имеют маркировку от RA0 до RA5, где RA0 – это метка первого контакта порта A.
- Порт B: Всего у него 8 контактов, начиная с контакта № 33 и заканчивая контактом № 40 .Контакты порта B имеют маркировку от RB0 до RB7, где RB0 – это метка первого контакта порта B.
- Порт C: Всего имеет 8 контактов. Штифты не совмещены. Первые четыре контакта порта C расположены на контакте № 15 – контакте № 18 , а последние четыре – на контакте № 23 – контакте № 26 .
- Порт D: Всего имеет 8 контактов. Его штифты также не совмещены. Первые четыре контакта порта D расположены на контакте №19 – контакте №22 , а последние четыре – на контакте №27 – контакте №30 .
- Порт E: Всего имеет 3 контакта, начиная с контакта № 8 и заканчивая контактом № 10 . Контакты порта E имеют маркировку от RE0 до RE2, где RE0 – это метка первого контакта порта E.
- Все эти порты помечены на рисунке ниже:
- Вы можете увидеть все эти порты PIC16F877a на рисунке выше, теперь давайте посмотрим, как их использовать.
- Прежде всего вам нужно решить, хотите ли вы, чтобы ваши выводы порта были входными или выходными.
- Запутались? : P Предположим, у вас есть какой-то датчик, и вы хотите получить его значение, тогда вам нужно подключить этот датчик к микроконтроллеру PIC, теперь в этом случае ваш PIC Pin будет действовать как Input Pin , потому что он будет вводить значение с датчика. Датчик отправляет значение, а PIC его получает.
- Теперь, если у вас есть двигатель постоянного тока, и вы хотите переместить этот двигатель постоянного тока с помощью микроконтроллера PIC. Итак, в этом случае вы должны отправить команду с микроконтроллера PIC на двигатель постоянного тока, чтобы ваш вывод PIC действовал как вывод , вывод .
- Каждый порт микроконтроллера PIC связан с двумя регистрами, например, регистры порта D:
- Оба этих регистра 8-битные, потому что порт D содержит 8 контактов.
- TRISD решает, является ли порт выходным или входным, и мы также можем назначить значения каждому контакту отдельно. Если мы присвоили 0, то это будет ВЫХОД, а если мы предоставили 1, то это будет ВХОД.
- Например, если я назначил TRISD = 0x01, то первые 7 контактов порта D будут выходными, но последний контакт будет входным, потому что 0x01 на самом деле является 00000001 в двоичном формате. Регистр
- PortD содержит фактическое значение, и это значение фактически является комбинацией всех 8 контактов.
3. Компилятор PIC16F877a
- Официальный компилятор микроконтроллера PIC – это компилятор MPLAB C18, доступный онлайн на официальном сайте Microchip.
- Существуют также другие компиляторы, и обычно я использую MikroC Pro For PIC.
- Вам следует взглянуть на этот список из трех лучших компиляторов PIC C.
- Мы пишем код в PIC Compilers, а затем компилируем его.После компиляции создается шестнадцатеричный файл, который мы загружаем в микроконтроллер PIC.
4. Последовательный порт PIC16F877a
- PIC16F877a имеет один последовательный порт, который используется для передачи данных.
- На рисунке ниже я упомянул последовательные контакты PIC16F877a.
- Как вы можете видеть на приведенном выше рисунке:
- Контакт № 25 также действует как TX, поэтому, если вы хотите выполнить последовательную связь, он будет использоваться для отправки последовательных данных.
- Контакт № 26 также действует как приемник, поэтому, если вы хотите установить последовательную связь, он будет использоваться для приема последовательных данных.
- Вам также следует взглянуть на Что такое последовательный порт, если вы мало что знаете о последовательном порте.
5. PIC16F877a Связь I2C
- PIC16F877a также имеет один порт I2C, с помощью которого мы можем легко установить связь I2C.
- Эти Пины связи I2C PIC16F877a показаны на рисунке ниже:
- Как вы можете видеть на рисунке выше, Пины связи I2C PIC16F877a:
- Контакт № 18: Он действует как SCL , что является аббревиатурой Serial Clock Line .
- Контакт # 23: Он действует как SDA , что является аббревиатурой Serial Data Line .
- Теперь вы можете видеть, что у нас есть последовательный порт и порт I2C в порту C, поэтому мы можем использовать порт C как простой порт, но также можем осуществлять эти два обмена данными с его контактами, так что это полностью зависит от программиста.
6. Прерывания PIC16F877a
- Я надеюсь, что вы все знаете о прерываниях, если нет, то вам стоит взглянуть на прерывания в микроконтроллере PIC. У
- PIC16F877a всего 8 источников прерываний. Источник прерывания – это какое-то событие, которое генерирует прерывание, этим источником может быть таймер, например, прерывания, генерируемые через каждую 1 секунду, или это также может быть событие изменения состояния вывода, например, если состояние вывода изменяется, тогда будет сгенерировано прерывание.
- Итак, прерывания PIC16F877a могут быть сгенерированы следующими 8 способами:
- Внешние прерывания.
- Прерывания от таймера (Timer0 / Timer1).
- Изменение состояния порта B.
- Чтение / запись параллельного подчиненного порта.
- A / D преобразователь.
- Последовательный прием / передача.
- ШИМ (CCP1 / CCP2).
- Операция записи EEPROM.
- PIC16F877a Прерывания связаны с менее чем 5 регистрами:
- INTCON
- PIE1
- ПИР1
- PIE2
- ПИР2
Введение, схема контактов, описание контактов, характеристики и техническое описание
PIC16F877A Конфигурация контактов
Номер контакта | Имя контакта | Описание |
1 | MCLR / Vpp | MCLR используется во время программирования, в основном подключен к программатору , например, PicKit |
2 | RA0 / AN0 | Аналоговый вывод 0 или 0 -й вывод PORTA |
3 | RA1 / AN1 | Аналоговый вывод 1 или 1 st вывод PORTA |
4 | RA2 / AN2 / Vref- | Аналоговый вывод 2 или 2 и вывод PORTA |
5 | RA3 / AN3 / Vref + | Аналоговый вывод 3 или 3 вывод PORTA |
6 | RA4 / T0CKI / C1выход | 4 пин PORTA |
7 | RA5 / AN4 / SS / C2выход | Аналоговый вывод 4 или 5 -й вывод PORTA |
8 | RE0 / RD / AN5 | Аналоговый вывод 5 или 0 -й вывод PORTE |
9 | RE1 / WR / AN6 | Аналоговый вывод 6 или 1 st вывод PORTE |
10 | RE2 / CS / AN7 | 7 пин PORTE |
11 | Vdd | Контакт заземления MCU |
12 | Vss | Положительный вывод MCU (+ 5V) |
13 | OSC1 / CLKI | Внешний осциллятор / вход тактового сигнала |
14 | OSC2 / CLKO | Внешний осциллятор / вывод тактового сигнала |
15 | RC0 / T1OSO / T1CKI | 0 штырь ПОРТА С |
16 | RC1 / T1OSI / CCP2 | 1 вывод POCTC или Таймер / ШИМ вывод |
17 | RC2 / CCP1 | 2 nd вывод POCTC или Таймер / ШИМ вывод |
18 | RC3 / SCK / SCL | 3 rd контакт POCTC |
19 | RD0 / PSP0 | 0 штырь POCTD |
20 | RD1 / PSPI | 1 st пин POCTD |
21 | RD2 / PSP2 | 2 nd контакт POCTD |
22 | RD3 / PSP3 | 3 rd контакт POCTD |
23 | RC4 / SDI / SDA | 4 -й вывод POCTC или последовательных данных на выводе |
24 | RC5 / SDO | 5 -й вывод POCTC или вывод последовательного выхода данных |
25 | RC6 / Tx / CK | 6 -й вывод POCTC или Вывод передатчика микроконтроллера |
26 | RC7 / Rx / DT | 7 -й вывод POCTC или Вывод приемника микроконтроллера |
27 | RD4 / PSP4 | 4 штырь POCTD |
28 | RD5 / PSP5 | 5 штырь POCTD |
29 | RD6 / PSP6 | 6 штырь POCTD |
30 | RD7 / PSP7 | 7 штырь POCTD |
31 | Vss | Положительный вывод MCU (+ 5V) |
32 | Vdd | Контакт заземления MCU |
33 | РБ0 / ИНТ | 0 -й вывод POCTB или Внешнее прерывание вывод |
34 | РБ1 | 1 st пин POCTB |
35 | РБ2 | 2 nd контакт POCTB |
36 | РБ3 / PGM | 3 rd контакт POCTB или подключен к программатору |
37 | РБ4 | 4 пин POCTB |
38 | РБ5 | 5 штырь POCTB |
39 | RB6 / PGC | 6 -й контакт POCTB или , подключенный к программатору |
40 | RB7 / PGD | 7 -й вывод POCTB или подключен к программатору |
PIC16F877A – Упрощенные функции | |
ЦП | 8-битный PIC |
Количество контактов | 40 |
Рабочее напряжение (В) | от 2 до 5.5 В |
Количество контактов ввода / вывода | 33 |
Модуль АЦП | 8-канальный, 10-битный |
Модуль таймера | 8-бит (2), 16-бит (1) |
Компараторы | 2 |
Модуль ЦАП | Нет |
Периферийные устройства связи | UART (1), SPI (1), I2C (1), MSSP (SPI / I2C) |
Внешний осциллятор | до 20 МГц |
Внутренний осциллятор | Нет |
Тип памяти программ | Вспышка |
Программная память (КБ) | 14 КБ |
Скорость процессора (MIPS) | 5 MIPS |
байтов ОЗУ | 368 |
Данные EEPROM | 256 байт |
Примечание: техническое описание микроконтроллера PIC16F877A и более подробные характеристики можно найти внизу этой страницы.
Другие микроконтроллеры PIC
PIC12F508, PIC12F629, PIC12F683, PIC16F505, PIC16F628A, PIC16F676, PIC16F72, PIC16F873A, PIC16F876A, PIC16F886, PIC18F252, PIC18F25520, PIC18000
PIC16F877AЭтот мощный (выполнение команд 200 наносекунд), но простой в программировании (всего 35 команд из одного слова) 8-разрядный микроконтроллер на базе CMOS FLASH объединяет мощную архитектуру PIC® от Microchip в пакет из 40 пакетов и совместим снизу вверх с PIC16C5X, PIC12CXXX и Устройства PIC16C7X.PIC16F877A имеет 256 байт памяти данных EEPROM, самопрограммирование, ICD, 2 компаратора, 8 каналов 10-битного аналого-цифрового (A / D) преобразователя, 2 функции захвата / сравнения / PWM, синхронный последовательный порт может может быть сконфигурирован как 3-проводной последовательный периферийный интерфейс (SPI ™) или как 2-проводная шина между интегральными схемами (I²C ™) и универсальный асинхронный приемный передатчик (USART).
Как выбрать микроконтроллер PICMicrochip представляет собой отходы микроконтроллеров семейства PIC.У каждого MCU есть свои преимущества и недостатки. Есть много параметров, которые нужно учитывать, прежде чем выбирать MCU для своего проекта. Приведенные ниже пункты – это всего лишь предложения, которые могут помочь выбрать MCU.
- Если вы новичок, изучающий PIC, то хорошим выбором будет MCU с хорошей поддержкой онлайн-сообщества и широкими приложениями. PIC16F877A и PIC18F4520 – два таких микроконтроллера
- Учитывайте рабочее напряжение вашей системы. Если они 5 В, выберите MCU 5 В, некоторые датчики или устройства работают и обмениваются данными на 3.3 В в этом случае можно выбрать микроконтроллер 3,3 В
- Если размер и цена являются ограничениями, вы можете выбрать небольшие 8-контактные микроконтроллеры, такие как PIC12F508. Они также сравнительно дешевле.
- На основе датчиков и исполнительных механизмов, используемых в вашем проекте, проверьте, какие модули вам могут понадобиться для MCU. Например, вы читаете много аналоговых напряжений, а затем убедитесь, что PIC имеет достаточно каналов АЦП и поддерживающее разрешение. Подробная информация обо всех модулях приведена в таблице выше.
- Если ваш проект использует протоколы связи, такие как UART, SPI, I2C, CAN и т. Д., Убедитесь, что ваш PIC может их поддерживать.Некоторые MCU могут поддерживать более одного модуля одного и того же протокола
PIC может быть запрограммирован с помощью различного программного обеспечения, доступного на рынке. Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров PIC. Приведенные ниже сведения относятся к наиболее продвинутому и распространенному программному обеспечению и компилятору, которые были разработаны самой Microchip.
Для программирования микроконтроллера PIC нам понадобится IDE (интегрированная среда разработки), в которой происходит программирование.Компилятор, в котором наша программа преобразуется в читаемую форму MCU, называемую HEX-файлами. IPE (интегрированная среда программирования), которая используется для выгрузки нашего шестнадцатеричного файла в наши микроконтроллеры PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Компилятор: XC8
КомпанияMicrochip предоставила все эти три программы бесплатно. Их можно скачать прямо с их официальной страницы. Я также предоставил ссылку для вашего удобства. После загрузки установите их на свой компьютер.Если у вас возникли проблемы с этим, вы можете опубликовать их в комментарии ниже.
Чтобы вывести или загрузить наш код в PIC, нам понадобится устройство под названием PICkit 3. Программатор / отладчик PICkit 3 – это простой и недорогой внутрисхемный отладчик, который управляется ПК, на котором работает MPLAB IDE ( v8.20 или выше) на платформе Windows. Программатор / отладчик PICkit 3 является неотъемлемой частью набора инструментов разработчика. В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf или макет, паяльная станция, микросхемы PIC, кварцевые генераторы, конденсаторы и т. Д.
Компоненты, связанные с PICPICkit3, PIC Development Board, кварцевые генераторы, конденсаторы, адаптер 12 В, регулятор напряжения 7805.
Подробные характеристики PIC16F877APIC16F877A – Подробные характеристики | |
ЦП | 8-битный PIC |
Архитектура | 8 |
Размер памяти программ (Кбайт) | 14 |
RAM (байты) | 368 |
EEPROM / HEF | 256 / HEF |
Количество выводов | 40 |
Макс.Частота процессора (МГц) | 20 |
Выбор периферийного вывода (PPS) | № |
Внутренний осциллятор | № |
№ компараторов | 2 |
№Операционного усилителя | 0 |
Кол-во каналов АЦП | 14 |
Максимальное разрешение АЦП (бит) | 10 |
АЦП с вычислением | № |
Количество преобразователей ЦАП | 0 |
Максимальное разрешение ЦАП | 0 |
Внутреннее опорное напряжение | Есть |
Обнаружение нулевого пересечения | № |
№8-битных таймеров | 2 |
Количество 16-битных таймеров | 1 |
Таймер измерения сигнала | 0 |
Аппаратный таймер ограничения | 0 |
№Выходов ШИМ | 0 |
Максимальное разрешение ШИМ | 10 |
Угловой таймер | № |
Математический ускоритель | № |
№Модуля UART | 1 |
№ модуля SPI | 1 |
№ модуля I2C | 1 |
№ USB-модуля | 0 |
Оконный сторожевой таймер (WWDT) | № |
CRC / сканирование | № |
Генератор с числовым программным управлением | 0 |
Кап.Сенсорные каналы | 11 |
Сегментный ЖК-дисплей | 0 |
Минимальная рабочая температура (* C) | -40 |
Максимальная рабочая температура (* C) | 125 |
Минимальное рабочее напряжение (В) | 2 |
Максимальное рабочее напряжение (В) | 5.5 |
Возможность высокого напряжения | № |
- Несколько проектов DIY
- Очень хороший выбор, если вы изучаете PIC
- Проекты, требующие нескольких интерфейсов ввода-вывода и связи
- Замена для модуля Arduino
- Идеально подходит для аналогово-цифровых приложений более продвинутого уровня в автомобильной, промышленной, бытовой и бытовой технике.
Microchip PIC16F877A-I / P Микроконтроллер, 8-битный PIC, 16 RISC, 14,3 КБ флэш-памяти, 5 В, 40 контактов, пластиковая погружная трубка, 3,81 мм В x 52,26 мм Д x 13,84 мм Ш: Электронные контроллеры: Amazon.com: Промышленные & Научный
Amazon’s Choice выделяет высоко оцененные продукты по хорошей цене, доступные для немедленной доставки.
Амазонки Выбор в интегральных схемах связи от MICROCHIPВременно нет на складе.
Мы прилагаем все усилия, чтобы товар снова появился на складе как можно скорее.
- Убедитесь, что это подходит введя номер вашей модели.
- Максимальная скорость: 20 МГц
- Уровень проверки: промышленный
- Тип продукта: микроконтроллер
- Семья: pic16f877a
- Монтаж: сквозное отверстие
Технические характеристики изделия
Фирменное наименование | МИКРОЧИП |
---|---|
Ean | 0738878248360 |
Высота | 3.81 миллиметр |
Вес изделия | 0,480 унции |
Длина | 52,26 миллиметра |
Номер модели | PIC16F877A-I / P |
Кол-во позиций | 1 |
Номер детали | PIC16F877A-I / P |
Код UNSPSC | 32100000 |
UPC | 738878248360 |
Ширина | 13.84 миллиметра |
Введение в PIC16f877A – инженерные знания
Здравствуйте, друзья, надеюсь, вы все наслаждаетесь жизнью. В сегодняшнем руководстве мы подробно рассмотрим Introduction to PIC16f877A. Из-за меньшей цены и легкого доступа, в основном используется микроконтроллер PIC. Приобрести этот модуль можно в любой электронной надежде по цене от трех до четырех долларов.Большинство студентов инженерных специальностей спрашивали об этом важном микроконтроллере, поэтому я собираюсь поделиться подробным постом об этом контроллере. В сегодняшнем посте мы подробно рассмотрим его работу, распиновку, работу, приложения и функции. Итак, давайте начнем с Introduction to PIC16f877A.
Введение в PIC16f877A
- PIC16F877A принадлежит к группе контроллеров PICmicro и сейчас очень часто используется в различной инженерии, от базового до профессионального.
- Использование флэш-памяти позволяет нам писать и удалять любую программу в соответствии с нашими требованиями и временем.
- Поскольку этот модуль имеет большое пространство в блоке памяти, как правило, восемь килограмм слов и три шестидесяти байта ОЗУ, что позволяет хранить и выполнять более одной функции одновременно.
- В этом модуле сорок выходов с распиновкой, поэтому его можно использовать во многих электронных проектах.
- На этом модуле собрано 5 портов: первый – A, второй – B, третий – C, четвертый – D и пятый – E.
- В этом модуле создано 3 таймера: один шестнадцатиразрядный, а два других восьмибитных.
- Он совместим с последовательными, параллельными и I2C протоколами связи.
Характеристики PIC16F877A
- Это некоторые важные особенности PIC16F877A, которые здесь обозначены.
- Он состоит из восьмибитного центрального блока обработки.
- В этом модуле есть входы фортов разных категорий.
- Его рабочее напряжение находится в диапазоне от двух до 5,5 вольт.
- В этом режиме имеется тридцать три входа и выходных распиновок.
- Имеет аналого-цифровой преобразователь, состоящий из восьми каналов по десять бит,
- В этой модели есть два компаратора.
- Как и другие контроллеры, он не имеет цифро-аналогового преобразователя.
- Обычно используемый протокол связи в этом модуле – UART, SPI, I2C MSSP.
- Он имеет внешний генератор частотой двадцать мегагерц.
- Он не состоит из внутреннего генератора.
- Имеет программируемую флэш-память размером четырнадцать килобайт.
- Скорость его центрального процессора составляет пять MIPS.
- Объем его оперативной памяти составляет три шестьдесят восемь байтов.
Распиновка PIC16F877A
- Существует сорок общих распиновок этого модуля, которые подробно обсуждаются здесь.
MCLR / Vpp
- Через эту распиновку мы программируем контроллер, обычно для его программирования используется PicKit.
RA0 / AN0
- Это нулевая распиновка порта А, а также аналоговая.
RA1 / AN1
- Это первая распиновка порта A и первая аналоговая распиновка.
RA2 / AN2 / Vref-
- Это вторая распиновка порта А.
RA3 / AN3 / Vref +
- Это третья распиновка порта А.
RA4 / T0CKI / C1выход
- Это четвертая распиновка порта A.
RE0 / RD / AN5
- Нулевые распиновки Порта E.
RE1 / WR / AN6
- Это первая распиновка PORT E.
RE2 / CS / AN7
- Седьмая распиновка порта E.
Vdd
- К этой распиновке прикреплена клемма заземления.
ВСС
- На эту распиновку подается плюс пять вольт.
OSC1 / CLKI
- На этой распиновке даны часы внешнего генератора,
RC0 / T1OSO / T1CKI
- Это нулевая распиновка порта C.
RC1 / T1OSI / CCP2
- Это первая распиновка порта C или также называемая распиновкой с широтно-импульсной модуляцией.
RC2 / CCP1
- Это вторая распиновка порта C.
RC3 / SCK / SCL
- Это третья распиновка порта c.
RD0 / PSP0
- Это нулевая распиновка порта D.
RD1 / PSPI
- Это первая распиновка порта D.
RD2 / PSP2
- Это вторая распиновка порта D.
RD3 / PSP3
- Это третья распиновка порта D.
RC4 / SDI / SDA
- Распиновка ввода последовательных данных.
RC5 / SDO
- Это вывод данных serail.
RC6 / Tx / CK
- Распиновка передатчика этого контроллера.
RC7 / Rx / DT
- Распиновка приемника контроллера.
RD4 / PSP4
- Это четвертая распиновка порта D.
RD5 / PSP5
- Это пятая распиновка порта D.
RD6 / PSP6
- Это шесть распиновок порта D.
RD7 / PSP7
- Это седьмая распиновка порта D.
Vss
- На этой распиновке выдается плюс пять вольт.
Vdd
РБ0 / ИНТ
- Эта нулевая распиновка порта B или внешнего прерывания дается в этой распиновке.
РБ1
- Это вторая распиновка порта B.
PIC16F877A Архитектура микроконтроллера
- Наиболее распространенными частями PIC16F877A являются центральный процессор, порты ввода и вывода, аналого-цифровой преобразователь памяти, таймеры, протокол последовательной связи и т. Д.
- На рисунке ниже показана блок-схема структуры PIC16F877A.
ЦП
- Есть разные процессы, происходящие через центральный процессор контроллера, такие как арифметические операции, логические операции.ЦП также выполняет тягу, как между оперативной памятью и другими компонентами контроллера.
- Арифметические и логические операции выполняются АЛУ ЦП. В блоке памяти ЦП хранятся различные типы команд.
- Через блок памяти мы можем определить размер программы микроконтроллера. Одна важная часть контроллера – это блок управления, который управляет шинами связи между центральным процессором и другими частями контроллера.
RAM
- Скорость работы контроллера определяется размером оперативной памяти. ОЗУ состоит из регистров, которые выполняют определенные операции.
- Обычно используются регистры двух типов.
- Первый – GPR, второй – SFR.
- GPR выполняет общие операции, такие как сложение, вычитание, умножение и т. Д. Они могут обрабатывать данные размером до восьми бит.
- GPR выполняет функцию чтения и записи через пользователя.Для их работы им требовалось определенное программное обеспечение.
- Для сложных функций используются регистры SFR, и они могут обрабатывать данные до шестнадцати битов, через эти регистры пользователь может читать и инструктировать, но не может писать.
- Значит, функции, выполняемые этими регистрами, определены во время их создания.
ПЗУ
- Этот блок памяти используется для хранения данных. Через эту память размер нашей программы определяется из-за того, что она известна как память программ,
- Во время работы контроллера программа, уже сохраненная в постоянном запоминающем устройстве, выполняется в соответствии с каждым циклом связи.
EEPROM
- EEPROM или электронно стираемое постоянное запоминающее устройство также относится к категории модулей памяти. В этой команде сохраняется, когда программа запускается.
- В этой памяти хранятся данные после отключения питания контроллера.
Флэш-память :
- Флэш-память контроллера – это тип блока памяти, в котором мы можем читать, писать и стирать программы в соответствии с нашими требованиями.Обычно ПЗУ используется как флэш-память.
Порты ввода и вывода
- В этих модулях A, B, C, D и E есть пять выходов.
- Память порта A – шестнадцатибитная, у порта E – трехбитная, а остальные порты – трехбитные.
- Распиновка этих портов может использоваться для ввода или вывода в соответствии с расположением регистра TRIS.
- Работая как входы и выходы, эти распиновки также могут использоваться как SPI, прерывание, широтно-импульсная модуляция.
PIC16F877A Автобус
- В этом модуле используются 2 типа шин. Первая – это шина данных, а вторая – адресная шина.
- Для отправки и приема данных используется шина данных.
- Используется передача адресов памяти от разных устройств на адресную шину центрального процессора.
Программное обеспечение для программирования PIC16F877A
- Для программирования этого контроллера используется множество типов программного обеспечения, некоторые пользователи использовали язык ассемблера для программирования этого контроллера.
- При этом для программы PIC используется другое программное обеспечение.
- IDE: IPE: Компилятор: XC8
Приложения PIC16F877A
- Это некоторые применения PIC16F877A.
- Используется в многочисленных проектах DIY.
- Для изучения различных типов контроллеров это лучший вариант.
- Для таких проектов, где требуется множество интерфейсов ввода и вывода, этот контроллер является предпочтительным.
- В таких проектах, где требуется Arduino, где вы можете использовать этот контроллер.
Итак, это подробный пост о PIC16F877A, если у вас есть дополнительные вопросы, задавайте их в комментариях. Спасибо за чтение. Хорошего дня,
Автор: Генри
http://www.theengineeringknowledge.comЯ профессиональный инженер и закончил известный инженерный университет, а также имею опыт работы инженером в различных известных отраслях. Я также пишу технический контент, мое хобби – изучать новые вещи и делиться ими с миром. Через эту платформу я также делюсь своими профессиональными и техническими знаниями со студентами инженерных специальностей.
Сообщение навигации
Замена на PIC16F887 или PIC16F1789
PIC16F877A (и ранее PIC16F877) – это микронроллеры, поставляемые Microchip. Это всего лишь одно устройство среди многих микроконтроллеров PIC, и это чип-ветеран по сравнению со многими другими. В Интернете можно найти множество статей, проектов и принципиальных схем, в которых используется PIC16F877A, поэтому кажется, что его использовать имеет смысл, но стоит ли вам все же использовать этот чип?
Быстрый ответ – немедленное нет.Для начала, MPLAB, среда разработки Microchip, упрощает замену кода на другой чип. Это особенно верно в отношении последней версии MPLAB X, включая компилятор XC8 C. Далее, есть несколько более новых PIC с таким же выводом, так что компоновка схемы будет такой же, как на любой диаграмме PIC16F877A.
PIC16F877A в сравнении с другими 40-контактными микроконтроллерами
Код, написанный для PIC16F877A, можно легко поменять местами в MPLAB, принципиальные схемы такие же, но как насчет цены? В последний раз я смотрел другие подходящие микроконтроллеры PIC за четверть цены PIC16F877A.Это превращается в простую задачу!
Какой PIC я могу использовать вместо этого?
Первый очевидный ответ – PIC16F887, незаменимая замена. Он имеет одинаковую распайку контактов с контактами ICSP, питанием и всеми контактами портов в одном и том же месте. PIC16F877A имеет эти функции, которые мы хотим воспроизвести для начала
- 8K пространства кода
- 256 байт EEPROM
- 384 байта SRAM
- 8-уровневый глубокий аппаратный стек
- Тактовая частота до 20 МГц
- 1 16-битный, 2 8-битных таймера
- Синхронный последовательный порт – SPI и I2C
- USART
- 8-канальный, 10-разрядный АЦП
- Сброс неисправности
- 2 аналоговых компаратора
- Модуль захвата, сравнения, ШИМ
и эта распиновка
Как сравнить PIC887?
PIC16F887 имеет все эти функции, включая тот же размер кода и распиновку, но также имеет эти улучшения
- Режимы пониженной мощности
- 14 каналов АЦП
- USART также поддерживает RS422 / 485 и LIN
- Калиброванный внутренний генератор, 8-31 МГц
PIC16F887 Распиновка
Расположение выводов такое же, но 16F887 также имеет дополнительные функции на некоторых портах, например вывод 37 на 877A – это просто RB4, на 887 это также дополнительный вывод АЦП, AN11.
Переключиться с PIC16F877A на PIC16F887 легко, без изменений в схемах и схемах, просто заменить устройство в MPLAB и это намного дешевле. Это настолько очевидное обновление, что пытаться использовать 16F877 или 16F877A не имеет никакого смысла.
Купить Микроконтроллер PIC16F887
Другие устройства PIC
Надеюсь, вы согласны с тем, что мы доказали, что переход на 16F887 – это разумная идея только с точки зрения затрат, но можем ли мы пойти дальше и получить еще больше отдачи от наших затраченных средств без значительного редизайна? Компания Microchip не стояла на месте и выпустила множество новых семейств PIC16F с обозначением PIC16F1xxx.Лучшим соперником в 40-контактной схеме, вероятно, является PIC16F1789, который стоит столько же, как PIC16F887, и имеет такую же распиновку.
Обладает этими преимуществами
- 32K Кодовое пространство не 8KB
- То же 256 байт EEPROM
- 2 КБ SRAM, а не 384 байта
- Тактовая частота 32 МГц, а не 20 МГц
- 16-уровневый глубокий аппаратный стек not 8
- Два модуля захвата / сравнения / ШИМ не 1
- Одинаковые модули USART, SPI и I2C
- 12-разрядный АЦП не 10-разрядный, 15-канальный
- 2.От 3 В до 5,5 В VCC
- 1 8-битный и 3 5-битных цифро-аналоговых преобразователя
(ЦАП) - 4 высокопроизводительных модуля ШИМ
- Четыре высокоскоростных компаратора не 2
- До трех операционных усилителей
- Фиксированное опорное напряжение (FVR)
- Значительно меньшее потребление тока
Хорошо, у него такая же распиновка, в 4 раза больше кодового пространства, намного больше SRAM, лучший АЦП, более быстрая тактовая частота, более широкий диапазон напряжений и стоит те же деньги. Стоит взглянуть.Кодовое пространство и размер SRAM важны, если вы хотите программировать на C. Компилятор C ест SRAM, а 384 байта на 16F887 недостаточно для действительно серьезного проекта. С развитием большего количества аккумуляторных приложений энергопотребление становится более важным, чем когда-либо, и PIC16F1789 (или даже лучше PIC16LF1789) намного эффективнее, чем старые микроконтроллеры PIC.
Купить микроконтроллер PIC16F1789.
Заключение
Использовать PIC16F887A только по соображениям стоимости не имеет смысла.PIC16F887 сразу станет лучшим выбором. Немного потрудившись, вы можете выполнить обновление до PIC16F1789, который имеет еще больше преимуществ. Кстати, то же самое относится к PIC16F84 или PIC16F84A, другому более старому чипу с множеством примеров кода. Намного лучше перейти на более новую 18-контактную микросхему, такую как PIC16F1827, по тем же причинам, которые описаны здесь, более низкой цене, большему количеству функций, более низкому энергопотреблению и большему пространству кода.
В нашем последнем учебном наборе PIC используется PIC16F1789, и в нем содержатся учебные пособия и примеры проектов на ассемблере и языке C, которые помогут вам освоить этот последний микроконтроллер PIC.Он включает в себя последний отладчик и программатор PICkit4.
Микроконтроллеры PIC для начинающих
Дополнительная информация
Выбор программиста PIC
Какой микроконтроллер PIC выбрать?
Хорош ли MPLAB X?
Диапазон программирования PIC
.