Перечень элементов языка “Bascom-8051”

Знаки соотношения и вычисления Bascom-8051

= Приравнять, преобразовать, переписать
+ - * / \ Арифметические операции
= < > <= >= <> Операторы соотношения
“ ; : , Разделители операций и данных

Типы данных и переменных

BIT Бит
BYTE Байт (без знака)
CONST Константа (все типы)
INTEGER Двухбайтовая переменная со знаком
LONG Четырехбайтовая переменная со знаком
SINGLE Четырехбайтовая переменная с плавающей точкой
STRING Символьная переменная (строка символов)
WORD Двухбайтовая переменная без знака
Array(n) Массив числовых переменных (индексированных) любого типа

Числа (константы), понимаемые компилятором Bascom-8051

10, 12345, -100 Целые десятичные положительные и отрицательные
&h00FF, &h10 Целые шестнадцатеричные (одно-, двух- и четырехбайтные)
&b01010101 Целые двоичные (одно-, двух- и четырехбайтные) 
123.456, 0.12 Десятичные, задаваемые в формате с плавающей точкой
“String Data” Строковая константа (до 254 символов)

Директивы компилятора Bascom-8051

$ASM Начать ассемблерный блок
$BAUD = бод Установить бодовую скорость системы
$CRYSTAL = Гц Объявить частоту тактового генератора
$DEFAULT XRAM Начать располагать переменные во внешней памяти
$END ASM Закончить ассемблерный блок
$INCLUDE [файл] Включить в процесс компиляции внешний файл
$IRAMSTART = адрес Начать располагать во внутренней памяти с адреса
$LARGE Установить большую модель памяти
$LCD = адрес Обращаться по шине к ЖКИ-модулю по указанному адресу
$NOBREAK Пропускать при компиляции команды останова (для отладчика)
$NOINIT Не инициализировать микроконтроллер автоматически
$NOSP Не устанавливать стек автоматически
$OBJ Вставить строчку объектного кода
$RAMSIZE = размер Установить размер внешней памяти
$RAMSTART = адрес Установить начальный адрес внешней памяти
$ROMSTART = адрес Установить начальный адрес памяти программы
$SERIALINPUT = метка Определить имя программы последовательного ввода
$SERIALOUTPUT = метка Определить имя программы последовательного вывода
$SERIALINPUT2LCD Определить направление ввода-вывода (из посл. порта в LCD)
$SIM Исключить для отладчика циклы ожидания (при задержках)

Операторы Bascom-8051

.. ALIAS .. Команда переименования переменных
BITWAIT bit Set(Reset) Ждать установления (или сброса) бита
BREAK Остановиться в отладчике
CALL имя Вызвать подпрограмму (функцию) с именем
CASE n : действие При значении n совершить действие
CASE IS : условие При значении , удовлетворяющем условию, совершить действие
CLOSE .. Закрыть устройство (канал) ввода или вывода
CONFIG устройство Установить режим одного из устройств микроконтроллера
DATA Объявить блок непосредственных данных в памяти команд
DEBOUNCE Производить периодическую проверку состояния порта
DECLARE SUB Объявить процедуру (функцию)
DEFBIT Объявить имя битовой переменной
DEFBYTE Объявить имя байтовой переменной
DEFINT Объявить имя двухбайтовой переменной (со знаком)
DEFWORD Объявить имя двухбайтовой переменной
DEFLCDCHAR Определить изображение специального символа
DELAY Короткая задержка
DIM .. AS .. Определить размерность переменной или константы
DISABLE устройство Запретить прерывание от устройства
DO .. Определение начало простого цикла
.. ELSE ..  Определить действия при невыполнении условий 
.. ELSEIF.. условий Определить действия при невыполнении условий, но при выполнении других
ENABLE устройство Разрешить прерывание от устройства 
END  Закончить программу (остановиться) 
.. END IF  Закончить операцию проверки и выполнения условий 
ERASE  Уничтожить переменную (освободить память) 
EXIT ..  Выйти из цикла 
For…To/Downto...Step...  Определение цикла с переменным параметром 
GET  Взять данные из устройства (канала) ввода 
GOSUB имя  Вызвать подпрограмму с именем 
GOTO метка  Перейти на метку 
.. LOOP  Замкнуть простой цикл 
.. NEXT  К следующему значению в цикле с переменным параметром
IDLE  Выполнить останов процессора
IF ..  Начать проверять условия 
INPUT  Ввести цифровое значение в десятичном виде 
INPUTHEX Ввести цифровое значение в шестнадцатеричном виде
INPUTBIN Ввести двоичное число (без преобразования) 
INKEY  Ввести значение символа из приемного буфера 
LCD  Вывести десятичное значение на индикатор 
LCDHEX  Вывести шестнадцатеричное значение на индикатор 
LOAD TIMER0, 1 и 2 Загрузка регистров таймера, определяющих частоту 
MODE0, 1, 2, 3, 4, 5 Режимы таймеров, устанавливаемые при инициализации
NOSAVE  Запретить автоматическое сохранение регистров в прерывании
ON [Interrupt] Объявление используемого прерывания 
ON x GOTO (GOSUB) Переход (вызов) в зависимости от значения переменой x
OPEN ..  Открыть устройство (канал) ввода или вывода
POWERDOWN Выключить генератор и остановить процессор 
PRINT  Вывести данные в десятичном виде в последовательный порт
PRINTHEX  Вывести данные в шестнадцатеричном виде в посл. порт
PRINTBIN  Вывести двоичные данные в последовательный порт
PRIORITY ON(OFF) .. Установить (снять) приоритет прерывания 
PUT  Поместить данные в устройство (канал) вывода 
READEEPROM Считать данные из EEPROM модели AT89S8252 
READ  Считать данные из секции DATA 
REM или ‘ Указывает комментарии в тексте программы
RESET Сбросить (установить в “0”) бит. Применяется и к устройствам
RESTORE Указать блок DATA для считывания оператором READ
RETURN  Возврат из подпрограммы 
ROTATE .. Сдвигать переменную (влево – LEFT / вправо RIGHT) 
SELECT CASE x Выбрать действие в зависимости от значения переменной x
SET  Установить (в “1”) бит. Применяется к устройствам
SHIFTIN  Считать данные из сдвигового регистра 
SHIFTOUT Записать данные в сдвиговый регистр
SOUND  Генерация частоты на линии порта 
SPIIN  Считать данные через SPI 
SPIOUT  Записать данные через SPI 
START TIMER0, 1, 2 Запустить счетчик таймера 0, 1 или 2
STOP TIMER0, 1, 2 Остановить счетчик таймера 0, 1 или 2
STOP Остановить исполнение программы 
SUB  Определить подпрограмму или процедуру 
SWAP  Поменять местами значения двух переменных одного типа
.. THEN .. Определить действия при выполнении условий
.. UNTIL .. Определить условия выхода их цикла 
WAIT Ждать секунды 
WAITKEY Ждать приема символа 
WAITMS Ждать миллисекунды 
WHILE .. WEND Цикл, выполняемый, пока условия остаются истинными
WRITEEEPROM Записать данные в EEPROM модели AT89S8252
  

Функции Bascom-8051

ABS(x) Возвращает абсолютное значение знаковой переменой 
ASC(s) Возвращает код символа 
BDC(x) Выводит число в двоично-десятичном виде 
СHR(x) Преобразует цифру в символ (записывает как символ)
CPEEK(x) Возвращает значение байта из памяти команд 
DECR x  Уменьшить переменную на единицу 
INCR x Увеличить переменную на единицу 
FUSING() Возвращает строку с форматир. значением числа с плав. точкой 
GETRC() Возвращает значение постоянной времени RC-цепочки 
GETRC5 Возвращает значение кода из инфракрасного порта (ПДУ)
HEX()  Возвращает строку с шестнадцатеричным значением числа
HEXVAL()  Возвращает значение строки в шестнадцатеричном виде
HIGH()  Возвращает старший байт двухбайтной переменной 
INP() Возвращает значение из ячейки внешней памяти 
LEFT() Возвращает символы строки, расположенные слева 
LOW() Возвращает младший байт двухбайтной переменной
LEN() Возвращает длину строки 
LOOKUP  Возвращает значение из таблицы числовых данных 
LOOKUPSTR Возвращает значение из таблицы строковых данных 
MAKEBCD(x)  Преобразует двоичное число в двоично-десятичный код
MAKEDEC(x) Преобразует число в двоично-десятичном виде в двоичное 
MAKEINT() Склеивает двухбайтное число из двух однобайтных 
MID() Возвращает символы из середины строки (или вставляет) 
MOD  Возвращает остаток от деления двух переменных 
OUT Записать значение во внешнюю память 
PEEK() Возвращает значение байта, из внутренней памяти
POKE  Записать байт в ячейку внутренней памяти
RIGHT() Возвращает символы строки, расположенные справа
SPACE() Возвращает строку, заполненную пробелами
STRING() Возвращает строку, заполненную одинаковыми символами
STR() Возвращает строку с десятичным значением числа
VAL() Возвращает значение строки в десятичном виде
VARPTR() Возвращает адрес переменной, располженной во внутр. памяти

Операторы Bascom-8051 для работы с однопроводной линией

1WREAD Считать данные по однопроводной шине 
1WRESET Сбросить однопроводный интерфейс
1WWRITE Записать данные по однопроводной шине

Операторы Bascom-8051 для работы с двухпроводной линией I2C

I2CRECEIVE Считать данные из устройства по шине I2C 
I2CSEND Записать данные в устройство по шине I2C
I2CSTART Генерировать условия старта на шине I2C
I2CSTOP Генерировать стоп-условия окончания обмена по шине I2C
I2CRBYTE Принять один байт из I2C-устройства
I2CWBYTE Послать байт в I2C-устройство 

Операторы Bascom-8051 для работы с синхронным последовательным интерфейсом

SHIFTIN  Считать данные из сдвигового регистра 
SHIFTOUT Записать данные в сдвиговый регистр
SPIIN Считать данные через SPI
SPIOUT Записать данные через SPI

Команды Bascom-8051 для работы с последовательным асинхронным интерфейсом (UART)

CLOSE .. Закрыть устройство (канал) ввода или вывода 
GET Взять данные из устройства (канала) ввода 
INKEY  Ввести значение символа из приемного буфера 
INPUT  Ввести цифровое значение в десятичном виде 
INPUTHEX Ввести цифровое значение в шестнадцатеричном виде
INPUTBIN Ввести двоичное число (без преобразования) 
OPEN .. Открыть устройство (канал) ввода или вывода
PRINT Вывести данные в десятичном виде в последовательный порт
PRINTHEX Вывести данные в шестнадцатеричном виде в посл. порт
PRINTBIN Вывести двоичные данные в последовательный порт
PUT Поместить данные в устройство (канал) вывода 
WAITKEY Ждать приема символа 

Операторы Bascom-8051 для работы с символьным индикатором

.. BLINK Мигать курсором (установить в виде мигающего блока)
CURSOR .. Управление курсором (включить - ON / выключить - OFF)
DISPLAY .. Управление индикатором (включить - ON / выключить - OFF)
HOME .. Поставить курсор в начало строки 
..FOURTH или .. F Поставить курсор на четвертую строку 
FOURTHLINE Поставить курсор на четвертую строку 
LCD .. Вывести десятичное значение на индикатор 
LCDHEX .. Вывести шестнадцатеричное значение на индикатор
LOCATE y , x Расположить курсор в строке y, в знакоместе x 
..LOWER или .. L Поставить курсор на строку ниже 
LOWERLINE Поставить курсор на строку ниже 
.. NOBLINK Не мигать курсором (установить в виде подчеркивателя)
SHIFTLCD .. Сдвинуть изображение (влево - LEFT / вправо RIGHT)
SHIFTCURSOR .. Сдвинуть курсор на позицию (влево – LEFT / вправо RIGHT)
.. THIRD или .. T Поставить курсор на третью строку 
THIRDLINE Поставить курсор на третью строку 
.. UPPER или .. U Поставить курсор на верхнюю строку 
UPPERLINE Поставить курсор на нижнюю строку 

Операторы Bascom-8051 для работы с битовыми переменными

BITWAIT bit Set(Reset) Ждать установления (или сброса) бита
DEBOUNCE port .. Производить периодическую проверку состояния порта
IF bit = 0 THEN ..  Проверять бит на 0 
IF bit = 1 THEN ..  Проверять бит на 1 
SET bit Установить бит в “1”.
RESET bit Сбросить бит в “0”.


Устройства, с которыми работают операторы “Bascom-8051”

Внутренние аппаратные ресурсы микроконтроллера, 
поддерживаемые системой Bascom-8051

COUNTER0, 1 и 2 Счетчики таймеров 0, 1 и 2
EEPROM Перепрограммируемая память модели AT89S8252
TIMER0, 1 и 2 Таймеры 0, 1 и 2
UART Стандартный асинхронный интерфейс (аппаратный и программный)
WATCHDOG Будильник модели AT89S8252
INT0 Внешнее прерывание 0
INT1 Внешнее прерывание 0
SERIAL Прерывание от последовательного приемопередатчика
TIMER0 Прерывание таймера 0
TIMER1 Прерывание таймера 1
TIMER2 Прерывание таймера 2

Внешние устройства, поддерживаемые системой Bascom-8051

1WIRE Однопроводный интерфейс фирмы “Dallas Semiconductors”
I2C Двухпроводный интерфейс фирмы “Philips”
LCD Стандартный символьный модуль: все размеры, три типа шины (способа подключения)
SPI Программный SPI интерфейс и все остальные виды последовательных синхронных интерфейсов (все комбинации сигналов).
SOUND  Генератор частоты звука 
RC Измерение временного интервала (АЦП с RC-цепочкой)
RC5 Приемник кода интерфейса RC5 (ПДУ)

Возврат