Радиоконструктор предназначен как для любителей радиоэлектроники, уже использующих микроконтроллеры в своих изобретениях, так и для новичков, только осваивающих программирование контроллеров.
Что такое PIC контроллеры? PIC – аббревиатура английской фразы Peripheral Interface Controller, что означает «контроллер интерфейса периферии», производимые компанией Microchip Technology. Название объясняется тем, что первые чипы PIC создавались как контроллеры ввода-вывода для ряда микропроцессоров 70-х и 80-х годов. Но с тех пор линейка микроконтроллеров PIC значительно расширилась - в настоящий момент выпускается свыше 500 видов различных микроконтроллеров с самыми широкими функциональными возможностями, а контроллеры PIC считаются самыми распространенными микроконтроллерами в мире. Для удобства использования на плате контроллера установлена ZIF ("zero insetrion force" – «с нулевым усилием») панель, которая позволяет устанавливать и снимать микросхему не прикладывая никаких усилий, достаточно поднять и опустить ручку-фиксатор .
Программатор PIC K150 - достаточно известная конструкция в среде радиолюбителей. В интернете есть большое количество ресурсов, на которых обсуждаются вопросы программирования, прошивки, обновления ПО (прошивок) программаторов и ПО для программирования микроконтроллеров.
Краткое описание USB программатор PIC К150 ICSP предназначен для программирования и отладки приложений PIC контроллеров (перечень совместимых микроконтроллеров приведен ниже) как через ZIF панель, так и через внутрисхемное программирование (ICSP). Программатор собран на микроконтроллере PIC16F628A, USB соединение с компьютером обеспечивает микросхема UART PL2303.
Программатор имеет три разъема – для подключения к компьютеру, подключения микроконтроллера и для подключения ICSP шлейфа:
- для подключения программатора к компьютеру используется стандартный USB интерфейс;
- для подключения микроконтроллеров используется 40 - контактная ZIF панель с нулевым усилением и ручкой-фиксатором;
- для подключения к программатору внешних устройств по ICSP интерфейсу используется 6 контактный ICSP разъем. Обозначение контактов - NC, PGC, PGD, GND, VCC, VPP.
При подключении программатора к компьютеру посредством USB-кабеля тип «А»- тип «В» (в комплекте), на плате включится светодиод красного цвета (L3). Если при подключении к компьютеру появляется сообщение, что операционная система не может самостоятельно установить драйвер для неизвестного устройства, необходимо зайти на сайт компании Prolific (производитель UART PL2303)
http://www.prolific.com.tw/US/index.aspx , скачать драйвер и установить его вручную.
После того, как компьютер определил новое USB-подключенние, необходимо установить программу для управления программатором и процессом программирования (установка режима, параметры прошивки, чтение данных контроллера и проч.). Ниже приведены ссылки на свободные сайты, где можно скачать ПО, в том числе и программу DIY K150, которую пользователи считают наиболее удобной.
Для установки программируемой микросхемы необходимо поднять ручку ZIF панели вверх, вставить микросхему и без усилий опустить вниз. Необходимо помнить, что ключ микросхемы должен быть направлен в сторону ручки-фиксатора панели. В случае использования программы DIY K150 место установки 1 вывода микросхемы (и ключа) будет указано стрелкой на рисунке панели в открытом окне программы. После этого можно приступать к программированию в соответствии с руководством используемой программы.
Если используется внутрисхемное программирование, необходимо один из разъемов ICSP- шлейфа из комплекта поставки подключить к ICSP разъему на плате программатора, а второй – к аналогичному разъему на плате устройства с установленным программируемым контроллером.
После подключения микроконтроллера и запуска программы на плате программатора начнет моргать светодиод L1 индицирующий обмен данными с компьютером.
Программатор поддерживает следующие типы PIC- контроллеров (микроконтроллеры в 6, 8, 14, 20, 28, 40 – выводных корпусах):
10 Series: PIC10F200, PIC10F202, PIC10F204, PIC10F206, PIC10F220, PIC10F222;
12C Series: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12C671, PIC12C672, PIC12CE518, PIC12CE519, PIC12CE673, PIC12CE674;
12F Series: PIC12F508, PIC12F509, PIC12F629, PIC12F635, PIC12F675, PIC12F683;
16C Series: PIC16C505, PIC16C554, PIC16C558, PIC16C61, PIC16C62, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64, PIC16C64A, PIC16C65, PIC16C65A, PIC16C65B, PIC16C66, PIC16C66A, PIC16C67, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16C71, PIC16C71A, PIC16C72, PIC16C72A, PIC16C73, PIC16C73A, PIC16C73B, PIC16C74, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16C710, PIC16C711, PIC16C712, PIC16C716, PIC16C745, PIC16C765, PIC16C773, PIC16C774, PIC16C83, PIC16C84;
16F Series: PIC16F505, PIC16F506, PIC16F54, PIC16F57, PIC16F59, PIC16F627, PIC16LF627A, PIC16F627A, PIC16F628, PIC16LF628A, PIC16F628A, PIC16F630, PIC16F631, PIC16F631-1, PIC16F636, PIC16F636-1, PIC16F639, PIC16F639-1, PIC16F648A, PIC16F676, PIC16F677, PIC16F677-1, PIC16F684, PIC16F685, PIC16F685-1, PIC16F687, PIC16F687-1, PIC16F688, PIC16F689, PIC16F689-1, PIC16F690, PIC16F690-1, PIC16F716, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16F737, PIC16F747, PIC16F767, PIC16F777, PIC16F83, PIC16F84, PIC16F84A, PIC16F87, PIC16F88, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16LF873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A;
18 Series: PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2220, PIC18F2320, PIC18F2321, PIC18F4210, PIC18F2331, PIC18F2450, PIC18F2455, PIC18F2480, PIC18F2510, PIC18F2515, PIC18F2520, PIC18F2525, PIC18F2550, PIC18F2580, PIC18F2585, PIC18F2610, PIC18F2620, PIC18F2680, PIC18F4220, PIC18F4320, PIC18F6525, PIC18F6621, PIC18F8525, PIC18F8621, PIC18F2331, PIC18F2431, PIC18F4331, PIC18F4431, PIC18F2455, PIC18F2550, PIC18F4455, PIC18F4550, PIC18F4580, PIC18F2580, PIC18F2420, PIC18F2520, PIC18F2620, PIC18F6520, PIC18F6620, PIC18F6720, PIC18F6585, PIC18F6680, PIC18F8585, PIC18F8680.
* - Производитель оставляет за собой право вносить изменения в схемотехнические решения, не влияющие на функциональность устройства, без предварительного уведомления пользователей. Технические характеристики напряжение питания: 5В, постоянное, только от порта USB$;
совместимость с ПО: Windows 98, 2000, NT, XP и Windows 7/Win7 64bit ;
индикация: питание, программирование;
защита USB порта компьютер: есть;
размеры, мм: 85 х48 х15;
вес, г: 125.
Комплектация: программатор PIC K150;
ICSP кабель загрузки, 0,2 м;
кабель USB, тип «В», 1 м;
комплект стоек и винтов.
Ссылки на сайты для скачивания программного обеспечения: https://yadi.sk/d/GGR0HJbiRufsc http://www.kitsrus.com/software.html https://yadi.sk/d/uZvrEms239xQf http://gcbasic.sourceforge.net/download.html http://mir-v-cifre.ru/datasheet/K159_programmer_GUI.rar Система команд PIC-контроллеров серии PIC16C8X Каждая команда представляет собой 14-разрядное слово, содержащее поле кода операции OPCODE и поле операндов. Система команд включает в себя команды работы с байтами, команды работы с битами, команды управления и операции с константами.
Для команд работы с байтами "f" обозначает регистр, с которым производится действие, а бит "d" определяет регистр назначения. При "d"=0 результат помещается в регистр W, при "d"=1 результат помещается в регистр "f", заданный в команде.
Для команд работы с битами "b" обозначает номер бита, участвющего в команде, а "f" - регистр, в котором этот бит расположен.
Для команд управления и операций с константами "k" обозначает 8- или 11-битовую константу или идентификатор.
Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:
- переход по проверке условия, если результат проверки условия – истина;
- изменение счетчика команд как результат выполнения команды.
В этих случаях команда выполняется за два цикла с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время выполнения команды составит 1 мкс. Если выполняется переход по проверке условия или в результате выполнения команды изменился счетчик команд, время выполнения этой команды при тактовой частоте 4 МГц составит 2 мкс. Принятые обозначения
f: Адрес регистра
w: Рабочий регистр
b: Номер бита в 8-ми разрядном регистре
k: Константа
x: Не используется. Ассемблер формирует код с х=0
d: Регистр назначения:
d=0 - результат в регистре W
d=1 - результат в регистре f.
По умолчанию d=1
label: Имя метки
TOS: Вершина стека
РС: Счетчик команд
ТО: Тайм-аут
PD: Выключение питания
dest: Регистр назначения: рабочий регистр W или регистр, заданный в команде
[]: Необязательные параметры
(): Содержание
-->: Присвоение
<>: Битовое поле
О: Из набора
Обозначение | Функция | Циклы | Код команды | Биты состояния | Примечания |
ADDLW | Сложение константы и W | 1 | 11 111x kkkk kkkk | C, DC, Z | |
ADDWF | Сложение W c f | 1 | 00 0111 dfff ffff | C, DC, Z | 1, 2 |
ANDLW | Логическое И константы и W | 1 | 11 1001 kkkk kkkk | Z | 1,2 |
ANDWF | Логическое И W и f | 1 | 00 0101 dfff ffff | Z | 1,2 |
BCF | Сброс бита в регистре f | 1 | 01 00bb bfff ffff | | 1,2 |
BSF | Установка бита в регистре f | 1 | | 01 01bb bfff ffff | 1,2 |
BTFSC | Пропустить команду, если бит в f равен нулю | 1 (2) | 01 10bb bfff ffff | | 3 |
BTFSS | Пропустить команду, если бит в f равен единице | 1 (2) | 01 11bb bfff ffff | | 3 |
CALL | CALL Вызов подпрограммы | 2 | 10 0kkk kkkk kkkk | | |
CLRF | Сброс регистра f | 1 | 00 0001 1fff ffff | Z | 2 |
CLRW | Сброс регистра W | 1 | 00 0001 0xxx xxxx | Z | |
CLRWDT | Сброс сторожевого таймера WDT | 1 | 00 0000 0110 0100 | __ __ TO, PD | |
COMF | Инверсия регистра f | 1 | 00 1001 dfff ffff | Z | 1,2 |
DECF | Декремент регистра f | 1 | 00 0011 dfff ffff | Z | 1,2 |
DECFSZ | Декремент f, пропустить команду, если 0 | 1(2) | 00 1011 dfff ffff | | 1,2,3 |
GOTO | Переход по адресу | 2 | 10 1kkk kkkk kkkk | | |
INCF | Инкремент регистра f | 1 | 00 1010 dfff ffff | Z | 1,2 |
INCFSZ | Инкремент f, пропустить команду, если 0 | 1 (2) | 00 1111 dfff ffff | | 1,2,3 |
IORLW | Логическое ИЛИ константы и W | 1 | 11 1000 kkkk kkkk | Z | |
IORWF | Логическое ИЛИ W и f | 1 | 00 0100 dfff ffff | Z | 1,2 |
MOVF | Пересылка регистра f | 1 | 00 1000 dfff ffff | Z | 1,2 |
MOVLW | Пересылка константы в W | 1 | 11 00xx kkkk kkkk | | |
MOVWF | Пересылка W в f | 1 | 00 0000 1fff ffff | | |
NOP | Холостая команда | 1 | 00 0000 0xx0 0000 | | |
OPTION | Загрузка регистра OPTION | 1 | 00 0000 0110 0010 | | |
RETFIE | Возврат из прерывания | 2 | 00 0000 0000 1001 | | |
RETLW | Возврат из подпрограммы с загрузкой константы в W | 2 | 11 01xx kkkk kkkk | | |
RETURN | Возврат из подпрограммы | 2 | 00 0000 0000 1000 | | |
RLF | Сдвиг f влево через перенос | 1 | 00 1101 dfff ffff | C | 1,2 |
RRF | Сдвиг f вправо через перенос | 1 | 00 1100 dfff ffff | C | 1,2 |
SLEEP | Переход в режим SLEEP | 1 | 00 0000 0110 0011 | __ __ TO, PD | |
SUBLW | Вычитание W из константы | 1 | 11 110x kkkk kkkk | C, DC, Z | |
SUBWF | Вычитание W из f | 1 | 00 0010 dfff ffff | C, DC, Z | 1,2 |
SWAPF | Обмен местами вf | 1 | 00 1110 dfff ffff | | 1,2 |
TRIS | Загрузка регистра TRIS | 1 | 00 0000 0110 0fff | | |
XORLW | Исключающее ИЛИ константы и W | 1 | 11 1010 kkkk kkkk | Z | |
XORWF | Исключающее ИЛИ W и f | 1 | 00 0110 dfff ffff | | 1,2 |
Примечание:
Если модифицируется регистр ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится "1", а внешнее устройство формирует на этом выводе "0", то в этом разряде данных будет записан "0".
Если операндом команды является содержимое регистра TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет сброшен.
Если в результате выполнения команды изменяется счетчик команд, или выполняется переход по проверке условия, то команда выполняется за два цикла. Второй цикл выполняется как NOP.