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

Министерство образования украины

Национальный технический университет Украины

“Киевский политехнический институт”

Кафедра автоматизации экспериментальных исследований

МЕТОДИЧЕСКИЕ УКАЗАНИЯ к самостоятельной работе

по курсу «Микропроцессорные системы»

«Однокристальный микроконтроллер i8051»

Утверждено

на заседании кафедры

автоматизации

экспериментальных

исследований

Протокол № _______от _______

Киев – 2002

Методические указания к лабораторному практикуму по курсу «Микропроцессорные системы» / Сост. С.А.Богомазов и др. –

К.: НТУУ«КПИ»,2000. – 36 с.

Составители: С.А. Богомазов доц., к.т.н.

студенты К.В Попов

А. Ю. Семушкин

Н. В. Рябко

Структурная схема i8051

Типы команд i8051

Методы адресации

Регистровая адресация

Используется для обращения к восьми рабочим регистрам выбранного банка рабочих регистров, к регистрам А, В, АВ (сдвоенному регистру), DPTR и к флагу переноса С.

Примеры: MOV A,R0 ;Пересылка в аккумулятор из регистра

DEC R6 ;Декремент регистра

Прямая адресация

Используется для обращения к ячейкам внутренней памяти (ОЗУ) данных (0-127) и к регистрам специального назначения.

Примеры: MOV A,14h ;Пересылка в аккумулятор прямоадресуемого байта

PUSH 20H ;Загрузка в стек байта из резидентной памяти данных

Косвенно-регистровая адресация

Используется для обращения к ячейкам внутреннего ОЗУ данных и к внешней памяти данных. В качестве регистров-указателей используется регистры R0, R1 выбранного банка регистров.

Примеры: MOV A,@R0 ;Пересылка в аккумулятор байта из резидентной памяти данных

INC @R1 ;Инкремент байта в резидентной памяти данных

Непосредственная адресация

Позволяет выбрать из адресного пространства памяти программы - константы, явно указанные в команде.

Примеры: MOV A,#05 ;Загрузка в аккумулятор константы

ADD A,#10 ;Сложение аккумулятора с константой

Косвенно-регистровая адресация по сумме базового и индексного регистров.

Используется для обращения к памяти программ по сумме: базовый регистр (DPTR или PC) плюс индексный регистр (содержимое аккумулятора А). Примеры: MOVC A,@A+DPTR ;Пересылка в аккумулятор байта из памяти программ

JMP @A+DPTR ;Косвенный относительный переход ((PC)<-(A)+DPTR)

Блок регистров специальных функций(sfr)

Символ

Наименование

Адрес

ACC *

Аккумулятор

0E0H

B *

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

0F0H

PSW *

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

0D0H

SP

Регистр-указатель стека

81H

DPTR

Регистр-указатель данных (DPH)

(DPL)

83H

82H

P0 *

Порт 0

80H

P1 *

Порт 1

90H

P2 *

Порт 2

0A0H

P3 *

Порт 3

0B0H

IP *

Регистр приоритетов

0B8H

IE *

Регистр маски прерываний

0A8H

TMOD

Регистр режима таймера/счетчика

89H

TCON *

Регистр управления/статуса таймера

88H

TH0

Таймер 0 (старший байт)

8CH

TL0

Таймер 0 (младший байт)

8AH

TH1

Таймер 1 (старший байт)

8DH

TL1

Таймер 1 (младший байт)

8BH

SCON *

Регистр управления приемопередатчиком

98H

SBUF

Буфер приемопередатчика

99H

PCON

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

87H

Примечание. Регистры, имена которых отмечены знаком (*), допускают адресацию отдельных бит.

Символ

Позиция

Имя и назначение

C

PSW.7

Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифмитических и логических операций

AC

PSW.6

Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3

F0

PSW.5

Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфируемый пользователем

RS1

RS0

PSW.4

PSW.3

Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание)

OV

PSW.2

Флаг переполнения. Устанавливается и сбрасывается аппаратурно при выполнении арифмитических операций

-

PSW.1

Не используется

P

PSW.0

Флаг паритета. Устанавливается и сбрасывается аппаратурно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т. е. выполняет контроль по четности

Примечание. Выбор рабочего банка регистров.

RS1

RS0

Банк

Границы адресов

0

0

0

00H-07H

0

1

1

08H-0FH

1

0

2

10H-17H

1

1

3

18H-1FH

Группа команд передачи данных

MOV A, Rn

(A)←(R)

MOV Ri, #d

((Ri))←#d

MOV A, ad

(A)←(ad)

MOV DPTR, #d16

(DPTR)←#d16

MOV A, @Ri

(A)←(())

MOVC A, @A+DPTR

(A)←((A)+(DPTR))

MOV A, #d

(A)← #d

MOVC A, @A+PC

(PC)←(PC)+1 (A)←((A)+ PC))

MOV Rn, ad

(Rn)←(ad)

MOVX A, @Ri

(A)←((Ri))

MOV Rn, #d

(Rn)←#d

MOVX A, @DPTR

(A)←((DPTR))

MOV ad, A

(ad)←(A)

MOVX @Ri, A

((Ri))←(A)

MOV ad, Rn

(ad)←(Rn)

MOVX @DPTR, A

((DPTR))←(A)

MOV add, ads

(add)←(ads)

PUSH ad

(SP)←(SP)+1

((SP))←(ad)

MOV ad, @Ri

(ad)←((Ri))

POP ad

(ad)←(SP)

(SP)←(SP)-1

MOV ad, #d

(ad)←#d

ХСН A, Rn

(A)↔(Rn)

MOV @Ri, A

((Ri))←(A)

ХСН A, ad

(А)↔(ad)

MOV @Ri, ad

((Ri))←(ad)

ХСН A, @Ri

(А)↔((Ri))

XCHD A, @Ri

0-3)↔((Ri)0-3)

Группа команд логических операций

ANL A, Rn

(А)←(А) Λ (Rn)

XRL A, ad

(А)←(А)  (ad)

ANL A, ad

(А)←(А) Λ (ad)

XRL A, @Ri

(A)←(A)  ((Ri))

ANL A, @Ri

(А)(А) Λ ((Ri))

XRL A, #d

(А)←(А)  #d

ANL A,#d

(А)←(А) Λ # d

XRL ad, A

(ad)← (ad)  (A)

ANL ad, A

(ad)←(ad) Λ (А)

XRL ad, #d

(ad)←(ad)  #d

ANL ad, #d

(ad)←(ad) Λ #d

CLR A

(A)←0

ORL A, Rn

(А)←(А) V (Rn)

CPL A

(A)←(Ā)

ORL A, ad

(А)←(А) V (ad)

RL A

Rotate A left

ORL A,@Ri

(A)←(A) V ((Ri))

RLC A

(A n+ 1)← (An), n=0 6, (A0)←(C), (C)←(A7)

ORL A, #d

(А)←(А) V #d

RR A

(An)←(An+1), n=0 6, (A7)←(A0)

ORL ad, A

(ad)←(ad) V (A)

RRC A

(An)←(An+1), n=0 6, (A7)←(C), (C)←(A0)

ORL ad, #d

(ad)←(ad) V # d

SWAP A

(A0-3)↔(A4-7)

Группа команд передачи управления

LJMP ad 16

(PC)←ad 16

AJMP ad 11

(PC)←(PC)+2, (PC0-10)←ad 11

SJMP rel

(PC)←(PC)+2, (PC)←(PC)+rel

JMP @A+DPTR

(PC)←(A)+(DPTR)

JZ rel

(РС)←(РС)+2б если (Ф)=0б то (ЗС)← (ЗС)+куд

JNZ rel

(PC)←(PC)+2, если (A)≠0, то (PC)← (PC)+rel

JC rel

(PC)←(PC)+2, если (C)=1, то (PC)← (PC)+rel

JNC rel

(PC)←(PC)+2, если (C)=0, то (PC)← (PC)+rel

JB bit, rel

(PC)←(PC)+3, если (b)=1, то (PC)← (PC)+rel

JNB bit, rel

(PC)←(PC)+3, если (b)=0, то (PC)← (PC)+rel

JBC bit, rel

(PC)←(PC)+3, если (b)=1, то (b)←0 и (PC)← (PC)+rel

DJNZ Rn, rel

(PC)←(PC)+2, (Rn)←(Rn)-1, если (Rn)≠0, то (PC)← (PC)+rel

DJNZ ad, rel

(PC)←(PC)+2, (ad)←(ad)-1, если (ad)≠0, то (PC)← (PC)+rel

CJNE A, ad, rel

(PC)←(PC)+3, если (A)≠(ad), то (PC)← (PC)+rel, если (A)<(ad), то (C)←1, иначе (C)←0

CJNE A, #d, rel

(PC)←(PC)+3, если (A)≠#d, то (PC)← (PC)+rel, если (A)<#d, то (C)←1, иначе (C)←0

CJNE Rn, ≠d, rel

(PC)←(PC)+3, если (Rn)≠#d, то (PC)← (PC)+rel, если (Rn)<#d, то (C)←1, иначе (C)←0

CJNE @Ri,≠d, rel

(PC)←(PC)+3, если ((Ri))≠#d, то (PC)← (PC)+rel, если (Ri)<#d, то (C)←1, иначе (C)←0

LCALL ad 16

(PC)←(PC)+3, (SP)←(SP)+1, ((SP))←(PC0-7), (SP)←(SP)+1,то ((SP))←(PC8-15), (PC)←ad 16

ACALL ad 11

(PC)←(PC)+2, (SP)←(SP)+1, ((SP))←(PC0-7), (SP)←(SP)+1, то ((SP))←(PC8-15), (PC0-10)←ad 11

RET

(PC8-15)←((SP)), (SP)←(SP)-1, (PC0-7)←((SP)), (SP)←(SP)-1

RETI

(PC8-15)←((SP)), (SP)←(SP)-1, (PC0-7)←((SP)), (SP)←(SP)-1

NOP

(PC)←(PC)+1

Группа команд арифметических операций

ADD A, Rn

(А)←(А)+(Rn)

SUBB A, Rn

(A)←(A)-(C)-(Rn)

ADD A, ad

(A)←(А)+(ad)

SUBB A, ad

(A)←(A)-(C)-((ad))

ADD A, @Ri

(А)←(А)+((Ri))

SUBB A, @Ri

(A)←(A)-(C)-((Ri))

ADD A, #d

(A)←(A)+#d

SUBB A, d

(A)← (A)-(С)←# d

ADDC A, Rn

(А)←(А)+(Rn)+(С)

INC A

(A)←(A)+1

ADDC A, ad

(А)←(А)+(ad)+(С)

INC Rn

(Rn)←(Rn)+ 1

ADDC A, @Ri

(А)←(А)+((Ri))+(С)

INC ad

(ad)←(ad)+ 1

ADDC A, #d

(А)←(А)+#d+(С)

INC @Ri

((Ri))←((Ri))+1

DAA

Если (А0-3) > 9V ((AC) =1,то

0-3)←(А0-3)+6, затем

если (А4-7) > 9V ((AC) =1,

то (А4-7)←(А0-3)+6

INC DPTR

(DPTR)←(DPTR)+1

DEC A

(А)←(А)-1

DEC Rn

(Rn)←(Rn)-1

DEC ad

(ad)←(ad)-1

DEC @Ri

((Ri))←((Ri))-1

DIV AB

(А).(В)←(А)/(В)

MUL AB

(B)(A)←(А)х(В)

Группа команд операций с битами

CLR C

(C)←0

ANL C, bit

(C)←(C)^(b)

CLR bit

(b)←0

ANL C, /bit

(C)←(C)^(b)

SETB C

(C)←1

ORL C, bit

(C)←(C)V(b)

SETB bit

(b)←1

ORL C, /bit

(C)←(C)V(b)

CPL C

(C)←(C/)

MOV C, bit

(C)←(b)

CPL bit

(b)←(b/)

MOV bit, C

(b)←(C)

Специальные символы

 - оператор присваивания (замещения)

 - оператор взаимного обмена

А, V,  - операторы логических операций: И (конъюнкция), ИЛИ (дизъюнкция), исключающее ИЛИ

@ - префикс косвенной адресации

# - префикс непосредственного операнда

(Y) - содержимое регистра или ячейки памяти с именем Y

((У)) - содержимое ячейки памяти, адресуемой содержимым У (косвенная адресация)

Условные обозначения

А - регистр-аккумулятор

ad - прямой 8-битный адрес байта РПД (0-127), порта или РСФ

add - прямой 8-битный адрес назначения

ads - прямой 8-битный адрес источника

ad11 - прямой 11-битный адрес передачи управления

ad16 - прямой 16-битный адрес передачи управления

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

bit - прямой 8-битный адрес бита (i8051)

С - флаг переноса

#d - 8-битный непосредственный операнд (константа)

#d16 - 16-битный непосредственный операнд (константа)

DPTR - Data Pointer (см. РУД)

PC - Program Counter (см. СК, рус.)

Rel - 8-битный относительный адрес передачи управления (- 127 +128) в i8051

Ri - обобщенное имя регистра косвенного адреса (R0 или R1)

Rn - обобщенное имя рабочего регистра (n= 0 7)

SP - Stack Pointer (см. РУС)

Регистр управления/статуса универсального асинхронного приемопередатчика (UART).

Символ

Позиция

Имя и назначение

SM0

SM1

SCON.7

SCON.6

Биты управления режимом работы УАПП. Устанавливаются/ сбрасываются программно (см. примечание).

SM2

SCON.5

Бит управления режимом УАПП. Устанавливается программ­но для запрета приема сообщения, в котором девятый бит имеет значение 0.

REN

SCON.4

Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных.

TB8

SCON.3

Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме УАПП-9 бит.

RB8

SCON.2

Прием бита 8. Устанавливается/сбрасывается аппаратурно для фиксации девятого принимаемого бита в режиме УАПП-9 бит.

T1

SCON.1

Флаг прерывания передатчика. Устанавливается аппаратурно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания.

R1

SCON.0

Флаг прерывания приемника. Устанавливается аппаратурно при приеме байта. Сбрасывается программно после обслуживания прерывания.

Примечание.

SM0

SM1

Режим работы УАПП

0

0

Сдвигающий регистр расширения ввода/вывода.

0

1

УАПП-8 бит. Изменяемая скорость передачи.

1

0

УАПП-9 бит. Фиксированная скорость передачи.

1

1

УАПП-9 бит. Изменяемая скорость передачи.

Настройка таймера 1 для управления частотой работы UART.

Частота приема/передачи (BAUD RATE)

Частота резонатора, МГц

SMOD

Таймер/счетчик 1

С/Т

Режим (MODE)

Перезагружаемое число

Режим 0, макс: 1 МГц

12

X

X

X

X

Режим 2, макс: 375 кГц

12

1

X

X

X

Режимы 1,3: 62.5 кГц

12

1

0

2

0FFH

19.2 кГц

11.059

1

0

2

0FDH

9.6 кГц

11.059

0

0

2

0FDH

4.8 кГц

11.059

0

0

2

0FAH

2.4 кГц

11.059

0

0

2

0F4H

1.2 кГц

11.059

0

0

2

0E8H

137.5 кГц

11.059

0

0

2

1DH

110 Гц

6

0

0

2

72H

110 Гц

12

0

0

1

0FEEBH

Регистр управления мощностью (pcon)

Символ

Позиция

Наименование и функция

SMOD

PCON.7

Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = О

PCON.6

Не используются

PCON.5

PCON.4

GF1

PCON.3

Флаги, специфицируемые пользователем (флаги общего на назначения)

GF0

PCON.2

PD

PCON.I

Бит пониженной мощности. При установке бита в 1 МК пе­реходит в режим пониженной потребляемой мощности

IDL

PCON.0

Бит холостого хода. Если бит установлен в 1, то МК пере­ходит в режим холостого хода

Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого РУМ выполняется путем загрузки в него кода ОХХХОООО.

Таймер/счетчик событий

Т/С1 в режиме 0: 13 битный счетчик

Т/С1 в режиме 2: 8 битный автоперегружаемый счетчик

Т/С0 в режиме 3: два 8 битных счетчика

Схемотехника портов ввода/вывода i8051 Порт 0

Порт 3

Альтернативные функции порта 3

Символ

Позиция

Имя и назначение

RD/

Р3.7

Чтение. Активный сигнал низкого уровня формируется аппаратно при обращении к ВПД

WR/

Р3.6

Запись. Активный сигнал низкого уровня формируется аппаратно при обращении к ВПД

Т1

Р3.5

Вход таймера/счетчика 1 или тест-вход

ТО

Р3.4

Вход таймера/счетчика 0 или тест-вход

INT1/

РЗ.З

Вход запроса прерывания 1. Воспринимается сигнал низ­кого уровня или срез

INT0/

Р3.2

Вход запроса прерывания 0. Воспринимается сигнал низкого уровня или срез

TXD

Р3.1

Выход передатчика последовательного порта в режиме УАПП. Выход синхронизации в режиме сдвигающего регистра

RXD

РЗ.О

Вход приемника последовательного порта в режиме УАПП. Ввод/вывод данных в режиме сдвигающего регистра

Регистр режима работы таймера/счетчика (TMOD).

Символ

Позиция

Имя и назначение

GATE

TMOD.7 для Т/С1 и TMOD.3 для Т/С0

Управление блокировкой. Если бит установлен, то таймер/счет­чик "х" разрешен до тех пор, пока на входе "INTх" высокий уровень и бит управления "TRx" установлен. Если бит сброшен, то Т/С разрешается, как только бит управления "TRx" устанав­ливается

С/

TMOD.6 для Т/С1 и TMOD.2

для Т/С0

Бит выбора режима таймера или счетчика событий. Если бит сброшен, то работает таймер от внутреннего источника сигналов синхронизации. Если бит установлен, то работает счетчик от внеш­них сигналов на входе "Тx"

Ml

TMOD.5 для Т/С 1 и TMOD.1 для Т/СО

Режим работы (см. примечание)

М0

TMOD.4 для Т/С 1 и TMOD.0

для Т/СО

Примечание.

Ml

М0

Режим работы

0

0

Таймер МК48. "TLx" работает как 5-битный предделитель.

0

1

16-битный таймер/счетчик. "ТНх" и "TLx" включены последовательно.

1

0

8-битный автоперезагружаемый таймер/счетчик. "ТНх" хранит значе­ние, которое должно быть перезагружено в "TLx" каждый раз по пе­реполнению.

1

1

Таймер/счетчик 1 останавливается. Таймер/счетчик 0: TLO работает как 8-битный таймер/счетчик, и его режим определяется управляю­щими битами таймера 0. ТНО работает только как 8-битный таймер, и его режим определяется управляющими битами таймера 1.

Регистр управления/статуса таймера (TCON).

Символ

Позиция

Имя и назначение

TF1

TCON.7

Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера/счетчика. Сбрасывается при об­служивании прерывания аппаратно.

TR1

TCON.6

Бит управления таймера 1. Устанавливается/сбрасывается программой для пуска/останова.

TF0

TCON.5

Флаг переполнения таймера 0. Устанавливается аппаратно. Сбрасывается при обслуживании прерывания.

TR0

TCON.4

Бит управления таймера 0. Устанавливается/сбрасывается программой для пуска/останова таймера/счетчика.

IE1

TCON.3

Флаг фронта прерывания 1. Устанавливается аппаратно, когда детектируется срез внешнего сигнала ЗПР1/ (INT1/) Сбрасывается при обслуживании прерывания

IT1

TCON.2

Бит управления типом прерывания 1. Устанавливается/ сбрасывается программно для спецификации запроса ЗПР1/ (срез/низкий уровень).

IE0

TCON.1

Флаг фронта прерывания 0. Устанавливается по срезу сигна­ла . Сбрасывается при обслуживании прерывания

IT0

TCON.0

Бит управления типом прерывания 0. Устанавливается/ сбрасывается программно для спецификации запроса ЗПР0/ (срез/низкий уровень)

Схема прерываний i8051

Адреса векторов прерываний

Interrupt

Mnemonic

Interrupt Name

Vector

Address

Priority

within

Level

IE0

Внешнее прерывание 0

0003h

1

TF0

Переполнение таймера 0

000Bh

2

IE1

Внешнее прерывание 1

0013h

3

TF1

Переполнение таймера 1

001Bh

4

RI/TI

Прерывание UART

0023h

5

Регистр масок прерывания (IE).

Символ

Позиция

Имя и назначение

EA

IE.7

Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IE4-IE0

-

IE.6

Не используется.

-

IE.5

ES

IE.4

Бит разрешения прерывания от УАПП. Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI

ET1

IE.3

Бит разрешения прерывания от таймера 1. Установка/сброс программой для разрешения/запрета прерываний от таймера 1.

EX1

IE.2

Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерываний.

ET0

IE.1

Бит разрешения прерывания от таймера 0. Работает аналогично IE.3.

EX0

IE.0

Бит разрешения внешнего прерывания 0 Работает аналогично IE.2.

Регистр приоритетов прерываний (IP)

Символ

Позиция

Имя и назначение

-

IР.7-IР.5

Не используются

PS

IР.4

Бит приоритета УАПП. Установка/сброс программой для присваивания прерыванию от УАПП высшего/низшего приоритета

РТ1

1Р.З

Бит приоритета таймера 1. Установка/сброс программой присваивания прерыванию от таймера 1 высшего/низшего приоритета

РХ1

IР.2

Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT1/

РТО

IР.1

Бит приоритета таймера 0. Работает аналогично IP.3

РХО

IР.О

Бит приоритета внешнего прерывания 0. Работает аналогично IP.2

Карта адресуемых бит в блоке регистров специальных функций

Система подготовки программ i8051

Справочная информация

Псевдокоманды транслятора:

LIST,NOLIST - управление листингом

ORG <операнд> - установка счетчика адресов

EQU <операнд> - определение адреса идентификатора

SET <операнд> - аналогично EQU, с возможной переустановкой в

программе

END - конец программы

HEXFILE <имя файла> - создание файла *.HEX

LISTFILE <имя файла> - создание файла листинга *.LST

DB ... - определение однобайтных констант

DW ... - определение двухбайтных констант

DS <операнд> - резервирование памяти в программе

Префиксы операндов: LOW - младший байт операнда

HIGH - старший байт операнда

В Вашем распоряжении программно-доступные регистры:

A, B, PSW, SP, DPTR(DPH,DPL), P0, P1, P2, P3,

IP, IE, TMOD, TCON, TH0,TL0, TH1,TL1, SCON, SBUF, PCON.

При этом возможны и побитовые обращения к регистрам:

A, B, PSW, P0, P1, P2, P3, IP, IE, TCON, SCON,

а также к ОЗУ с адресами 20h-2Fh.

Например: SETB PSW.3 ; третий бит регистра PSW

ANL C,/P2.0 ; младший бит регистра P2

MOV C,23h.7 ; старший бит в байте с адресом 23h

Отладчик dScope-51.

Существуют следующие окна:

WATCH - доступно, если командой WS (WatchpointSet) были определены WАТСН-выражения. Размер окна зависит от количества WATCH-выражений.

LANGUAGE - используется для отображения

1) исходных текстов загруженной программы;

2) соответствующих им инструкций ассемблера;

Режим отображения может быть изменен клавишами Alt-View (High Level, Mixed или Assembler). Переключение к этому окну осуществляется клавишами Alt-L. Самая нижняя линия окна служит командной строкой.

По заглавной букве доступны следующие команды:

Again - повторяет последнюю Find, -find или Step команду, включая аргументы.

Break - создает/удаляет точку разрыва на текущей позиции курсора.

Execute - временно выводит в ЕХЕ - окно для задания одной команды.

Find - ищет в тексте программы строку вперед от курсора.

-find - то же назад от курсора.

Go_til - запускает программу с текущего значения программного счетчика.

Jump - перемещает курсор на определенную метку.

Pstep - эквивалентно одному шагу в ЕХЕ-окне.

traceStep - эквивалентно Т в ЕХЕ-окне.

setTag - устанавливает метку.

SERIAL - содержит информацию о текущем состоянии последовательного порта микроконтроллера. Горячие клавиши - Alt-S. В случае ненадобности окно может быть отключено клавишами Alt-V S.

EXE - является контрольной панелью. Горячие клавиши -Alt-E.

REGISTER - расположено в правой вертикальной зоне экрана. Показывает текущее содержимое регистров, стека, указателей стека, счетчика циклов. Включается и отключается комбинацией Alt-R.

HELP - окно содержит информацию-подсказку по всем элементам DS51. Система HELPa очень развита и всеобъемлюща. Горячие клавиши - Alt-H-I или F1.

Размер окон EXE, SERIAL, LANGUAGE, HELP может быть изменен либо мышкой, либо следующими комбинациями клавиш:

Аlt-стрелка_вниз - уменьшить окно;

Аlt-стрелка_вверх - увеличить окно;

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

Эмуляция встроенной периферии.

Для загрузки тестируемой программы в DS51 программа должна существовать либо в OMF - 51, либо в Intel HEX формате.

DS51 поддерживает следующие области памяти:

- 64К программной памяти (CODE);

- 256 байт внутренней памяти данных IDATA;

- 128 байтов ОЗУ регистров специальных функций (регистров управления встроенными устройствами) SFR RAM;

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

- побитово адресуемая RAM;

Регистр IDATA можно адаптировать к конкретному микрокон­троллеру, эмулируемому DS51 в пределах (128 - 256) байт.

Рассмотрим наиболее часто употребляемые команды, доступные в окне ЕХЕ;

- Установка 32к внешней памяти

>МАР 0,0x7FFF

- Загрузка тестируемой программы

>LOAD [NameProg]

- Список содержимого внешней памяти

>МАР

0: xdata 0000h to 7FFEh

Начиная с адреса 0 доступно 32к внешней памяти. Попытки обратиться к адресам выше 7FFFh будут расцениваться DS51 как ошибка.

- Просмотр области памяти, расположенной по определенному адресу

>D [Идентификатор типа памяти]:[Адрес]

В качестве идентификатора типа памяти допустимо использовать следующие символы; I, X, D, В, С.

- Список всех глобальных переменных программы NameProg

>DIR [NameProg]

Следует список в формате

[Adress] .... [Name] .. [Type]

- Список модулей из которых состоит программа (включая библиотечные)

>DIR MODULE

- Список локальных переменных функции NameFunc из модуля NameMod

>DIR [NameMod] . [NameFunc]

- Запуск программы

>G

- Выполнение одной команды программы (при пошаговом выполнении)

>Т

- Выполнение программы до адреса функции NameFunc

>G, [NameFunc]

- Просмотр содержимого переменных

>[ Имя переменной ]

Показывается адрес переменной и ее значение

[Адрес] = [Значение]

Следует отдельно рассмотреть случай, когда имя переменной совпадает с зарезервированным словом. Например

>BD /* BD - зарезервированное слово

BreakpointDisable */

Будет получено сообщение об ошибке

ERROR 33: syntax error

Необходимо литерализировать зарезервированное слово

>~BD

- Установка условных точек разрыва

>BS SUNDAY new_record[6]. month.day

Программа будет остановлена в случае присвоения полю new_record[6].month.day значения SUNDAY.

- Установка безусловной точки разрыва

>В

При этом курсор должен находиться в строке окна LANGUAGE, на которой устанавливается точка разрыва.

- Установка точки разрыва по адресу функции

>ВS [Имя функции]

- Вывод определенных точек разрыва

>BL

- Удаление точки разрыва

>ВК [Номер точки разрыва]

- Удаление всех определенных точек разрыва

>ВК *

- Просмотр содержимого функции

>U [Имя функции]

- Просмотр строки программы

>G, .[Имя программы]#[Номер строки]

- Установка напряжения на выводе микроконтроллера

>[Имя вывода] = [Значение напряжения]

Допускаются следующие имена выводов: PORT0 – 8

- Просмотр значений напряжения на выводах микроконтроллера

>DIR VTREG

- Вывод списка доступных сигнальных функций

>SIGNAL STATE

- Выход из dScope – 51

>ЕХ1Т

Директивы Ассемблера а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.

Назначение битов порта p5:

P5.0 – G P5.4 - D

P5.1 – H P5.5 - C

P5.2 – F P5.6 - A

P5.3 – E P5.7 – B

Распределение памяти монитора

0000H -7FFFH – ПЗУ с программой монитора

8000H -9FFFH – Порт Р5 (для записи)

0C000H-0D7FFH – ОЗУ пользователя ( фон-Неймана)

0D800H-0DFFFH – ОЗУ монитора

Объявление абсолютных сегментов

Сегмент данных

DSEG AT 30H

ORG 30H

X1: DS 1; Однобайтовая переменная X1

X2: ……………….; И так далее

……………….

Сегмент кода

СSEG AT 0C000H

ORG 0C100H

………………; Текст программы

Блок клавиатуры и индикации

Отладочная плата

1

32

2

31

3

30

4

29

5

28

6

27

7

26

8

25

9

24

10

23

11

22

12

21

13

20

14

19

15

18

16

17

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