Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm / Микроконтроллеры семейства МК51.DOC
Скачиваний:
80
Добавлен:
11.05.2015
Размер:
254.98 Кб
Скачать

24

Кафедра промышленной электроники

Основы микропроцессорной техники

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МК51

Руководство к выполнению

лабораторных работ

2004

Министерство образования и науки Российской Федерации

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра промышленной электроники (ПрЭ)

УТВЕРЖДАЮ

Зав. кафедрой ПрЭ

А.В.Кобзев

Основы микропроцессорной техники

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МК51

Руководство к выполнению лабораторных

работ для студентов специальности

«Промышленная электроника»

Разработчик:

Профессор каф. ПрЭ

А.В.Шарапов

30.04.04 г.

2004

Лабораторная работа №1

ПРОГРАММНАЯ МОДЕЛЬ И СИСТЕМА КОМАНД МК51

Цель работы. Целью лабораторной работы является приобретение навыков использования ассемблера, редактора связей и эмулятора при формировании и отладке прикладных программ для однокристальных микроконтроллеров семейства МК51.

Программная модель микроконтроллера МК51

C точки зрения программиста микроконтроллер представляет набор регистров и ячеек памяти с конкретными адресами и обозначениями (рис.1). Резидентную память данных (РПД) составляют четыре банка регистров общего назначения, выбор которых осуществляется установкой и сбросом битов RS1 и RS0 в PSW, 128 программно управляемых флагов пользователя (регистры с адресами 20H-2FH) и регистры с адресами 30H-7FH, которые можно использовать как ОЗУ пользователя или стек. К адресному пространству РПД непосредственно примыкают адреса регистров специальных функций (знаком * отмечены регистры, допускающие адресацию отдельных бит).

К полному адресному пространству ячеек внешнего ОЗУ данных обращение производится косвенно через 16-битовый регистр-указатель данных DPTR. Для чтения данных из таблиц, зашитых в памяти программ, используется косвенно-регистровая адресация. Любой байт из таблицы может быть выбран по адресу, определяемому суммой содержимого DPTR или РС и содержимого аккумулятора. В памяти программ есть пять адресов, которым соответствуют векторы прерываний от пяти источников. Стрелка на рисунке показывает порядок убывания их приоритетов.

Слово состояния программы (PSW) включает в себя четыре флага:

С - перенос, АС - вспомогательный перенос, OV - переполнение и Р - паритет. Флаг OV устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль - устанавливается. При умножении флаг OV устанавливается, если результат больше 255. Флаг Р равен 0, если число единиц аккумулятора четное.

Сигнал сброса обнуляет содержимое регистров PC, ACC, B, PSW, DPTR, TMOD, TCON, T/C0, T/C1, IE, IP и SCON, в регистре PCON сбрасывается только старший бит, в регистр SP загружается код 07Н, а в порты Р0-Р3 загружаются коды 0FFH (настраивая их на ввод). Сигнал сброса не воздействует на содержимое ячеек РПД.

Резидентная Блок регистров

память данных специальных функций

B - расширитель аккумулятора

ACC - аккумулятор

PSW - слово состояния программы

IP - регистр приоритетов

P3 - порт Р3

IE - регистр масок прерываний

P2 - порт Р2

SBUF - буфер приемопередатчика

SCON - управление приемопередатчиком

P1 - порт Р1

TH1 - таймер Т/С1 (старший байт)

TH0 - таймер Т/С0 (старший байт)

TL1 - таймер Т/С1 (младший байт)

TL0 - таймер Т/С0 (младший байт)

TMOD - регистр режима таймеров

TCON - регистр управления таймеров

PCON - регистр управления мощностью

DPH - указатель данных (старший байт)

DPL - указатель данных (младший байт)

SP - указатель стека

P0 - порт Р0

F0*

E0*

D0*

B8*

B0*

A8*

A0*

99

98*

90*

8D

8C

8B

8A

89

88*

87

83

82

81

80*

Прямо

или

@Ri

128

прямо

адресуемых

бит

РОН3

РОН2

РОН1

РОН0

7F

30

2F

20

1F

18

17

10

0F

08

07

00

Память программ Внешняя память данных

MOVC

@A+DPTR

@A+PC

TI+RI

TF1

INT1

TF0

INT0

RESET

MOVX

@DPTR

MOVX

@Ri

FFFF

FF

0000

FFFF

0023

001B

0013

000B

0003

0000

Векторы

прерываний

Рисунок 1 - Программная модель МК51

Типы команд

Результаты трансляции 13 типов команд микроконтроллера МК51 иллюстрирует приводимая ниже программа (число байт – 1, 2 или 3).

##########################################################################

# Micro Series 8051 Assembler V1.80/MD2 25/Apr/04 08:47:51 #

# #

# Source = test.asm #

# List = test.lst #

# Object = test.r03 #

# Options = # # (c) Copyright IAR Systems 1985 #

##########################################################################

1

2 ; ПРИМЕРЫ 13 ТИПОВ КОМАНД МИКРОКОНТРОЛЛЕРА МК51

3

4 ; Символические обозначения операндов

5

6 0044 DATA EQU 44H ; 8-разрядные данные

7 0077 SMALL EQU 77H ; прямой адрес байта

8 00E0 BIT EQU ACC.0 ; прямой адрес бита

9 FFFB REL1 EQU -5 ; смещение назад

10 0005 REL2 EQU 5 ; смещение вперед

11 05FA MIDL EQU 5FAH ; 11-битный адрес

12 0033 PRI EQU 33H ; адрес приемника

13 0022 IST EQU 22H ; адрес источника

14 ABCD BIG EQU 0ABCDH ; 16-битный операнд

15

16 ; Запись и трансляция команд

17

18 0000 C4 SWAP A ; 1 тип

19 0001 3444 ADDC A,#DATA ; 2 тип

20 0003 5577 ANL A,SMALL ; 3 тип

21 0005 C2E0 CLR BIT ; 4 тип

22 0007 8005 SJMP $+2+REL2 ; 5 тип

23 0009 A1FA AJMP MIDL ; 6 тип

24 000B 437744 ORL SMALL,#DATA ; 7 тип

25 000E D577FB DJNZ SMALL,$+3+REL1 ; 8 тип

26 0011 852233 MOV PRI,IST ; 9 тип

27 0014 B84405 CJNE R0,#DATA,$+3+REL2 ; 10 тип

28 0017 20E0FB JB BIT,$+3+REL1 ; 11 тип

29 001A 12ABCD LCALL BIG ; 12 тип

30 001D 90ABCD MOV DPTR,#BIG ; 13 тип

31 0020 END

Errors: None ########

Bytes: 32 # test #

CRC: 3790 ########

Соседние файлы в папке asm