Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pr_51_teo2.doc
Скачиваний:
15
Добавлен:
19.02.2016
Размер:
1.54 Mб
Скачать

Директивы Ассемблера а51

1)Директивы определения символов:

1. SEGMENT - позволяет декларировать перемещаемые сегменты различных типов:

CODE - в пространстве программ (кода);

XDATA - во внешней памяти данных;

DATA - во внутреннем адресном пространстве МК51;

BIT - в побитово-адресуемой памяти данных (адреса 20Н -

32H);

Формат директивы следующий:

Имя_Сегмента SEGMENT Тип_Сегмента

Пример: PROG SEGMENT CODE

2. EQU - приписывает числовое значение константе.

Формат:

Символ EQU Выражение

Пример: LIMIT EQU 1200

COUNT EQU R5

3. SET - приписывает числовое значение переменной.

Формат директивы SET аналогичен формату директивы EQU.

4. BIT - приписывает символу адрес в побитово адресуемой области памяти. Формат:

Символ BIT Бит_адрес

Пример: X_ON BIT 24H

5. DATA - приписывает символу адрес во внутреннем ОЗУ МК51.

Формат:

Символ DATA Адрес_выражение

Пример: RESULT DATA 40H

RESULT2 DATA RESULT+2

6. XDATA - приписывает символу адрес во внешней памяти данных. Формат аналогичен формату директивы DATA

7. CODE - приписывает символу адрес в пространстве кода.

Формат:

Символ CODE Адрес_выражение

Пример: RESTART CODE ООН

INTVEC_0 CODE RESTART+3

2) Директивы компоновки:

1. PUBLIC - провозглашает символ или метку видимыми для других модулей, в которых они могут быть декларированы как EXTERN.

Формат:

PUBLIC Символ[,Символ,...]

2. EXTERN - декларирует символы и метки, описанные в других модулях. Формат:

EXTERN Тип_Сегмента (Символ), ...

Пример: EXTERN CODE (PUT_CHAR), DATA (BUFFER)

3. NAME - идентифицирует текущий программный модуль.

Формат:

NAME Имя_объектного_модуля

3) Директивы состояния и выбора сегментов:

1. END - последняя директива в программе. Вся информация после нее компилятором не воспринимается.

Формат:

END

2. ORG - используется для указания ассемблеру адреса объекта в памяти. Формат:

ORG Адрес_выражение

Пример: ORG 100Н

ORG RESTART

3. RSEG - выбирает описанный перемещаемый сегмент и делает его активным. Формат:

RSEG Имя_сегмента

Пример: RSEG SAMP

4. CSEG, DSEG, XSEG, BSEG - определяют соответствующие абсо­лютные сегменты

Формат:

CSEG AT Абсолютный_адрес

DSEG AT Абсолютный_адрес

XSEG AT Абсолютный_адрес

BSEG AT Абсолютный_адрес

Пример: BSEG AT ЗОН

5. USING - указывает ассемблеру, какой банк регистров необходимо использовать при выполнении последующих команд.

Формат:

USING Выражение

Пример: USING 2 ; использовать второй банк регистров

Операции с адресами и данными.

При работе с ассемблером А51 необходимо учитывать, что непосредственно числовые данные определяются символом # перед числом.

Пример: MOV А,#0Е0Н ;загрузить в аккумулятор число 0хЕ0

Числа без знака # будут восприняты ассемблером как ячейки памяти с соответствующими адресами.

Пример: INC 32 ;инкрементировать содержимое байта

;по адресу 32 (20H)

ORL A,20H ;побитовое ИЛИ аккумулятора и

;содержимого байта по адресу 20Н

Описание меток.

Пример:

COPY: MOVX A,@DPTR

DJNZ R0,$

Назначение линий портов ввода-вывода контроллера отладочной платы

Порт P0– предназначен для обмена микроконтроллера с ПЗУ, ОЗУ и регистрами. Не должен изменяться пользователем.

Порт P1– Биты:

P1.0-P1.2– Вывод знакоместа индикатора(для динамической индикации и сканирования клавиатуры)

P1.3 – Тумблер 3.

P1.4– Тумблер 2.

P1.5-P1.7– Линии возврата при опросе клавиатуры.

Порт 2– предназначен для вывода старших разрядов адреса (A8-A15) при обмене с ПЗУ и ОЗУ. Не должен изменяться пользователем.

Порт 3 – Биты:

P3.0 -RxD – Вход приемника последовательного интерфейса контроллера.

P3.1 – TxD – Выход передатчика последовательного интерфейса контроллера.

P3.2– Тумблер 1.

P3.3– Кнопка без дребезгаINT1и светодиод 3 (инверсный).

P3.4– Светодиод 2.

P3.5– Светодиод 1 и динамик.

P3.6–Wr – сигнал записи во внешнюю память данных.

PЗ.7–Rd – сигнал чтения из внешней памяти данных.

Все порты – двунаправленные. Каждая линия порта может адресоваться побитно. Линия настраивается на вход, если в защелку данной линии записана 1. Линии, неиспользуемые пользователем обязательно должны быть установлены в 1.

В распоряжении пользователя также находится внешний порт отладочной платыP5, который реализован на базе регистра ИР23 и предназначен для вывода символов на знакоместо семисегментного индикатора. Он расположен в адресном пространстве вненшней памяти данных (XDATA) по адресу 8000H.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]