- •Типы команд
- •Команды микроконтроллера семейства мк51
- •Запись программы на языке ассемблера и ее трансляция
- •Xlink -c8051 tablo -o tablo.Hex
- •Загрузка программы в эмулятор и управление его работой
- •Программа работы
- •Контрольные вопросы
- •Система прерываний мк51
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Машинные коды команд к51
Кафедра промышленной электроники
Основы микропроцессорной техники
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МК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 ########