Популярные проекты

WEB PICµBASIC LOGIC CONTROLLER

USB PICµBASIC Mid Hardware

USB PICµBASIC LOGIC CONTROLLER

DDS генератор сигналов "OSKAR-DDS"

Термостол для оплавления паяльной пасты

Осциллограф Карманный "OSKAR" V3.1

Электроника и механика 3-х координатного станка ЧПУ (Hobby CNC)

Простой счетчик

Измеритель ESR и емкости конденсаторов

Самодельный установщик SMD компонентов - раскладочный станок "SMD PLACER V2"

Прибор для измерения частоты, емкости, индуктивности, сопротивления

Выключатель /диммер светодиодных лент с ДУ.

Светомузыка «СЕМИЦВЕТИК» + автомат световых эффектов.

Универсальный прибор для автомобиля. Часы, термометр, вольтметр, тахометр.

Все, что нельзя запрограммировать на ассемблере, приходится паять.

      Этот сайт посвящен моим проектам на PIC контроллерах, доступных для публичного освещения. Все приведенные схемы реализованы в железе и работают в настоящее время в быту или производстве. Для написания программ использован пакет MPLAB/х , свободно распространяемый фирмой MICROCHIP. Используется программатор PICKIT2/3, ICD2/3. Любую конструкцию можно собрать самому, даже если она платная и получить бесплатно код разблокировки. Также можно приобрести в качестве набора для сборки или готового изделия. Принимаются заказы на разработку аналогово-цифровой или цифровой электроники, систем управления и электроники для производства с применением контроллеров.
Вопросы и предложения писать на почту Gennadiy.V@gmail.com
Если у Вас есть интересные предложения, закакзы или вопросы и форум Вам не помог - адрес тот же.


Среда WEB PICµBASIC V3.3.x
Список команд, операторов, функций.

Функции, операторы, команды  - сводная таблица V3.3.x

Стандартные команды управления

Действие

Пример использования

Описание

CLR

Очищает все переменные

CLR

Всем переменным присваивается значение 0, очищаются все стеки. Нельзя применять внутри циклов и подпрограмм.

RUN

Запуск программы

RUN
RUN 10

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

STOP

Останов программы

25 STOP

Останавливает программу  в текущей строке. Должен быть единственным или последним в строке ( кроме оператора REM, это касаемо и остальных с этими ограничениями).

BREAK

Прерывает выполнение программы

BREAK

Прерывает выполнение программы в текущем месте. Доступна только с консоли и во время выполнения программы.

CONTINUE

Продолжение выполнения

CONTINUE

Продолжает выполнение с текущего места. Применяется с консоли после остановки оператором STOP, BREAK

END

Завершает выполнение программы

56 IF Z=0 THEN END:REM Окончание программы

Завершает выполнение программы в текущей строке.
Должен быть единственным или последним в строке

Операторы передачи управления.

GOTO

Оператор перехода

33 GOTO 100
33 GOTO +10
33 GOTO -5

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

GOSUB

Оператор вывода подпрограммы

55 GOSUB 200
55 GOSUB +50

Производит вызов подпрограммы со строки номером 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

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

 FOR TO
 NEXT

Оператор цикла

5 FOR I=32 TO 127
6 PRINT $(I);I;”=”;#(I)
7 NEXT I

  5 Z=128
10 FOR I=Z-127 TO Z
20 #(I)=I+1
25 PRINT I
30 NEXT I

Производит действие 127-32+1 раз с наращиванием переменной цикла. В качестве действия, вывод переменной как символа с кодом I и вывод значения переменной I как числа . Допускается до 8 вложений.  После оператора TO может быть переменная. Переменной цикла может присваиваться число, переменная, результат выражения.
Не допускается  GOTO за пределы цикла.

FOR и NEXT должны быть единственными в строке

 EXFOR

Принудительный выход из цикла


EXFOR 300

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

 CASE

Условный переход


CASE A,25,300,26,310,
27,+25

Параметры – имя переменной для сравнения; первое значение с которым сравнивается; номер строки перехода, если равно; второе значение для сравнения; номер строки перехода если равно. Количество ограничено длинной строки. Все значения могут быть числами или переменными.
Если А=25 то переход на строку 300
Если А=26 то переход на строку 310
Если не совпало ни с одним значением переход на следующую строку.
Для относительного перехода указать смещение со знаком.

Таймеры и задержки

PAUSE

Пауза в миллисекундах

25 PAUSE 10
26 PAUSE Z

Приостанавливает выполнение программы на указанное число миллисекунд. Максимально  до 32767

TIMER

Функция

A=TIMER{x}

Переменной присваивается значение системного таймера с номером X , где X от нуля до семи. Всего 8 независимых таймеров обратного отсчета.

TIMER

Оператор

 

TIMER x,300

Установка в системный таймер X значения 300. Каждую секунду от этого значения будет отниматься единица, до достижения нулевого значения. Таймер работает в фоновом режиме, независимо от программы пользователя.
Максимальное значение = 32767

Математические и логические функции

 SQR

Вычисление квадратного корня

10 A=SQR {x}
20 A=SQR {145}:PRINT A;

Переменной A присваивается значение квадратного корня переменной x. Аргументом функции выступает переменная, число, выражение.

 ABC

Возвращает абсолютное значение числа

20 T=ABC{ #(25)}
25 S=ABC {X}

Возвращает абсолютное значение числа. Аргументом функции выступает переменная, число, выражение.

 ROL

Сдвиг влево

10 A=ROL {A,5}
20 A=ROL {B}
 A=ROL{25+4,2}

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

 ROR

Сдвиг вправо

10 A=ROR {A,5}
20 A=ROR {B}

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

 RND

Случайное число

A=RND{}

Генерация псевдослучайных чисел в диапазоне от -32768  до  32767 (0-255 для индексных) Аргументов нет

Блоки данных

DATA

Определения блока данных

DATA  #(i),255,26,27,5,6
DATA  #(i),”Alarm”

 

  

DATA  $(i),255,26,27,5,6

DATA  $(i),”Alarm”

Загружает  блок данных. Максимальное количество данных в строке определяется длиной строки, которая не должна превышать 64 символа включая номер строки. Максимальное количество строк с данными ограничено только размером свободной памяти программ. Переменной  с индексом  i  присваивается  первое число, с индексом  i+1  присваивается  следующее и т.д. В случае текста присваиваются коды символов, в каждую по одному символу последовательно

Ввод данных, как текст. Аналогично предыдущему, только данные будут располагаться  начиная  с i+1. В i+0 будет помещена длинна строки. Приемником  массива данных могут быть только индексные переменные и массив не должен пересекать границы блоков по 256 байт.

 

  Операторы ввода вывода

 INPUT#

 INPUT$

 INPUT@

 

Оператор ввода данных с консоли с ожиданием ввода

INPUT#  X

 

 

INPUT$  $(i)

 

INPUT@  #(i)

  Ожидает ввода числа в консоли в формате  от-32768 до 32767 или 0-255 для 8-битных  или выражения и присваивает переменной. Если входящий поток нельзя интерпретировать как число или выражение , то переменной присваивается нулевое значение. Списки не поддерживаются.
  Ожидает ввода текста в консоли до 63 символов. В ячейку $(i) будет помещено количество введенных символов а в ячейки $(i+1) и далее будет помещен сам текст, до  символа 0x0D или до 63 символов.
  Ожидает ввода 1 байта в консоли в HEX записи. Если входящий поток нельзя интерпретировать как число, то  индексной переменной присваивается нулевое значение. Лишние символы будут отброшены.

PRINT

Оператор вывода.
Вывод на консоль сообщений

PRINT
PRINT ;;
PRINT “Это сообщение
PRINT X
PRINT $(45);
PRINT  ”X= ”,X,”Y= ”,B;
PRINT X,Y,Z;
PRINT .2,A;
PRINT *$(0)

 

 

 

 

 

  Вывод списка в консоль. Элементы списка разделяются запятой или точкой с запятой. Если точка с запятой, то следующий элемент выводится с табуляцией на 8. Если запятая  - то слитно. Табуляция выполняется пробелами.
  В случае завершения списка точкой с запятой – строка не переводится. Количество элементов списка от нуля. Сам элемент списка может отсутствовать(табуляция будет выполняться).
    В качестве элементов списка выступают:
 Обычные переменные, выводятся   в виде чисел со знаком без незначащих нулей.
  Индексные переменные
#(x) выводятся как число 0-255 без незначащих нулей.
@(x) выводятся как HEX запись числа 00-FF.
 $(x) выводятся как символ с кодом в переменной
 *$(x) выводится как строка длинной в первом байте переменной
  Текст asdf заключенный в кавычки

- Оператор форматирования вывода обычных переменных вида .X , где X =0-3, – количество знаков после запятой.
0 – отключает десятичную точку.
 - Оператор форматирования длинны числа %x, где x указывает, сколько последних цифр выводится от написания числа. Значение   х=0 – отменяет действие. Диапазон  X= 0-3 для индексных и 0-5 для обычных.
 - Оператор форматирования ~y, где y указывает, сколько пробелов печатать перед выводом числа, и также наличие его указывает замену незначащих нулей на пробелы.  y=0  отменяет действие.  Y= 0-9
 Форматирование действует от оператора и до конца списка, либо до появления другого этого же типа.
Пробелы, указанные внутри кавычек, выводятся. Символ ”;” в конце строчки означает, что следующий оператор PRINT продолжит печать в текущей строчке.
Длинна буфера вывода  - 63 байта для одного элемента списка.

Операторы и функции работы со строками

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.