Все, что нельзя запрограммировать на ассемблере, приходится паять.
Этот сайт посвящен моим проектам на PIC контроллерах, доступных для публичного освещения. Все приведенные схемы реализованы в железе и работают в настоящее время в быту или производстве.
Для написания программ использован пакет MPLAB/х , свободно распространяемый фирмой MICROCHIP.
Используется программатор PICKIT2/3, ICD2/3.
Любую конструкцию можно собрать самому, даже если она платная и получить бесплатно код разблокировки.
Также можно приобрести в качестве набора для сборки или готового изделия.
Принимаются заказы на разработку аналогово-цифровой или цифровой электроники, систем управления и электроники для производства с применением контроллеров.
Вопросы и предложения писать на почту Gennadiy.V@gmail.com
Если у Вас есть интересные предложения, закакзы или вопросы и форум Вам не помог - адрес тот же.
Список команд, операторов, функций.
Функции, операторы, команды - сводная таблица V3.3.x
Стандартные команды управления |
|||
Действие |
Пример использования |
Описание |
|
CLR |
Очищает все переменные |
CLR |
Всем переменным присваивается значение 0, очищаются все стеки. Нельзя применять внутри циклов и подпрограмм. |
RUN |
Запуск программы |
RUN |
Очищает все переменные, запускает программу с нулевого или указанного адреса. Доступна только с консоли. Очищаются все стеки. |
STOP |
Останов программы |
25 STOP |
Останавливает программу в текущей строке. Должен быть единственным или последним в строке ( кроме оператора REM, это касаемо и остальных с этими ограничениями). |
BREAK |
Прерывает выполнение программы |
BREAK |
Прерывает выполнение программы в текущем месте. Доступна только с консоли и во время выполнения программы. |
CONTINUE |
Продолжение выполнения |
CONTINUE |
Продолжает выполнение с текущего места. Применяется с консоли после остановки оператором STOP, BREAK |
END |
Завершает выполнение программы |
56 IF Z=0 THEN END:REM Окончание программы |
Завершает выполнение программы в текущей строке. |
Операторы передачи управления. |
|||
GOTO |
Оператор перехода |
33 GOTO 100 |
Производится переход на строчку с номером 100. Номер строки может быть представлен переменной. Должен быть единственным или последним в строке. Для относительного перехода указать смещение со знаком. |
GOSUB |
Оператор вывода подпрограммы |
55 GOSUB 200 |
Производит вызов подпрограммы со строки номером 200 Допускается до 8 вложений. Должен быть единственным или последним в строке. Для относительного перехода указать смещение со знаком. |
RETURN |
Возврат из подпрограммы |
100 PRINT X:RETURN |
Возврат из подпрограммы. Должен быть единственным или последним в строке. |
NOERR |
Обработчик ошибок |
NOERR 200 |
В случае ошибки при выполнении программы, управление будет передано строке с номером 200. Как правило, далее потребуется очистка стеков / переменных командой CLR , если ошибка произошла внутри циклов или подпрограмм. |
Операторы цикла и сравнения |
|||
IF THEN |
Условный оператор |
10 IF X<10 THEN X=X+1 20 IF X=5+a THEN GOTO 100 30 IF Z=65 THEN GOSUB 200 |
Если условие истина, то вычисляется выражение |
FOR TO |
Оператор цикла |
5 FOR I=32 TO 127 5 Z=128 |
Производит действие 127-32+1 раз с наращиванием переменной цикла. В качестве действия, вывод переменной как символа с кодом I и вывод значения переменной I как числа . Допускается до 8 вложений. После оператора TO может быть переменная. Переменной цикла может присваиваться число, переменная, результат выражения. FOR и NEXT должны быть единственными в строке |
EXFOR |
Принудительный выход из цикла |
|
Применяется внутри цикла. Управление будет предано на номер строки, которая должна быть за пределами текущего цикла. В случае вложенных циклов, для каждого цикла – свой выход. Должен последним или единственным в строке. |
CASE |
Условный переход |
|
Параметры – имя переменной для сравнения; первое значение с которым сравнивается; номер строки перехода, если равно; второе значение для сравнения; номер строки перехода если равно. Количество ограничено длинной строки. Все значения могут быть числами или переменными. |
Таймеры и задержки |
|||
PAUSE |
Пауза в миллисекундах |
25 PAUSE 10 |
Приостанавливает выполнение программы на указанное число миллисекунд. Максимально до 32767 |
TIMER |
Функция |
A=TIMER{x} |
Переменной присваивается значение системного таймера с номером X , где X от нуля до семи. Всего 8 независимых таймеров обратного отсчета. |
TIMER |
Оператор |
TIMER x,300 |
Установка в системный таймер X значения 300. Каждую секунду от этого значения будет отниматься единица, до достижения нулевого значения. Таймер работает в фоновом режиме, независимо от программы пользователя. |
Математические и логические функции |
|||
SQR |
Вычисление квадратного корня |
10 A=SQR {x} |
Переменной A присваивается значение квадратного корня переменной x. Аргументом функции выступает переменная, число, выражение. |
ABC |
Возвращает абсолютное значение числа |
20 T=ABC{ #(25)} |
Возвращает абсолютное значение числа. Аргументом функции выступает переменная, число, выражение. |
ROL |
Сдвиг влево |
10 A=ROL {A,5} |
Сдвигает число в переменной влево на указанное число бит, при этом в младший разряд втягиваются нули. По умолчанию сдвигает на 1 бит. Аргументом функции выступает переменная, число, выражение. |
ROR |
Сдвиг вправо |
10 A=ROR {A,5} |
Сдвигает число в переменной вправо на указанное число бит, при этом в старший разряд втягиваются нули. По умолчанию сдвигает на 1 бит Аргументом функции выступает переменная, число, выражение. |
RND |
Случайное число |
A=RND{} |
Генерация псевдослучайных чисел в диапазоне от -32768 до 32767 (0-255 для индексных) Аргументов нет |
Блоки данных |
|||
DATA |
Определения блока данных |
DATA #(i),255,26,27,5,6
DATA $(i),255,26,27,5,6 DATA $(i),”Alarm” |
Загружает блок данных. Максимальное количество данных в строке определяется длиной строки, которая не должна превышать 64 символа включая номер строки. Максимальное количество строк с данными ограничено только размером свободной памяти программ. Переменной с индексом i присваивается первое число, с индексом i+1 присваивается следующее и т.д. В случае текста присваиваются коды символов, в каждую по одному символу последовательно Ввод данных, как текст. Аналогично предыдущему, только данные будут располагаться начиная с i+1. В i+0 будет помещена длинна строки. Приемником массива данных могут быть только индексные переменные и массив не должен пересекать границы блоков по 256 байт.
|
Операторы ввода вывода |
|||
INPUT# INPUT@
|
Оператор ввода данных с консоли с ожиданием ввода |
INPUT# X
INPUT$ $(i)
INPUT@ #(i) |
Ожидает ввода числа в консоли в формате от-32768 до 32767 или 0-255 для 8-битных или выражения и присваивает переменной. Если входящий поток нельзя интерпретировать как число или выражение , то переменной присваивается нулевое значение. Списки не поддерживаются. |
Оператор вывода. |
PRINT
|
Вывод списка в консоль. Элементы списка разделяются запятой или точкой с запятой. Если точка с запятой, то следующий элемент выводится с табуляцией на 8. Если запятая - то слитно. Табуляция выполняется пробелами. - Оператор форматирования вывода обычных переменных вида .X , где X =0-3, – количество знаков после запятой. |
|
Операторы и функции работы со строками |
|||
SCOMP |
Сравнение двух массивов |
A=SCOMP{#(i),#(k),5} |
Возвращает 1 в случае совпадения или 0 при не совпадении. Сравниваются два массива #(i) и #(k) длинной каждый 5 байт. Источником массива данных могут быть только индексные переменные и массив не должен пересекать границы блоков по 256 байт. |
SCOMP$ |
Сравнение двух массивов текста |
A=SCOMP${$(i),$(k)} |
Возвращает 1 в случае совпадения или 0 при не совпадении. Сравниваются два массива с началом $(i) и $(k) длинной $(i) байт от $(i+1) до $(i+$(i)) и от $(k+1) до $(k+$(i)) соответственно. Возвращает 1 в случае нулевой длинны. |
INSTR$ |
Поиск вхождения строки |
A=INSTR${$(i),”OK”} |
Осуществляет в переменной $(i), интерпретированной как строка текста, поиск вхождения подстроки заданной явно или строковой переменной. Возвращает 0 если не найдено или номер символа с которого найдено совпадение |
MID$ |
Оператор подстроки |
MID$ $(5),$(50),5,2 |
В текстовую переменную $(5) помещает символы взятые у текстовой переменной $(50) с позиции 5 длинной 2 символа. Запись согласно правилам текстовых переменных. |
VPRINT |
Оператор вывода. Приемником является индексная переменная. |
VPRINT $(10) "X= ",X, "Y= ",B |
Виртуальный вывод. Полностью аналогичен оператору PRINT. Все выводимые данные помещаются в указанную индексную переменную, как текст, со второго байта. Первый байт будет содержать длину данных. |
ПО распространяется под лицензией Shareware. Вы можете скачать с сайта схемы, инструкции, прошивки бесплатно.
Новые версии прошивок и документации скачивать в разделе Файлы / Files
Обсудить на форуме
Купить
Страницы
Общее описание и технические характеристики
Аппаратная платформа. Схемы, разводка.
Программное обеспечение. Bootloader - прошивка и программа загрузки.
Web PICµBASIC. Загрузка и установка
Программное обеспечение. BASIC_Terminal.
WEB PICµBASIC. Описание языка программирования
WEB PICµBASIC. Список команд, операторов, функций. Часть 1.
WEB PICµBASIC. Список команд, операторов, функций. Часть 2.
Web PICµBASIC. WebServer - настройка и программирование
Web PICµBASIC. Файловая система.
Web PICµBASIC. Модули расширения.
Дисплей HD44780. Схема подключения. Список команд, операторов, функций.
Интерфейс UART, RS232/RS485. Схема подключения. Список команд, операторов, функций.
Шина 1-Wire. Ключи и датчики. Схема подключения. Список команд, операторов, функций.
RFID EM-Marin 125 кГц. Схема подключения. Список команд, операторов, функций.
Датчик AM2302/DHT22. Схема подключения. Список команд, операторов, функций.
Дискретные входы. Схема подключения. Список команд, операторов, функций.
Интерфейс MODBUS RTU MASTER. Список команд, операторов, функций.
Клавиатура и силовые ключи. Схема подключения. Список команд, операторов, функций.
Примеры программирования.
Графический дисплей на контроллере UC1601s.