Главная страница  Комбинированное использование портов 

1 2 3 4 [ 5 ] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

буквы в командах и директивах. Они различаются в только в идентификаторах (именах), если не отключена соответствующая опция.

Комментарии допускается размещать в любых строках программы. Им предшествует точка с запятой.

Идентификаторы могут включать от 1 до 32 знаков, но не должны использовать зарезервированные слова, являющиеся директивами и командами.

Цифровые данные могут быть выражены в десятичном, шестнад-цатеричном, восьмеричном, двоичном и ASCII кодах. Типы используемых числовых данных указаны в табл. 2.1. В табл. 2.2 приведены математические операторы.

Таблица 2.1

Типы числовых данных, допускаемые MPALC

Формат данных

Способ записи

Пример

Десятичный

Данные

.Данные

.100

Шестнадцатеричный

НДанные

H9f

Данные h

900h

ОхДанные

0x9ff

Восьмеричный

ОДанные

ОДанные

Q 777

Данные 0

7770

ДанныеQ

777Q

\ Данные

\777

Двоичный

ВДанные

BOOinOI

Данные В

00П101В

ASCII

Данные

АДанные

Чаще других употребляются следующие директивы ассемблера:

♦ DATA - инициализирует несколько слов, хранящихся в памяти;

♦ ZERO - заполняет нулями область памяти, размер которой задается числом, следующим за директивой;

♦ SET - определяет значение переменной;

♦ RES - резервирует память, объем которой указан следующим за директивой числом;

♦ EQU - определяет константу в программе;

♦ INCLUDE - позволяет вставить файл внутрь текущей программы;

♦ IF- определяет начало кодового раздела условного ассемблирования;

♦ ELSE - определяет начало альтернативного кодового раздела условного ассемблирования;

ENDIF - заканчивает кодовый раздел условного ассемблирования; ORG - определяет абсолютный адрес кода; END - заканчивает исходный текст; MACRO - определяет начало кода макрокоманды; ENDM - определяет конец кода макрокоманды; LOCAL - определяет локальную переменную в макрокоманде; EXITM - выход из макрокоманды.

Есть и другие директивы, относящиеся к форматированию или нумерации страниц. Но поскольку они не влияют на понимание листингов программ, представленных в следующих главах, в этой книге описываться не будут.

Таблица 2.2

Математические операторы

Оператор

функция

Сложение

Вычитание

Изменение знака

Деление по модулю

Умножение

Деление

Сдвиг влево

Сдвиг вправо

Скобки

Равно

Не равно

<=

Меньше или равно

>=

Больше или равно

Логическое отрицание

Поразрядное ИЛИ

&

Поразрядное И

Логическое ИЛИ

&&

Логическое И

Поразрядное исключающее ИЛИ

Текущее значение программного

счетчика

АССЕМБЛЕР PASM

Микроконтроллеры семейства MCS5I фирмы Intel очень распространены, и их ассемблер известен многим программи там. В связи с этим американская фирма Parallax создала ассемблер под названием PASM, который поддерживает набор команд Р1С-микроконтроллера Псевдоинструкций, аналогичных инструкциям 8051.



Так, вы можете записать в PASM:

ADD А, В

Что будет переведено им в:

MOVF В, О ADDWF А, 1

Для тех, кто уже работал с ассемблером 8051, первая строка будет более привычной, чем две эквивалентные команды для PIC-микро-контроллеров.

Этот ассемблер и его псевдоинструкции микроконтроллера 8051 используются в листингах нескольких приложений, представленных в данной книге. Поэтому в табл. 2.3 приведены правила перевода псевдоинструкций ИС 8051 в инструкции Р1С-микроконтролле-ров. Как можно заметить, эти правила естественно вытекают из функций, соответствующих инструкций.

Синтаксис этого ассемблера подобен синтаксису MPALC, но имеет несколько отличий.

PASM не поддерживает ни макрокоманды, ни условное ассемблирование, и соответствующих директив, естественно, не существует. Отсутствует восьмеричное представление данных. Что касается операторов, то они не столь многочисленны, как видно из табл. 2.4.

Директив ассемблера также меньше:

♦ DS - заполняет заданное число ячеек памяти указанным значением;

♦ EQU - определяет константу в программе;

♦ = - выполняет ту же функцию, что и EQU;

♦ INCLUDE - позволяет включить файл в текущую программ);

♦ ORG - определяет абсолютный адрес для кода;

♦ END - заканчивает текст программы;

♦ DEVICE - определяет тип используемого Р1С-микроконтроллера;

♦ R ES ЕТ - определяет адрес сброса.

Однако есть у ассемблера PASM и преимущества - он может определять идентификаторы для битов. Так, запись PORTC. 3 будет интерпретирована как бит 3 регистра PORTC .

Кроме того, в PASM имеется несколько стандартных логических имен ре. -.стров Р1С-микроконтроллера и возможность вызывать файл со стандартными именами регистров посредством директивы INCLUDE. Таким образом, RA соответствует порту А, RB - порт) В и т. Д-Чтение листингов, представленных в это1 книге и написанных на данном ассемблере, не вызовет у вас трудностей.

рСТВА РАЗРАБОТКИ ФИРМЫ PARALLAX

фирма Parallax много и успешно занимается выпуском средств раз-аботки микроконтроллеров. В этом разделе будет рассказано о наиболее интересных из предлагаемых продуктов.

ТобЛИЦО::............ - - ~--------:

Соответствие псевдоинарукций ассемблера фирмы PARALLAX и классических инарукций

Псевдокоманда 8051

Эквивалент PIC

ADD f г, #literal

MOVLWF literal ADDWF f r,1

ADD f ra,f rb

MOVFfrb.O

ADD fr,W

ADDWF fra.l

ADDW.Fr

ADDWF fr,0

ADDBfr,bit

BTFSCbit incf fr.1

AND fr.flliteral

MOVLW literal ANDWF fr,1

ANDfra,frb

MOVF frb.O ANDWF fra.l

AND f r.W

ANDWF fr,l

ANDW,#literal

AN DLW literal

ANDW.fr

ANDWF fr,0

aiLaddr

aiLadrS

aAfr,#literal,addr9

MOVLW literaiOFFh ADDWF fr.O BTFSC3,0 G0T0addr9

aAfr1.fr2,addr9

MOVFfrl.O SUBWFfr2.0 BTFSC3,0 G0T0addr9

CAE fr.#literal,addr9

MOVLW literal SUBWF fr.O BTFSC3,0 GOTO addr9



Таблица 2.3

Соответавие псевдоинарукций ассемблера фирмы PARALLAX и классических инарукций PlC-микроконтроллера (продолжение)

товие псевдоинарукций ассемблера фирмы PARALLAX и классических инарукций рС-микроконтроллера (продолжение)

Псевдокоманда 8051

Эквивалент PIC

CAE frl,fr2,addr9

MOVF f r2,0 SUBWF f rl.O BTFSC3,0 G0T0addr9

ав fr,#literal,addr9

MOVLW literal SUBWF fr,0 BTFSS3,0 G0T0addr9

ав fr1,f r2,addr9

MOVFfr2,0 SUBWF f rl.O BTFSS3.0

G0T0addr9

□BE fr,#literal,addr9

MOVLW /literal ADDWF f r,0 BTFSS3,0 GOTOaddrS

QBE frl,fr2,addr9

MOVF f r1,0 SUBWF fr2,0 BTFSC3,0 GOTOaddrS

GE fr,#literal,addr9

MOVLW literal SUBWF fr.O BTFSC3.2 G0T0addr9

OE frl,fr2,addr9

MOVF f Г2 , 0 SUBWF fr1,0 BTFSS3,2 GOTO addr9

CJNEfr,#literal,addr9

MOVLW literal SUBWF fr.O BTFSS3.2 G0T0addr9

Ьсевдокоманда 8051

Эквивалент PIC

MOVF fr2,0

aNEfr1,fr2.addr9

SUBWF f rl.O

BTFSS3,2

G0T0addr9

BCF 3,0

CLR f r

CLRFfr

CLRW

CLRW

CLR WDT

CLRWDT

CLRB bit

BCF bit

BCF 3,2

MOVLW/literal

CSAfr,#literal

ADDWF fr.O

BTFSS3,0

MOVF f rl.O

CSAfrl,fr2

SUBWF f r2,0

BTFSC3,0

MOVLW literal

CSAEfr,#literal

SUBWF fr.O

BTFSS3.0

MOVFfr2,0

CSAE fr1,fr2

SUBWF fr1,0

BTFSS3,0

MOVLW literal

CSB fr,#literal

SUBWF fr,0

BTFSC3,0

MOVF f r2,0

CSB f r1,f r2

SUBWF frl.O

BTFSC3,0

MOVLW/literal

CSBE fr,#literal

ADDWF fr.O

BTFSC3,0



1 2 3 4 [ 5 ] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.