Главная страница

Справочник по программировани BASCOM-8051 (М.Л. Кулиш, 2001). Справочник по программированию bascom8051 Краснодар 2001


Скачать 6.61 Mb.
НазваниеСправочник по программированию bascom8051 Краснодар 2001
АнкорСправочник по программировани BASCOM-8051 (М.Л. Кулиш, 2001).pdf
Дата26.04.2017
Размер6.61 Mb.
Формат файлаpdf
Имя файлаСправочник по программировани BASCOM-8051 (М.Л. Кулиш, 2001).pdf
ТипСправочник
#5699
КатегорияПромышленность. Энергетика
страница2 из 25
1   2   3   4   5   6   7   8   9   ...   25
MWINIT
Установить интерфейса Microwire в исходное состояние
4-28
MWREAD
Считать значение из интерфейса Microwire
4-28
MWWRITE
Записать значение в интерфейса Microwire
4-28
MWWOPCODE
Записать код операции в устройство с интерфейсом Microwire.
4-28
Операторы Bascom-8051 для работы с синхронным последовательным интерфейсом
SHIFTIN
Считать данные из сдвигового регистра
4-35
SHIFTOUT
Записать данные в сдвиговый регистр 4-35
SPIIN
Считать данные через SPI
4-36
SPIOUT
Записать данные через SPI
4-36
Команды Bascom-8051 для работы с последовательным асинхронным интерфейсом (UART)
CLOSE ..
Закрыть устройство (канал) ввода или вывода
4-31
GET
Взять данные из устройства (канала) ввода
4-31
INKEY
Ввести значение символа из приемного буфера
4-23
INPUT
Ввести цифровое значение в десятичном виде
4-22
INPUTHEX
Ввести цифровое значение в шестнадцатеричном виде 4-22
INPUTBIN
Ввести двоичное число (без преобразования)
4-22
OPEN ..
Открыть устройство (канал) ввода или вывода 4-31
PRINT
Вывести данные в десятичном виде в последовательный порт 4-32
PRINTHEX
Вывести данные в шестнадцатеричном виде в посл. порт 4-32
PRINTBIN
Вывести двоичные данные в последовательный порт 4-32
PUT
Поместить данные в устройство (канал) вывода
4-31
WAITKEY
Ждать приема символа
4-23
Операторы Bascom-8051 для работы с символьным индикатором
.. BLINK
Мигать курсором (установить в виде мигающего блока) 4-24
CURSOR ..
Управление курсором (включить - ON / выключить - OFF)
4-24
DISPLAY ..
Управление индикатором (включить - ON / выключить - OFF)
4-24
HOME ..
Поставить курсор в начало строки
4-24
..FOURTH или .. F
Поставить курсор на четвертую строку
4-24
FOURTHLINE
Поставить курсор на четвертую строку
4-24
LCD ..
Вывести десятичное значение на индикатор
4-23
LCDHEX ..
Вывести шестнадцатеричное значение на индикатор 4-23
LOCATE y , x
Расположить курсор в строке y, в знакоместе x
4-24
..LOWER или .. L
Поставить курсор на строку ниже
4-24
LOWERLINE
Поставить курсор на строку ниже
4-24
.. NOBLINK
Не мигать курсором (установить в виде подчеркивателя) 4-24
SHIFTLCD ..
Сдвинуть изображение (влево - LEFT / вправо RIGHT)
4-24
SHIFTCURSOR ..
Сдвинуть курсор на позицию (влево – LEFT / вправо RIGHT)
4-24
.. THIRD или .. T
Поставить курсор на третью строку
4-24
THIRDLINE
Поставить курсор на третью строку
4-24
.. UPPER или .. U
Поставить курсор на верхнюю строку
4-24
UPPERLINE
Поставить курсор на нижнюю строку
4-24
Операторы Bascom-8051 для работы с битовыми переменными
BITWAIT bit Set(Reset)
Ждать установления (или сброса) бита 4-5
DEBOUNCE port ..
Производить периодическую проверку состояния порта 4-7,4-11
IF bit = 0 THEN ..
Проверять бит на 0 4-20
IF bit = 1 THEN ..
Проверять бит на 1 4-20
SET bit
Установить бит в «1».
4-34
RESET bit
Сбросить бит в «0».
4-34
=============================================================================
1-5

===================================== Справочник по программированию «Bascom-8051» ==
Новые операторы Bascom-8051, начиная с версии 1.0.0.19
$MAP
Записывать в файл сообщений адреса начала кода каждой строки
4-2
$NONAN
Заменяет вывод сообщения “NAN” на сообщение “0.0”
4-3
$REGFILE=[файл]
Указать имя файла для определения используемых регистров 4-3
LCASE()
Возвращает строку со строчными символами (в нижний регистр) 4-23
UCASE()
Возвращает строку с прописными символами (в верх. регистр) 4-23
Новые возможности операторов Bascom-8051, начиная с версии 1.0.0.19
CONST
Определить имя константы 4-9
SHIFTIN
Считать данные из сдвигового регистра
4-35
FUSING()
Возвращает строку с форматир. значением числа с плав. точкой
4-15
Новые операторы Bascom-8051, начиная с версии 1.0.0.20
$EXTERNAL
Указать используемые подпрограммы 4-1
$LIB
Указать имя библиотеки с подпрограммами на ассемблере 4-2
$NOLCDINIT
Запретить инициализацию LCD
4-3
CONFIG Microwire
Установка способа подключения к шине Microwire
4-8
HIGHW()
Выделить старшие два байта четырехбайтовой переменной 4-17
INSTR ()
Определить позицию включения в строке 4-21
LOWW()
Выделить младшие два байта четырехбайтовой переменной 4-17
MIN(), MAX()
Выбрать минимальное или максимальное значение массива 4-26
MWINIT
Установить интерфейса Microwire в исходное состояние
4-28
MWREAD
Считать значение из интерфейса Microwire
4-28
MWWRITE
Записать значение в интерфейса Microwire
4-28
MWWOPCODE
Записать код операции в устройство с интерфейсом Microwire.
4-28
Новые возможности операторов Bascom-8051, начиная с версии 1.0.0.20
INPUT
Добавлена опция TIMEOUT
4-22
IF X=”A”
Добавлена возможность сравнения с символьной константой 4-20
ON .. , PRIORITY ..
Добавлена поддержка PCA (80С51FA), как стандартной модели
4-29,4-33
Новые директивы, функции и операторы Bascom-8051, начиная с версии 2.04
$BGF=[файл]
Вставить в код программы графический файл BMP
Нет*
$NONULL = x
Управление форматом текстовых данных 4-3
$TIMEOUT
Разрешить использовать опцию TIMEOUT
4-4
CONFIG GRAPGLCD
Поддержка графического индикатора – установка конфигурации
Нет
CONFIG PRINT
Определение дополнительной линии управления для RS-485 4-9
PSET
Вывести точку на графический индикатор
Нет
REPLACE
Замена одних символов в строке другими 4-35
RND()
Функция возвращающая случайное число в указанном диапазоне 4-31
SHOWPIC
Вывести на графический индикатор картинку
Нет
SPC()
Вывод заданного количества пробелов в операторах Print и Lcd
4-37
Новые возможности операторов Bascom-8051, начиная с версии 2.04
IF … THEN … ELSE …
Добавлена возможность записи оператора условий в одну строку 4-20
OPEN … INVERTED …
Добавлена опция инверсии программного UART
4-32
… NOCS = x …
Добавленна опция NOCS оператор CONFIG SPI
4-9
… NOINT
Добавлена опция запрещения прерывания при генерации звука 4-37
… TIMEOUT = x …
Изменены условия использования этой опции 4-23
CLS TEXT, CLS GRAPH
CLS BOTH
Очистка графического индикатора
Нет
* - не описаны
=============================================================================
1-6

===================================== Справочник по программированию «Bascom-8051» ==
2. Введение
Bascom-8051
® - программная среда для создания исполняемого кода микроконтроллеров семейства 8051.
В основе Bascom-8051 находится компилятор программ, написанных на языке высокого уровня близкого к стандартному Бейсику. Кроме компилятора с состав пакета Bascom входит текстовый редактор, построчный отладчик-симулятор (с программными эмуляторами терминала, символьного индикатора, EEPROM), упрощенный эмулятор терминала (без файлового сервиса), контекстная информационно-справочная система и утилиты загрузки аппаратных эмуляторов и программаторов. Программы на Бейсике могут создаваться в любом текстовом редакторе, т.к. содержит только текстовые конструкции. Чтобы комментарии на русском языке были читаемы в окнах Bascom, тексты следует выполнять в кодировке «Windows» (ANSI).
Язык программирования Bascom составляют: директивы - указания для компилятора, определяющие порядок компиляции и конфигурацию среды создаваемой программы; операторы и функции Бейсика, преобразуемые в исполняемый код; переменные и константы, которые могут быть представлены в виде битов, одно-, двух- и четырехбайтовых чисел без знака и со знаком (записанных в дополнительном коде), текстовых строк, а также чисел в стандартном формате с плавающей точкой. Переменные могут быть организованы в виде массивов с возможностью доступа с помощью указателей (индексных переменных); элементы стандартного ассемблера процессора 8051. Ассемблерные вставки могут располагаться в любом месте программы без ограничений; файл (файлы) описания регистров микроконтроллера.
Производительность кода, созданного на основе библиотек Bascom на 25-50 % ниже аналогичных ассемблерных программ. По сравнению с программированием на ассемблере эффективность использования ресурсов оперативной памяти ниже на 30-50 %, программной – на 10-25 %. Однако, Bascom обеспечивает существенное сокращение затрат времени программирования. Кроме того, встроенная мощная поддержка многих стандартных физических устройств, наиболее часто применяемых в микропроцессорных системах, обеспечивает дополнительные удобства. По сравнению с компиляторами языка Си, Bascom дает намного более компактный код
(60-80 % от кода Си при выполнении аналогичных задач). Еще одна особенность Bascom - минимальные начальные затраты по созданию работоспособной программы. Компиляция всего нескольких строк может дать полностью рабочую программу, пригодную для записи в кристалл.
Компилятор позволяет создавать программы для всех моделей микроконтроллеров, совместимых по набору команд со стандартным 8051. Предусмотрены средства настройки компилятора под любую модель процессора с любым набором дополнительных регистров относительно модели 8051 или 8052. Все имена регистров, используемые в программе, определяются внешним файлом, описывающим их адреса.
Далее приведено исчерпывающее описание всех директив, операторов и функций Bascom, сопровождаемыми примерами их использования. Кроме этого, рассмотрены многие вопросы практического программирования. Дается множество примеров, которые взяты из действующих программ или специально написанных для соответствующих случаев. Почти во всех примерах намеренно оставлены все компоненты программы, обеспечивающие ее реальную работоспособность, хотя это и создает впечатление перегруженности и многократного повторения одинаковых фрагментов.
В результате компиляции могут быть получены файлы исполняемого кода в бинарном виде или HEX- формате. Компилятор также может создавать файлы сообщений (о распределении памяти и обнаруженных ошибках) и файлы для собственного отладчика.
Настоящее описание Bascom-8051” неоднократно дополнялось по мере выхода новых версий компилятора.
Следующее далее описание директив, операторов и функций соответствует последней версии компилятора, существующей на момент выхода очередной редакции (смотри дату на 1-м листе). Последующие разделы могут содержать устаревшие сведения, хотя и их содержание дополняется и корректируется, но не столь обязательно.
Это обусловлено тем, что практически не существует ограничений на использование обновленных компиляторов для старых исходных текстов (совместимость почти 100 %, можно написать только лучше и больше).
В версиях 2.хх произошло заметное обновление библиотек – в результате размер кода сокращается по сравнению с компиляторами версий 1.хх на 5-7 %.
=============================================================================
2-1

===================================== Справочник по программированию «Bascom-8051» ==
3. Системные соглашения
Элементы
Назначение и применение элементов языка Bascom
Символы
0…9, @, #, $, %, !, &, (, ), {, }, _, A…Z (строчные a…z равноценны прописным)
Знаки

*
+
,
-
.
/
:
«
;
<
=
>
\
Пробел (blank or space)
Апростроф (Single quotation mark или apostrophe)
Звездочка или знак умножения (asterisks)
Плюс или знак сложения (plus sign)
Запятая - разделитель операндов (comma)
Тире или минус или знак вычитания (minus sign)
Точка разделитель или десятичная точка (period or decimal point)
Дробная черта или знак деления (slash or division symbol)
Двоеточие - разделитель операций, определяет метки (colon)
Двойные кавычки - определитель текстовых констант (double quotation mark)
Точка с запятой (semicolon) - разделитель данных, знак комментариев в ассемблере
Знак отношения значений - меньше чем (less than)
Знак равенства и присвоения значения (equal sign)
Знак отношения значений - больше чем (greater than)
Обратная дробь (backslash) - знак деления целых чисел
Переменные
Bit
Byte
Word
Integer
Long
String
Single
Array
Один двоичный разряд, расположенный в битовой области процессора (все биты от 0 до
255). Принимают значения 0 или 1.В некоторых случаях доступны, как биты, отдельные разряды 8-, 16- и 32-битных переменных. Однако, биты регистров, находящихся вне зона битовой адресации, не могут быть именованы, как полноценные битовые переменные (их адрес не может быть определен как число).
8 битное число - диапазон значений от 0 до 255 (00 – FFh)
16 битное число - диапазон значений от 0 до 65535 (0000 – FFFFh)
16 битное число (переменная со знаком) – диапазон значений от 0 до 32767 (0000 – 7FFFh) и от минус 1 до минус 32768 (FFFFh – 8000h)
32 битное число (переменная со знаком) – диапазон значений от 0 до 2147483647 (00000000 -
7FFFFFFFh) и от минус 1 до минус 2147483648 (FFFFFFFFh – 80000000h)
Текстовая строка с разделителем 00h, удлиняющим ее на единицу. Длина строки может достигать 254 байт символов. Пустая строка читается как 00h – только разделитель.
Число с плавающей точкой в стандарте IEEE. Порядок от минус 127 до +127. Три байта нормализованной мантиссы длиной в 24 бита. Старший бит мантиссы не записывается, так как предполагается, что он всегда равен 1, т.е. число считается нормализованным.
31 30________23 22______________________________0 знак порядок мантисса.
Массив переменных содержит последовательность элементов одного типа. Каждый элемент массива имеет, определяющий его, собственный порядковый номер - индекс (index).
Изменения (действия) могут производиться с любым элементом массива независимо от остальных. Индекс может числовой константой, байтом или словом (integer или word).
Массив может содержать до 65535 элементом. Нумерация элементов массива начинается с первого номера, например, массив Ar из десяти элементов содержит элементы от Ar(1) до
Ar(10). Внимание! Не все операторы могут работать с переменными из массива.
Константы
Числовые значения, используемые в программе, могут быть определены с использованием символьного имени и указанием типа. Задаваемые константы должны иметь все те же типы, что и переменные. При использовании такой константы в дальнейшем используется только имя. Можно записывать числовое значение константы и непосредственно в качестве операнда, как значение бита, двоичное число, шестнадцатеричное число, десятичное целое число, число с десятичной точкой. Формат записываемого числа должен соответствовать типу переменной, с которой производится операция. Строковые константы записываются в виде текстовой строки в двойных кавычках.
Числа
1, 23, 4567 – десятичные, в естественном виде. Обычно так записываются целые числа.
&HA, &HFEE, &H001023F0 – шестнадцатеричные с префиксом &H. &B0001, &10111101- двоичные с префиксом &B 12.34 – с десятичной точкой. Эти числа преобразуются в формат с плавающей точкой. -123, -10000 – целые отрицательные числа. Эти числа преобразуются в отрицательные двоичные целые числа и записываются в дополнительном коде. Если десятичному числу соответствует переменная типа Single, число преобразуется в формат с
=============================================================================
3-1

===================================== Справочник по программированию «Bascom-8051» == плавающей точкой. Для тех случаев, когда компилятор не может определить тип задаваемой константы, например, при заполнении полей непосредственных данных с помощью оператора Data, следует добавлять к числу суффикс. 0 , 1 , 2 , 3 , 4 , 20, &HFF, &B00101111 - данные, записанные без суффикса, воспринимаются как байтовые константы. 1000% ,
2000% , &hAD1C%. - двухбайтовые константы (word и integer). 1000& , 20000000& - четырехбайтовые константы (long). 1111! , 10000000! - константы в формате с плавающей точкой (single).
Имена
переменных,
констант
и меток
Любые имена, за исключением зарезервированных слов Bascom, длиной от одного до 32 символов и начинающиеся с буквы. Можно применять символы только латинского алфавита от A до Z, цифры и символ _ (подчеркиватель как псевдопробел). Различий между прописными и строчными символами не делается. Общепринятые имена всех внутренних служебных регистров (SFR) также входят в состав применяемых переменных, если они определены в момент компиляции. SFR определяются содержанием действующего файла type.dat, в котором указаны их имена и соответствующие им адреса. Общепринятые имена битов необходимо определять в программе Бейсика как части байтовых регистров.
Знак действия
=
Знак действия: присвоения переменной цифрового или символьного значения (загрузка переменной), выравнивания значений правой и левой части выражений (арифметические или логические действия), выравнивание значений переменных (перезапись или преобразование формата данных). Каждый знак « = » должен соответствовать только одному действию! Преобразование форматов – это тоже действие!
1   2   3   4   5   6   7   8   9   ...   25


написать администратору сайта