Перечень элементов языка “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 Выключить генератор и остановить процессор Вывести данные в десятичном виде в последовательный порт 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 .. Открыть устройство (канал) ввода или вывода Вывести данные в десятичном виде в последовательный порт 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-8051COUNTER0, 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 (ПДУ)