Микроконтроллеры pic – что это такое, виды плат, применение

Осваиваем простейший микроконтроллер PIC. Часть 1

Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: PIC16F628A.

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

На первых страницах перечислены основные характеристики МК (русское описание).

Основные моменты, которые нам понадобятся:

  • микроконтроллер содержит внутренний генератор на 4 MHz, так же можно подключить внешний кварц частотой до 20 MHz
  • 16 ног микроконтроллера можно использовать как цифровые входывыходы
  • есть 2 аналоговых компаратора
  • 3 таймера
  • CCP модуль
  • USART модуль
  • 128 байт энергонезависимой памяти EEPROM

Схема расположения выводов:Vdd — питание. Vss — земля. Это минимум, необходимый для работы МК.Остаются доступными 16 ног МК. Не сложно посчитать, что использование каждой ноги каким-либо модулем уменьшает максимальное число используемых цифровых портов.

Компилятор

Как я уже писал в предыдущих статьях, самым простым и легким я посчитал компилятор JAL с IDE JALEdit.

Качаем JALPack, устанавливаем.

В этом паке содержаться все необходимые библиотеки, а так же примеры их использования. Запускаем JALEdit. Открываем пример програмы для нашего микроконтроллера: 16f628a_blink.jal, дабы не портить исходник, сразу сохраняем ее в новый файл, к примеру, 16f628a_test.jal.

Весь код можно разделить на 4 блока:

  • выбор МК и его конфигурация
  • объявление переменных, процедур, функций
  • выполнение настроек и расчетов до основного цикла
  • бесконечный цикл основных действий МК

Нажав F9 (или соответсвующую кнопку) программа скомпилируется в готовую прошивку, при этом будет видно сколько ресурсов МК будет задействовано: Если прочитать комментарии, то станет ясно, что данная программа рассчитана на использование внешнего кварца 20MHz. Так как у нас его пока нет, разберемся с конфигурацией и перепишем программу на использование внутреннего генератора.

Конфигурация

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

  • OSC — конфигурация источника тактирования может принимать 8 различных значений, 4 из которых нам могут понадобиться
    1. INTOSC_NOCLKOUT — внутренний генератор (4M Hz)
    2. HS — внешний высокочастотный кварц (8-20 MHz)
    3. XT = внешний кварц (200 kHz — 4 MHz)
    4. LP — внешний низкочастотный кварц (до 200 kHz)
  • WDT — сторожевой таймер. Основная работа этого таймера в том, что бы перезагрузить микроконтроллер когда он дотикает до конца. Что бы перезагрузки не происходило, его нужно своевременно обнулять.Таким образом при сбое счетчик таймера перестанет обнуляться, что приведет к сбросу МК. Иногда бывает удобно, но в данный момент нам это не потребуется.
  • PWRTE — очередной таймер.При активации он будет сбрасывать МК до тех пор, пока питание не поднимется до нужного уровня.
  • BROWNOUT — сброс МК при падении питания ниже нормы.
  • MCLR — активация возможности внешнего сброса МК. При включении функции МК будет в постоянном резете до тех пор, пока на ноге MCLR (pin 4) не будет положительного напряжения. Для сброса МК достаточно установить кнопку, замыкающую pin 4 на землю.
  • LVP — активация возможности программирования при низком напряжении. При активации один цифровой вход переключится в режим LVP (pin 10). Если подать 5В на эту ногу, то МК перейдет в режим программирования. Для нормальной работы МК требуется держать на этой ноге 0В (подсоединить к земле).Мы будем использовать программатор, использующий повышенное напряжение, потому LVP активировать не требуется.
  • CPD — защита EEPROM от считывания программатором.
  • CP — защита FLASH (прошивки) от считывания программатором.

Изменим конфигурацию под себя:

Моргаем светодиодом по нажатию кнопки

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

Цифровой выход

Выберем еще неиспользуемую ногу МК. Возьмем, к примеру, RB5(pin 11). Данная нога не имеет дополнительных функций, потому она нам более нигде не понадобится. В режиме цифрового выхода МК может притягивать к ноге либо питание, либо землю. Подключать нагрузку можно как к плюсу, так и к минусу.

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

Для ограничения тока через ногу (максимально допустимо 25 мА на цифровой вход или 200 мА на все порты) установлен токоограничительный резистор. По простейшей формуле высчитываем минимальное значение в 125 Ом. Но так как предел нам не нужен, возьмем резистор в 500 Ом (а точнее ближайший подходящий).

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

Цифровой вход

Возьмем вторую неиспользуемую нигде ногу — RB4 (pin 10, указанная в распиновке функция PGM отностися к LVP, который мы отключили). В режиме цифрового входа микроконтроллер может считывать два состояния: наличие или отсутствие напряжения.

Значит нам необходимо подключить кнопку так, что бы в одном состоянии на ногу шел плюс, а во втором состоянии — к ноге подключалась земля.В данном варианте резистор используется в качестве подтяжки (Pull-up). Обычно для подтяжки применяют резистор номиналом 10 кОм.

Можно подключать не только кнопку, главное помнить о ограничении тока через МК.

Кнопка сброса

Пока не забыли, что мы активировали внешний сброс, добавим аналогичную кнопку на ногу MCLR (pin 4).После нажатия такой кнопки МК начнет выполнение программы с нуля.

Прошивка

Присваиваем нашему светодиоду и кнопке переменные:
Теперь присваивая переменной led значения 1 или 0 (on или off, true или false, другие алиасы..

) мы будем подтягивать к нужной ноге МК или плюс, или минус, тем самым зажигая и гася светодиод, а при чтении переменной button мы будем получать 1 если кнопка не нажата и 0 если кнопка нажата.

Теперь напишем необходимые нам действия в бесконечном цикле (эти действия будут выполняться постоянно. При отсутствии бесконечного цикла МК зависнет): Задержка считается просто: частота генератора у нас 4MHz. Рабочая частота в 4 раза меньше: 1 MHz. Или 1 такт = 1 мкс. 500.

000 мкс = 0,5 с. Компилируем прошивку: Теперь нам необходимо записать эту прошивку в МК, собрать устройство согласно схеме и проверить, что у нас все получилось как надо.

Программатор

Все таже схема:Смотрим на распиновку:

  • PGD — pin 13
  • PGC — pin 12
  • MCLR(Vpp) — pin 4
  • Vdd — pin 14
  • Vss — pin 5

Паяем…

Подключаем к компьютеру.

Качаем и запускаем WinPic800.

Идем в Settings->Hardware, выбираем JDM и номер порта, на котором висит программатор

Нажимаем Hardware Test, затем Detect Device

Открываем нашу прошивку pic628a_test.hex

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

Program All, затем Verify All

Если ошибок не возникло, продолжаем паять.

Результат

Финальная схема:Кнопку на MCLR паять можно по желанию, но подтяжка обязательна.Результат работы можно увидеть на видео.Итак, у нас получилось самое простое устройство на микроконтроллере: мигалка светодиодом.

Теперь нам необходимо научиться пользоваться всей оставшейся периферией, но об этом в следущей статье.

Источник: https://habr.com/post/97795/

Микроконтроллеры PIC16, общие сведения, организация памяти

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

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

Для написания программ на ассемблере в микроконтроллерах PIC16 используется 35 простых команд (инструкций), так что выучить и разобраться в них совсем не сложно. К статье прикрепил pdf файл с командами, для желающих изучить команды.

Большинство команд выполняются за один машинный цикл, но есть команды, для которых требуется два машинных цикла. Длительность машинного цикла равна 4 периодам тактового генератора. Например, если у нас стоит кварц на 4 МГц, то длительность машинного цикла равна 1 мкс, при частоте кварца в 20 МГц (что является максимумом для этих микроконтроллеров), машинный цикл равен 200 нс или 0,2 мкс.

В микроконтроллерах семейства PIC16 имеется 3 вида памяти: память программ, память данных и энергонезависимая память EEPROM.

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

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

Регистры общего назначения используется как временная память при выполнении различных логических и вычислительных операций, проще говоря, это ОЗУ.

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

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

Банк выбирается с помощью битов RP1, RP0 регистра STATUS, который определен во всех банках, то есть к регистру STATUS можно обращаться независимо от того какой банк выбран, что является очевидным, иначе мы не смогли бы переключать банки. Некоторые важные регистры специального назначения также определены сразу в нескольких банках.

Регистры ОЗУ также могут быть определены в нескольких банках, на карте памяти данных при этом пишется “accesses 70h-7Fh” (Доступ к 70h-7Fh). В случае микроконтроллера PIC16F628A, к 16-ти регистрам, расположенным по адресам 70h-7Fh, можно обращаться независимо от выбранного банка.

Все это относится к непосредственной адресации, кроме которой существует еще косвенная адресация. Вообще не стоит сильно пугаться этих банков, когда используется небольшое количество регистров ОЗУ, все операции в основном выполняются в одном банке (Банк 0), переключаться приходиться лишь при обращении к некоторым регистрам специального назначения.

Для реализации косвенной адресации используется регистр специального назначения FSR, а также физически не реализованный регистр INDF. Чтобы обратиться к какому-либо регистру (например PORTB), необходимо записать его адрес в регистр FSR, после чего содержимое регистра PORTB условно окажется в регистре INDF.

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

Читайте также:  Bluetooth модуль для arduino: характеристики, распиновка

При использовании косвенной адресации также следует указать банк местонахождения регистра, адрес которого записывают в FSR. При данной адресации банк указывается одним битом IRP регистра STATUS, так как адресация работает в пределах 2-х банков.

Если бит IRP сброшен (значение равно 0), можно обращаться к регистрам 0-го и 1-го банка, при установленном бите (значение равно 1), обращение идет к регистрам 2-го и 3-го банка.

В памяти программ располагается сам код программы в виде последовательности команд. Команды 14-ти разрядные, ячейку памяти программ еще называют словом. Например, у PIC16F628A объем памяти равен 2K x 14 слов (2048 х 14), то есть в памяти программ можно разместить 2048 команд.

В счетчике команд PC находится адрес выполняемой команды, регистр счетчика 13-ти разрядный и разделен на два регистра: старший байт PCH и младший PCL, регистр PCL доступен для записи и чтения, он относится к регистрам специального назначения.

Регистр PCH недоступен, все операции с ним выполняются через дополнительный регистр специального назначения PCLATH. Так как счетчик 13-ти разрядный, то в регистрах PCH и PCLATH используются только 5 бит.

Всего с помощью 13-ти разрядов можно адресовать 8192 слова, поэтому это максимальный объем памяти программ для микроконтроллеров PIC16.

В ходе последовательного выполнения команд содержимое регистра PCL (адрес команды) автоматически инкрементируется, при переполнении происходит инкремент содержимого PCH.

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

При использовании команд изменяющих значение регистра PCL, содержимое регистра PCLATH передается регистру PCH, то же самое происходит при выполнении команд GOTO и CALL.

Следует знать, что в случае вычисляемого перехода при переполнении регистра PCL (например, в результате операции сложения), регистр PCH не инкрементируется.

Например, на момент сложения (прибавляем число 9) значение регистра PCL равнялось 250, а значение PCLATH равно 0, после выполнения команды в PCL будет лежать число 4, но инкремента PCH не произойдет, в PCH запишется число 0 из регистра PCLATH.

Тем самым мы попадем на команду с адресом 4 (0004h) (PCH=xxx00000, PCL=00000100), вместо того чтобы попасть на команду с адресом 260 (0104h) (PCH=xxx00001, PCL=00000100).

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

А теперь расскажу о страницах памяти, команды CALL и GOTO имеют 11-ти разрядное поле для указания адреса, поэтому можно спокойно применять эти команды в пределах 2048 слов (это размер одной страницы) памяти программ, не задумываясь о регистрах PCH и PCLATH.

У микроконтроллера PIC16F628A объем памяти равен одной странице, поэтому там все просто.

В микроконтроллерах с большей памятью при переходах с помощью команд CALL и GOTO необходимо заранее запрограммировать 3-й и 4-й бит в регистре PCLATH, чтобы попасть на нужный участок кода памяти программ.

Например, нам нужно попасть на метку PROG расположенную по адресу 3500 (0DACh) (PCH=xxx01101, PCL=10101100), этот адрес находится уже на первой странице памяти, до нее шла нулевая страница.

Перед вызовом команды CALL PROG, 3-й и 4-й бит регистра PCLATH сброшены, после выполнения команды в регистре PCL будет лежать число 172 (PCL=10101100), так как поле задания адреса 11-ти разрядное, в регистр PCH запишется число 5, а в 3-й и 4-й бит запишутся нули из регистра PCLATH, тем самым мы попадем на команду с адресом 1452 (05ACh) (PCH=xxx000101, PCL=10101100). Чтобы правильно попасть на метку PROG, перед вызовом команды CALL PROG, необходимо установить 3-й бит регистра PCLATH в 1. Таким образом, 3-им и 4-ым битом мы выбираем одну из 4-х страниц памяти программ, в пределах страницы манипуляций с этими битами производить не надо.

При возврате из одной страницы в другую с помощью команд RETURN, RETLW изменять значение битов не требуется, так как стек 13-ти разрядный.

Но надо учесть, что после выполнения этих инструкций, значение регистра PCLATH не изменяется (оно вообще никогда не изменяется само по себе), это справедливо и для инструкции возврата из подпрограммы обработки прерывания RETFIE, и если мы снова воспользуемся командами перехода, мы можем попасть не на тот участок кода.

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

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

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

Таблица команд ассемблера для микроконтроллеров PIC12,16

Последние записи:

Источник: http://radiolaba.ru/programmirovanie-pic-kontrollerov/mikrokontrolleryi-pic16-obshhie-svedeniya-organizatsiya-pamyati.html

Осваиваем PIC микроконтроллер

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

Для этого сначала необходимо обладать некоторыми знаниями о структуре и функционировании PIC микроконтроллера.

Рассмотрим микроконтроллер PIC16C84 или PIC16F84 фирмы Microchip – миниатюрный, но мощный микроконтроллер.

https://www.youtube.com/watch?v=Ut9j4JINpSw

Наличие FLASH-памяти программ, позволяющей перепрограммировать его буквально за секунды. Типовое количество циклов перезаписи – около 1000. Из его 18-ти выводов 13 могут использоваться как разряды ввода/вывода общего назначения.

Когда они программируются на вывод, то допускают ток “1” до 20мА и ток “0” до 25мА (более чем достаточный для подключения, например, светодиодов).

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

Цоколевка выводов микроконтроллера PIC:

Выводы RA* и RB* – это контакты ввода/вывода, связанные с регистрами микроконтроллера PORTA и PORTB соответственно (RA4 также может быть использоваться как вход внутреннего таймера, а RB0 может быть использован как источник прерываний). VDD и VSS – выводы питания (+Uпит и GND соответственно).

Серия 16×84 работает в широком диапазоне питающих напряжений, но обычно VSS подключен к 0В, а VDD подключен +5В.

Вывод основного сброса /MCLR обычно подключен к VDD (напрямую или через резистор), потому что микроконтроллер содержит надежную схему сброса при включении питания – все, что вам надо, микроконтроллер выполнит сам.

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

Более наглядная схема:

Схема содержит RC-генератор и один вывод (RB4) подключен к индикатору. Это – все, что необходимо для работы микроконтроллера. Charles Manning (Electronics Australia, April 1996) написал изумительно короткую (6 слов) программу для мигания индикатора, которую вы можете использовать с этой схемой:

LIST    P=16C84
;
MOVLW   0
TRIS    6
OPTION
LOOP    SLEEP
INCF    6, F
GOTO    LOOP
END

Эта программа написана для MPASM. Для использования программы вы должны извлечь ее из этого файла любым редактором, сохранить в другой файл (например LIGHTS.ASM), затем проассемблировать с помощью MPASM (используйте команду “MPASM LIGHTS.ASM”) для получения HEX файла LIGHTS.

HEX, который может быть загружен в микроконтроллер с помощью программатора. Не обращайте внимания на замечания MPASM о том, что использование регистров TRIS и OPTION “не рекомендуется”. Убедитесь в том, что сторожевой таймер “watchdog” включен и выбран RC-генератор.

Если у вас еще нет MPASM, то здесь представлен HEX-вариант приведенной выше программы:

:0C0000000030660062006300860A0328DE
:00000001FF

Программа использует таймаут “watchdog” таймера как как источник синхронизации для определения моментов включения и выключения светодиода; в результате вы можете заставить светодиод вспыхивать с различной частотой, подключая его к различным разрядам порта PORTB (RB0-RB7, выводы 6-13). Это необычное использование “watchdog” таймера.

Обычно “watchdog” таймер используется, чтобы удостовериться, что PIC ведет себя в соответствии с заданной программой, и, если ваша программа специально не сконфигурирована для использования “watchdog” таймера, активизировать его было бы большой ошибкой. Простая программа LIGHTS использует его для выхода из режима “SLEEP” (т.е.

режима “засыпания”); при выходе из этого режима PIC увеличивает содержимое регистра PORTB, что изменяет состояние RB0-RB7 и опять переходит в режим “засыпания” до следующего таймаута “watchdog” таймера.

“Watchdog” таймер синхронизирован внутренним RC генератором, который имеет одинаковый период на всех PIC микроконтроллерах, следовательно, использование “watchdog” таймера для операций со временем гарантирует, что временные задержки будут измеряться стабильно независимо от конфигурации задающего генератора микроконтроллера или используемой частоты (желательно, чтобы частота составляла хотя бы несколько кГц). Это свойство делает программу LIGHTS очень удобной для начального тестирования большинства макетных плат для PIC. Схема может быть изменена для получения значительно большего количества эффектов путем добавления сведодиодов. Подключите первый из них к выводу RB0 (контакт 6), второй – к RB1 (контакт 7), третий – к RB2 (контакт 8) и т.д. Наилучшим вариантом является использование как минимум четырех светодиодов с увеличением до восьми (последний подключить к RB7, т.е. контакт 13). Каждый сведодиод подключается через резистор 470 Ом между ножкой микроконтроллера и “землей”. Следующая программа реализует эффект “бегущего огня”:

; WALKLEDS.ASM LIST P=16C84
; PORTB   EQU     6 TRISB   EQU     86H
OPTREG  EQU     81H
STATUS  EQU     3
CARRY   EQU     0
RP0     EQU     5
MSB     EQU     3               ;номер бита для крайнего слева светодиода
; CLRF    PORTB           ;погасить все светодиды BSF     STATUS,RP0      ;выбрать регистровый банк 1 CLRF    TRISB^80H       ;установить все разряды PORTB на вывод информации MOVLW   0AH MOVWF   OPTREG^80H      ;настроить предварительный делитель в WDT на (1:4) BCF     STATUS,RP0      ;выбрать регистровый банк 0 INCF    PORTB,F         ;включить крайний справа светодиод BCF     STATUS,CARRY    ;очистить флаг CARRY
LEFT    SLEEP                   ;подождать таймаута WDT (“watchdog” таймера) RLF     PORTB,F         ;сдвинуть содержимое индикатора влево BTFSS   PORTB,MSB       ;достигли крайней левой позиции? GOTO    LEFT            ;если нет – цикл
RIGHT   SLEEP                   ;подождать таймаута WDT RRF     PORTB,F         ;сдвинуть содержимое индикатора вправо BTFSS   PORTB,0         ;достигли крайней левой позиции? GOTO    RIGHT           ;если нет – цикл GOTO    LEFT            ;начать новый цикл END

Проассемблируйте эту программу с помощью MPASM для получения ее HEX представления:

:100000008601831686010A3081008312860A031056
:100010006300860D861D08286300860C061C0C28CC
:020020000828AE
:00000001FF

Программа “бегущий огонь” предназначена для использования четырех светодиодов, но вы можете изменять значение MSB для использования большего количества светодиодов: для количества светодиодов 5, 6, 7 и 8 значения MSB должны быть 4, 5, 6 и 7 соответственно.

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

Таким образом, в отличие от предыдущей программы, во время ассемблирования не будут генерироваться предупреждения Для предотвращения генерации MPASM'мом сообщений о корректном использовании регистровых банков необходимо инвертировать старший значащий бит в любом адресе, приходящемся на банк 1 (например, использовать TRISB^80H вместо обычного TRISB, где оператор “^” означает битовое “исключающее ИЛИ”). Это – одна из уловок, которые используются для подавления вывода предупреждающих сообщений MPASM.

Читайте также:  Управляйте своим arduino с помощью пульта управления - arduino+

В качестве заключительного примера рассмотрим программу, когорая демонстрирует такие же эффекты, как и программа WALKLEDS на 4-х светодиодах. Вы обратите внимание на то, что она значительно больше по объему и ее нельзя назвать примеров эффективного программирования.

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

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

По крайней мере, по стилю она больше напоминает “настоящую” программу для микроконтроллера.

; PATTERN.ASM ; Программа разработана для демонстрации процедур чтения/записи данных EEPROM и обработки
; прерываний таймера. Таблица значений записана в EEPROM процессор выполняет “холостой” ; цикл. Когда таймер переполняется, происходит прерывание работы процессора и следующее ; значение таблицы считывается из EEPROM и записывается в порт B, т.е. отображается на ; светодиодах. С помощью изменений в таблице может быть изображен любой образец длиной до
; 64 значений.
; ; Copyright (C) 1997 David Tait (david.taitman.ac.uk) PROCESSOR 16C84 __CONFIG  03FF3                 ; RC генератор PCL     equ     2
STATUS  equ     3                       ; адреса стандартных регистров
PORTB   equ     6
EEDATA  equ     8
EEADR   equ     9
INTCON  equ     0BH
OPTREG  equ     081H
TRISB   equ     086H
EECON1  equ     088H
EECON2  equ     089H RP0     equ     5
Z       equ     2
GIE     equ     7
T0IE    equ     5
T0IF    equ     2
WREN    equ     2
WR      equ     1
RD      equ     0 #define bank0   bcf STATUS,RP0          ;выбрать Bank 0
#define bank1   bsf STATUS,RP0          ;выбрать bank 1 magic   macro                           ;”магическая” последовательность записи в EEPROM movlw   55H            movwf   EECON2^80H movlw   0AAH movwf   EECON2^80H endm cblock  0CH                     ;блок переменных n_vals n_tmp endc ;**********************************; ; Основная точка входа в программу ; ;**********************************; org     0 goto    start ;**************************; ; Точка входа в прерывание ; ;**************************; org     4 ; Обычно содержимое необходимо сохранять перед процедурой обработки прерывания и ; восстанавливать после нее, но в данной программе в этом нет необходимости, т.к.
; процессор ничего не делает между прерываниями. Смотрите PIC datasheet для ; рекомендуемой процедуры. movf    EEADR,w xorwf   n_vals,w btfsc   STATUS,Z                ;EEADR == n_vals?            clrf    EEADR                   ;если да, то начать с нуля call    ee_rd                   movf    EEDATA,w                ;читать EEPROM movwf   PORTB                   ;отобразить байт incf    EEADR,f                 ;новый адрес bcf     INTCON,T0IF             ;очистить флаг прерывания retfie start   clrf    PORTB bank1 clrf    TRISB^80H               ;все разряды порта B на вывод movlw   B'00000111' movwf   OPTREG^80H              ;таймер 0 предварительный делитель 256:1 bsf     EECON1^80,WREN          ;разрешить запись в EEPROM bank0 call    ee_init                 ;пересылка таблицы в EEPROM bank1 bcf     EECON1^80H,WREN         ;запретить запись в EEPROM bank0 bsf     INTCON,T0IE             ;разрешить прерывания от таймера bsf     INTCON,GIE              ;разрешить все прерывания loop    goto    loop                    ;”холостой” цикл ; ee_init
;
; инициализация EEPROM из таблицы ee_init clrw call    lut                     ;получить кол-во элементов в таблице movwf   n_vals                  ;и сохранить movwf   n_tmp                   ;сохранить еще раз clrf    EEADR decf    EEADR,f                 ;EEADR = -1
ee_in1  incf    EEADR,f                 ;следующий адрес movf    EEADR,w addlw   1 call    lut                     ;получить соответствующее значение таблицы movwf   EEDATA call    ee_wr                   ;запись в EEPROM decfsz  n_tmp,f                 ;есть еще? goto    ee_in1                  ;да clrf    EEADR                   ;нет, завершить return ; lut
;
; просмотр таблицы lut     addwf   PCL,f                   ;добавить W к PCL для получ. адреса эл-та таблицы retlw   D'12'                   ;число элементов в таблице retlw   B'1000'                 ;первый элемент retlw   B'1000' retlw   B'0100' retlw   B'0100' retlw   B'0010' retlw   B'0010' retlw   B'0001' retlw   B'0001' retlw   B'0010' retlw   B'0010' retlw   B'0100' retlw   B'0100'                 ;последний элемент ; ee_wr
;
; Записать байт из EEDATA в EEPROM по адресу в EEADR. Прерывания
; должны быть запрещены перед вызовом ee_wr. ee_wr   bank1 magic                ;вызов “волшебной” последовательности bsf     EECON1^80H,WR           ;начать запись
ee_wr1  btfsc   EECON1^80H,WR           ;запись завершена? goto    ee_wr1                  ;нет bank0 return ; ee_rd ; ; Прочитать байт EEPROM из EEPROM по адресу EEADR в EEDATA ee_rd   bank1 bsf     EECON1^80H,RD           ;начать запись bank0 return                          ;при возвращении чтение должно быть завершено end

Это HEX файл, сформированный MPASM (запишите его как PATTERN.HEX):

:020000000E28C8
:0800080009080C060319890127
:10001000442008088600890A0B110900860183160E
:10002000860107308100081583121C2083160811F1
:1000300083128B168B171B2800012C208C008D003F
:1000400089018903890A0908013E2C2088003A2089
:100050008D0B22288901080082070C3408340834EB
:1000600004340434023402340134013402340234DE
:1000700004340434831655308900AA30890088146A
:100080008818402883120800831608148312080079
:02400E00F33F7E
:00000001FF

При использовании моего программатора это может быть выполнено с помощью следующей команды:

PP PATTERN.HEX                               (PP V-0.4)
TOPIC -G PATTERN.HEX                         (TOPIC V-0.2)

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

Источник: https://radioded.ru/skhema-na-mikrokontrollere/osvaivaem-pic-mikrokontroller

Основные особенности МК серии PIC (Лекция)

В начало

Микроконтроллеры семейств PIC (Peripheral Interface Controller) компании Microchip объединяют все передовые технологии микроконтроллеров: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры. Широкая номенклатура изделий обеспечивает использование микроконтроллеров в устройствах, предназначенных для разнообразных сфер применения.

Первые микроконтроллеры компании Microchip PIC16C5x появились в конце 1980-х годов и благодаря своей высокой производительности и низкой стоимости составили серьезную конкуренцию производившимся в то время 8-разрядным МК с CISC-архитектурой.

Высокая скорость выполнения команд в PIC-контроллерах достигается за счет использования двухшинной гарвардской архитектуры вместо традиционной одношинной фон-неймановской.

Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресными пространствами для команд и данных.

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

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

В настоящее время компания Microchip выпускает пять основных семейств 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:

·         PIC12CXXX – семейство микроконтроллеров, выпускаемых в миниатюрном 8-выводном исполнении. Эти микроконтроллеры выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной (35 команд) системой команд.

Содержат встроенный тактовый генератор, таймер/счетчик, сторожевой таймер, схему управления прерываниями. В составе семейства есть микроконтроллеры со встроенным 8-разрядным четырехканальным АЦП.

Способны работать при напряжении питания до 2,5 В;

·         PIC16C5X – базовое семейство микроконтроллеров с 12-разрядными командами (33 команды), выпускаемое в 18-, 20- и 28-выводных корпусах. Представляют собой простые недорогие микроконтроллеры с минимальной периферией.

Способность работать при малом напряжении питания (до 2 В) делает их удобными для применения в переносных конструкциях.

В состав семейства входят микроконтроллеры подгруппы PIC16HV5XX, способные работать непосредственно от батареи в диапазоне питающих напряжений до 15 В;

·         PIC16CXXX – семейство микроконтроллеров среднего уровня с 14-разрядными командами (35 команд).

Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счетчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и так далее;

·         PIC17CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц, с объемом памяти программ до 16 Кслов.

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

Являются одними из самых быстродействующих в классе 8-разрядных микроконтроллеров;

·         PIC18CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП, работающие на частоте до 40 МГц.

Содержат 31-уровневый аппаратный стек, встроенную память команд до 32 Кслов и способны адресовать до 4 Кбайт памяти данных и до 2 Мбайт внешней памяти программ.

Расширенное RISC-ядро микроконтроллеров данного семейства оптимизировано под использование нового Си-компилятора.

Большинство PIC-контроллеров выпускаются с однократно программируемой памятью программ (OTP), с возможностью внутрисхемного программирования или масочным ПЗУ.

Для целей отладки предлагаются более дорогие версии с ультрафиолетовым стиранием и Flash-памятью. Полный список выпускаемых модификаций PIC-контроллеров включает порядка пятисот наименований.

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

Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB.

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

Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC-микроконтроллеров, так и универсальные: UNIPRO и СТЕРХ, поддерживающие наиболее известные версии PIC-контроллеров.

Наиболее распространенными семействами PIC-контроллеров являются PIC16CXXX и PIC17CXXX.

2. Микроконтроллеры семейств PIC16CXXX и PIC17CXXX

Основным назначением микроконтроллеров семейств PIC16 и PIC17, как следует из аббревиатуры PIC (Peripheral Interface Controller), является выполнение интерфейсных функций. Этим объясняются особенности их архитектуры:

·         RISC-система команд, характеризующаяся малым набором одноадресных инструкций (33, 35 или 58), каждая из которых имеет длину в одно слово (12, 14 или 16 бит) и большинство выполняется за один машинный цикл. В системе команд отсутствуют сложные арифметические команды (умножение, деление), предельно сокращен набор условных переходов;

·         высокая скорость выполнения команд: при тактовой частоте 20 МГц время машинного цикла составляет 200 нс (быстродействие равно 5 млн. операций/сек);

·         наличие мощных драйверов (до 25 мА) на линиях портов ввода/вывода, что позволяет подключать непосредственно к ним довольно мощную нагрузку, например, светодиоды.

·         низкая потребляемая мощность;

·         ориентация на ценовую нишу предельно низкой стоимости, определяющая использование дешевых корпусов с малым количеством выводов (8, 14, 18, 28), отказ от внешних шин адреса и данных (кроме PIC17C4X), использование упрощенного механизма прерываний и аппаратного (программно недоступного) стека.

3. Особенности архитектуры микроконтроллеров семейства PIC16CXXX

Микроконтроллеры семейства PIC16CXXX, выполненные по технологии HCMOS представляют собой 8-разрядные микроконтроллеры на основе RISC-процессора, выполненные по гарвардской архитектуре.

Имеют встроенное ПЗУ команд объемом от 0,5 до 4 Кслов (разрядность слова команд равна 12 – 14 бит).

Память данных PIC-контроллеров организована в виде регистрового файла объемом 32 – 128 байт, в котором от 7 до 16 регистров отведено для управления системой и обмена данными с внешними устройствами.

Одним из основных достоинств этих устройств является очень широкий диапазон напряжений питания (2 – 6 В).

Ток потребления на частоте 32768 Гц составляет менее 15 мкА, на частоте 4 МГц – 1 – 2 мА, на частоте 20 МГц 5 – 7 мА и в режиме микропотребления (режим SLEEP) – 1 – 2 мкА.

Выпускаются модификации для работы в трех температурных диапазонах: от 0 до +70°С, от -40 до +85°С и от -40 до +125°С.

Каждый из контроллеров содержит универсальные (от 1 до 3) и сторожевой таймеры, а также надежную встроенную систему сброса при включении питания.

Частота внутреннего тактового генератора задается либо кварцевым резонатором, либо RC-цепочкой в диапазоне 0 – 25 МГц.

PIC-контроллеры имеют от 12 до 33 линий цифрового ввода-вывода, причем каждая из них может быть независимо настроена на ввод или вывод.

Читайте также:  Ардуино инклинометр (угломер) своими руками

В устройство PIC16C64 входит широтно-импульсный модулятор, с помощью которого можно реализовать ЦАП с разрешением до 16 разрядов. Здесь есть и последовательный двунаправленный синхронно-асинхронный порт, обеспечивающий возможность организации шины I2C. Приборы PIC16C71 и PIC16C74 содержат встроенный многоканальный 8-разрядный АЦП с устройством выборки-хранения.

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

С программной точки зрения PIC-контроллер представляет собой 8-разрядный RISC-процессор с гарвардской архитектурой. Число команд небольшое — от 33 до 35. Все команды имеют одинаковую длину и, кроме команд ветвления, выполняются за четыре периода тактовой частоты (в отличие, например, от 12 периодов для i87C51).

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

Система команд практически симметрична и, как следствие, легка в освоении.

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

Типичным представителем микроконтроллеров семейства PIC16CXXX являются микроконтроллеры подгруппы PIC16F8X.

Источник: http://mc-plc.ru/lekcii-po-mk/osnovnie-osobennosti-mk-serii-pic.htm

Микроконтроллеры семейства pic

МИКРОКОНТРОЛЛЕРЫ PIC

     Ещё несколько лет назад, для сборки какого-либо цифрового устройства требовался десяток, а то и два логических микросхем типа К155, К561 и другие. Помимо трудностей сборки и настройки, такие устройства обладали слишком большими габаритами и энергопотреблением.

Но технологии не стоят на месте, и вот, им на смену пришли микроконтроллеры PIC. Аббревиатура PIC, расшифровывается как Peripheral Interface Controller. Буквальный перевод: периферийный интерфейсный контроллер. Выпускает эти контроллеры американская компания Microchip Technology.

Существуют 8, 16 и 32-битные микроконтроллеры под маркой PIC. Они представляют собой микpоконтpоллеpы с RISC аpхитектуpой, встpоенным ЭППЗУ пpогpаммы и ОЗУ данных. Скачать руководство по микроконтроллерам PIC можно здесь.

А здесь имеется хорошая книга “” – описание десятков схем и конструкций: часы, таймеры, программаторы и многое другое.

     Работа 8-ми битных микроконтроллеров основывается на 12-ти разрядной архитектуре слова программ и предоставлены, как наиболее дешевое решение.

Среднее семейство представлено микроконтроллерами серий PIC12 и PIC16, и имеет ширину слова программ 14 бит. Микроконтроллеры работают в диапазоне питающих напряжений от 2.0 до 5.

5В, имеют встроенную систему прерываний, аппаратный стек, энергонезависимую память данных EEPROM. Набор периферии: USB, SPI, I2С, USART, LCD, АЦП и другие.

     В новых микроконтроллерах применена улучшенная архитектура 8-ми битных PIC контроллеров PIC12 и PIC16. При этом увеличен объём памяти программ и данных, улучшен аппаратный стек, имеются дополнительные источники сброса, расширена периферия для создания сенсорных пользовательских интерфейсов, уменьшено время входа в прерывание и размер кода, увеличена производительность на 50 %.

     Семейство 16-ти разрядных микроконтроллеров представлены в модификациях PIC24F – производительность ядра 16MIPS@32МГц и PIC24H – 40MIPS@80МГц. Отличаются они технологией изготовления FLASH программной памяти. 

     Особенности микроконтроллеров PIC24F и PIC24H

:  Выполнение команды за 2 такта генератора  Время отклика на прерывание — 5 командных тактов  Доступ к памяти за 1 командный такт  Аппаратный умножитель   Аппаратный делитель 32/16 и 16/16 чисел  Питающие напряжения 2.0…3.6В, один источник питания.  Внутрисхемное и само- программирование  Встроенный генератор с PLL  Расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART с поддержкой IrDA, LIN, CAN и расширенный ECAN, USB OTG)  Модуль измерения времени заряда, для управление ёмкостными сенсорами  Ток портов ввода/вывода около мА  До девяти 16-битных таймеров  До восьми модулей захвата  Энергосберегающие режимы  До двух АЦП с 32 каналами и с конфигурируемой разрядностью

 До восьми 16-битных модулей сравнения / генерации ШИМ 

     Самыми продвинутыми контроллерами являются 32-разрядные PIC32. Их особенности: ядро MIPS32 M4K, частота такта 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.

53 Dhrystone MIPS/МГц, порты ввода/вывода относятся к основному частотному диапазону, дополнительный частотный диапазон для периферии из основного посредством программно настраиваемого делителя, до 32 кБ SRAM и 512 кБ Flash с кэшем предвыборки, совместимость по выводам и отладочным средствам с 16-битными контроллерами, аппаратный умножитель и делитель с независимым конвейером, оптимизированным по скорости выполнения, набор расширенных инструкций MIPS16e, независимый от основного ядра контроллер USB.

     Схемы и устройства на PIC контроллерах можно питать от сети 220 вольт без понижающего трансформатора. Для этого достаточно спаять простую схему бестрансформаторного источника 5В, которая обеспечивает ток нагрузки около 0.1А.

 Для уменьшения влияния наводок и помех следует неиспользуемые выводы микроконтроллера подключать к шине земли. При разводке печатной платы обязательно установите фильтрующий конденсатор, емкостью 0,1 мкф, между выводами питания.

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

     В настоящее время семейство микроконтроллеров PIC представлено такими моделями:

ТИП Память,байт ОЗУ,байт Частота,МГц

PIC12C508 512×12 25 4 PIC12C508A 512×12 25 4 PIC12C509 1024×12 41 4 PIC12C509A 1024×12 41 4 PIC12C671 1024×14 127 10 PIC12C672 2048×14 127 10 PIC12CE518 512×12 25 4 PIC12CE519 1024×12 41 4 PIC12CE673 1024×14 127 10 PIC12CE674 1024×14 128 10 PIC12CR509A 1024×12 41 4 PIC12F629 1024 64 20 PIC12F675 1024 64 20 PIC14000 4096×14 192 20 PIC16C432 2048×12 128 20 PIC16C433 2048×12 128 10 PIC16C505 1024×12 72 20 PIC16C52 384×12 25 4 PIC16C54 512×12 25 20 PIC16C54A 512×12 25 20 PIC16C54C 512×12 25 20 PIC16C55 512×12 24 20 PIC16C554 512×14 80 20 PIC16C558 2048×14 128 20 PIC16C55A 512×12 24 20 PIC16C56 1024×12 25 20 PIC16C56A 1024×12 25 20 PIC16C57 2048×12 72 20 PIC16C57C 2048×12 72 20 PIC16C58A 2048×14 73 20 PIC16C58B 2048×12 73 20 PIC16C61 1024×14 36 20 PIC16C620 512×14 80 20 PIC16C620A 512×14 96 20 PIC16C621 1024×14 80 20 PIC16C621A 1024×14 80 20 PIC16C622 2048×14 128 20 PIC16C622A 2048×14 128 20 PIC16C62A 2048×14 128 20 PIC16C62B 2048×14 128 20 PIC16C63 4096×14 192 20 PIC16C63A 4096×14 192 20 PIC16C642 4096×14 176 20 PIC16C64A 2048×14 128 20 PIC16C65A 4096×14 192 20 PIC16C65B 4096×14 192 20 PIC16C66 8192×14 368 20 PIC16C662 4096×14 176 20 PIC16C67 8192×14 368 20 PIC16C71 1024×14 36 20 PIC16C710 512×14 36 20 PIC16C711 1024×14 68 20 PIC16C712 1024×14 128 20 PIC16C715 2048×14 128 20 PIC16C716 2048×14 128 20 PIC16c717 2048×14 256 20 PIC16C72 2048×14 128 20 PIC16C72A 2048×14 128 20 PIC16C73 4096×14 192 20 PIC16C73A 4096×14 192 20 PIC16C73B 4096×14 192 20 PIC16C74 4096×14 192 20 PIC16C745 8192×14 256 24 PIC16C74A 4096×14 192 20 PIC16C74B 4096×14 192 20 PIC16C76 8192×14 368 20 PIC16C765 8192×14 256 24 PIC16C77 8192×14 368 20 PIC16C770 2048×14 256 20 PIC16C771 4096×14 256 20 PIC16C773 2048×14 256 20 PIC16C774 2048×14 256 20 PIC16C781 1024×14 128 20 PIC16C782 2048×14 128 20 PIC16C923 4096×14 176 8 PIC16C924 4096×14 176 8 PIC16C925 4096×14 196 20 PIC16C926 4096×14 336 20 PIC16CE623 512×14 96 20 PIC16CE624 1024×14 96 20 PIC16CE625 2048×14 128 20 PIC16CR54A 512×12 25 20 PIC16CR54b 512×12 25 20 PIC16CR54C 512×12 25 20 PIC16CR56A 2048×14 25 20 PIC16CR57A 4096×14 72 20 PIC16CR57b 2048×12 72 20 PIC16CR57C 2048×12 72 20 PIC16CR58A 2048×12 73 20 PIC16CR58B 2048×12 73 20 PIC16CR62 2048×14 128 20 PIC16CR63 4096×14 192 20 PIC16CR64 4096×14 192 20 PIC16CR65 4096×14 192 20 PIC16CR72 2048×14 128 20 PIC16CR83 512×14 36 10 PIC16CR84 1024×14 68 10 PIC16F627 1024×14 224 20 PIC16F627A 1024 224 20 PIC16F628 2048×14 224 20 PIC16F628A 2048 224 20 PIC16F630 1024 64 20 PIC16F648A 4096 256 20 PIC16F676 1024 64 20 PIC16F72 2048 128 20 PIC16F73 4096×14 192 20 PIC16F74 4096×14 192 20 PIC16F76 8192×14 368 20 PIC16F77 8192×14 368 20 PIC16F818 1024 128 20 PIC16F819 2048 256 20 PIC16F83 512×14 36 10 PIC16F84 1024×14 68 10 PIC16F84A 1024×14 68 10 PIC16F85 1024×14 128 20 PIC16F86 2048×14 128 20 PIC16F87 4096×14 192 20 PIC16F870 2048×14 128 20 PIC16F871 2048×14 128 20 PIC16F872 2048×14 128 20 PIC16F873 4096×14 192 20 PIC16F873A 4096×14 192 20 PIC16F874 4096×14 192 20 PIC16F874A 4096×14 192 20 PIC16F876 8192×14 368 20 PIC16F876A 8192×14 368 20 PIC16F877 8192×14 368 20 PIC16F877A 8192×14 368 20 PIC16F88 4096×14 192 20 PIC16F89 4096×14 192 20 PIC16HV540 512×12 25 20 PIC16LC74B 4096×14 192 16 PIC17C42 2048×16 232 33 PIC17C42A 2048×16 232 33 PIC17C43 4096×16 454 33 PIC17C44 8092×16 454 33 PIC17C752 8192×16 454 33 PIC17C756 16384×16 902 33 PIC17C756a 16384×16 902 33 PIC17C762 8192×16 678 33 PIC17C766 16384×16 902 33 PIC17CR42A 2048×16 232 33 PIC17CR43 2048×16 232 33 PIC17LC752 8192×16 678 16 PIC17LC756A 16384×16 902 16 PIC18C242 8192×16 512 40 PIC18C252 16384×16 1536 40 PIC18C442 8192×16 512 40 PIC18C452 16384×16 1536 40 PIC18C658 16384×16 1536 40 PIC18C801 – 1536 25 PIC18C858 16384×16 1536 40 PIC18F010 1024×16 256 40 PIC18F012 1024×16 256 40 PIC18F020 2048×16 256 40 PIC18F022 2048×16 256 40 PIC18F1220 2048 256 40 PIC18F1230 2048×16 256 40 PIC18F1320 4096 256 40 PIC18F1330 4096×16 256 40 PIC18F2220 2048 512 40 PIC18F232 8192×12 512 40 PIC18F2320 4096 512 40 PIC18F2331 4096×16 512 40 PIC18F242 8192×16 768 40 PIC18F2431 8192×16 768 40 PIC18F2450 8192×16 1024 40 PIC18F248 8192×16 768 40 PIC18F252 16384×16 1536 40 PIC18F2550 16384×16 1024 40 PIC18F258 16384×16 1536 40 PIC18F4220 2048 512 40 PIC18F432 8192×12 512 40 PIC18F4320 4096 512 40 PIC18F4331 4096×16 512 40 PIC18F442 8192×16 768 40 PIC18F4431 8192×16 768 40 PIC18F4450 8192×16 1024 40 PIC18F448 8192×16 768 40 PIC18F452 16384×16 1536 40 PIC18F4550 16384×16 1024 40 PIC18F458 16384×16 1536 40 PIC18F6520 16384×16 2048 40 PIC18F6585 24576 3072 40 PIC18F6620 32768×16 3840 40 PIC18F6680 32768 3072 40 PIC18F6720 65536×16 3840 40 PIC18F8520 16384×16 2048 40 PIC18F8585 24576 3072 40 PIC18F8620 32768×16 3840 40 PIC18F8680 32768 3072 40

PIC18F8720 65536×16 3840 40


 

     Для программирования контроллеров нужны компьютеp, пpогpамматоp, подключаемый к паpаллельному поpту компьютеpа, сама микpосхема контроллер (PIC16F84), макетная плата, 8 светодиодов, источник +5 В и панелька для микpосхемы. Простую и популярную программу PonyProg2000 можно скачать в разделе софт.

     ФОРУМ по микрорконтроллерам

   Схемы на микроконтроллерах

Источник: http://elwo.ru/publ/skhemy_na_mikrokontrollerakh/mikrokontrollery_pic/9-1-0-251

Ссылка на основную публикацию
Adblock
detector