Читаем Занимательно о микроконтроллерах полностью

Встроенные имена присвоены адресам регистров специальных функций, адресам флагов специальных функций AR0—AR7, рабочим регистрам R0—R7 текущего банка регистров, а также аккумулятору А и флагу переноса С. Список встроенных имен приведен в табл. 8.2.

Определяемые имена

Определяемые имена объявляются пользователем. В языке программирования ASM-51 имеются следующие категории определяемых идентификаторов:

— метки;

— внутренние и внешние переменные адресного типа;

— внутренние и внешние переменные числового типа;

— имена сегментов;

— названия программных модулей.

Числа и литеральные строки

В языке программирования ASM-51 используются целые беззнаковые числа, представленные в двоичной, восьмеричной, десятичной и шестнадцатеричной формах записи. Для определения основания системы счисления используется суффикс (буква, следующая за числом):

— В определяет двоичное число (разрешенные цифры 0, 1);

— Q\O определяет восьмеричное число (разрешенные цифры 0, 1, 2, 3, 4, 5, 6, 7);

— D определяет десятичное число (разрешенные цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

— Н определяет шестнадцатеричное число (разрешенные цифры 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

Для десятичного числа суффикс может отсутствовать. Количество символов в числе ограничено размером строки, однако значение числа определяется по модулю 216 (т. е. диапазон значений числа находится в пределах от 0 до 65535).

Примеры записи чисел:

011101b, 1011100B, 735Q, 45бо, 256, 0fah, 0CBH.

Число всегда начинается с цифры. Это необходимо для того, чтобы отличать шестнадцатеричное число от идентификатора. Например:

— ADCH — идентификатор;

— ADCH — число.

Часто бывает удобно выполнить некоторые вычисления для того, чтобы получить число. При этом, если поместить в текст программы предварительно вычисленное на калькуляторе значение, то может возникнуть вопрос: откуда взялось это значение. Лучше ввести формулу расчета и сами значения непосредственно в исходный текст программы. Язык программирования ASM-51 позволяет выполнять беззнаковые операции над числами. В таких выражениях допустимо использовать следующие арифметические операции:

+ суммирование;

 вычитание;

* умножение;

/ деление;

mod вычисление остатка от целочисленного деления.

В языке программирования ASM-51 также определена одноместная операция изменения знака — «минус» (-). Для нее требуется только один операнд — тот, которому она предшествует.

Часто требуется выполнять операции в определенном порядке, отличающемся от принятого по умолчанию. Для изменения порядка выполнения операций можно воспользоваться скобками. Более того, использование скобок в ряде случаев повышает наглядность программы и, тем самым, уменьшает время ее отладки.

Кроме арифметических операций в выражениях допустимо использование следующих логических операций:

— not побитовая инверсия операнда;

— and логическое «И»;

— or логическое «ИЛИ»;

— хоr «исключающее ИЛИ» (суммирование по модулю два);

— функции выделения старшего «HIGH» и младшего «LOW» байта 16-разрядного числа.

Пример использования выражений языка программирования ASM-51 для определения числовой константы приведен в листинге 8.3.

Часто операнд используется для представления символов на экране дисплея. В этом случае для определения его значения удобнее воспользоваться не числом, а литеральной константой.

Литеральная константа заключается в апострофы:

'a', 'W'

mov SBUF, #'Б'    ;Передать по последовательному порту ANSI код буквы 'Б'

Часто на экране дисплея приходится отображать не одну букву, а целые фразы. Их удобно запоминать в памяти программ, а затем передавать на дисплей при помощи специальной подпрограммы. Для записи фраз в памяти программ можно воспользоваться литеральными строками, для ввода которых в память программ удобно воспользоваться директивой db:

Nadp: DB 'Ошибка в блоке 5'

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

Директивы языка программирования ASM-51

Любой ассемблер всегда включает в себя команды микроконтроллера, но ими не ограничивается набор операторов этого языка программирования. Дело в том, что нужно уметь управлять самим процессом трансляции программы.

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

Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника