МИКРОКОНТРОЛЛЕРЫ
lim
ОКТЯБРЬ
типов: биты, ниблы (4 разряда), байты и 16-битные сло-
ва. Время исполнения команд составляет 1, 2 или 4 ма-
шинных цикла. При тактовой частоте 12 МГц длительность
машинного цикла составляет 1 мкс, при этом 64 команды
исполняются за 1 мкс, 45 команд - за 2 мкс и 2 команды
(умножение и деление) - за 4 мкс.
Набор команд MCS-51 поддерживает следующ ие ре-
жимы адресации.
Прямая адресация (Direct Addressing).
О перандом оп-
ределяется 8-битным адресом в инструкции. Эта адреса-
ция используется только для внутренней памяти данных
и регистров SFR.
Косвенная адресация (IndirectAddressing).
В этом слу-
чае инструкция адресует регистр, содержащ ий адрес one-
ads - адрес прямо адресуемого байта-источника;
add- адрес прямо адресуемого байта-получателя;
ad11 - 11-разрядный абсолютный адрес перехода;
ad16 - 16-разрядный абсолютный адрес перехода;
rel - относительный адрес перехода;
#d - непосредственный операнд;
#d16 - непосредственный операнд (2 байта);
bit - адрес прямо адресуемого бита;
/bit - инверсия прямо адресуемого бита;
А - аккумулятор;
PC - счетчик команд;
DPTR - регистр указатель данных;
( ) - содержимое ячейки памяти или регистра.
Команды пересылки данных MCS-51
ранда. Д анны й вид адресации может применяться при
обращ ении как к внутреннему, так и внеш нему ОЗУ. Для
указанны х 8-битны х адресов могут использоваться ре-
гистры R0 и R1 выбранного регистрового банка или ука-
затель стека SP.
Для 16-битной адресации исполь-
зуется только регистр “указатель дан-
ных” (DPTR - Data Pointer).
Регистровая адресация (Register
Instruction).
Данная адресация приме-
няется для доступа к регистрам R0 +
R7 выбранного банка. Команды с ре-
гистровой адресацией содержат в бай-
те кода операции трехбитовое поле,
определяющее номер регистра. Выбор
одного из четырех регистровых банков
осущ ествляется программированием
битов селектора банка (RS1, RS0) в
PSW.
Непосредственная адресация
(Immediate constants).
Операнд содер-
жится непосредственно в поле коман-
ды вслед за кодом операции и может
занимать один или два байта (data8,
d a ta j.
Индексная адресация (Indexed
Addressing).
Индексная адресация ис-
пользуется при обращ ении к памяти
программ и только при чтении. В этом
режиме осуществляется просмотр таблиц в памяти про-
грамм. 16-битовый регистр (DPTR или PC) указывает базо-
вый адрес требуемой таблицы, а аккумулятор указывает
на точку входа в нее. Адрес элемента таблицы находится
сложением базы с индексом (содержимым аккумулятора).
Другой тип индексной адресации применяется в коман-
дах “перехода по выбору” (Case Jump). При этом адрес
перехода вычисляется как сумма указателя базы и акку-
мулятора.
Неявная
адресация (Register-Specific Instructions).
Не-
которые инструкции используют индивидуальные регист-
Эта группа представлена 28 командами, их краткое
описание приведено в
табл. 2,
где также указаны тип ко-
манды (Т) в соответствии с таблицей, ее длина в байтах
(Б) и время выполнения в машинных циклах (Ц).
По команде MOV выполняется пересылка данных из
второго операнда в первый. Эта команда не имеет досту-
па ни к внеш ней памяти данных, ни к памяти программ.
Для этих целей предназначены команды MOVX и MOVC
соответственно. Первая из них обеспечивает чтение/за-
пись байт из внеш ней памяти данных, вторая - чтение
байта из памяти программ.
По команде ХСН выполняется обмен байтами между
аккумулятором и ячейкой РПД, а по команде XCHD - об-
мен младш ими тетрадами (битами 0.
..3).
Команды PUSH и POP предназначены соответствен-
Табл.2
Н азвание ком анды
М нем окод
КОП
T
Б
Ц
О перация
Пересылка в аккумулятор из регистра (п=0+7)
MOV A, Rn
1110ІПТ
1
1
1
(А) «- (Rn)
Пересылка в аккумулятор лрямоадресуемого байта
MOV A, ad
11100101
3
2
1
(А) <- (ad)
Пересылка в аккумулятор байта из РПД (і=0,1)
MOV A, @Ri
1110011t
1
1
1
(А) «—
((Ri))
Загрузка в аккумулятор константы
MOV A, #d
01110100
2
2
1
(А) <- #d
Пересылка в регистр из аккумулятора
MOV Rn, А
1111 1 ГГГ
1
1
1
(Rn) <- (А)
Пересылка в регистр прямоадресуемого байта
MOV Rn, ad
1010ІГГГ
3
2
2
(Rn)
(ad)
Загрузка в регистр константы
MOV Rn, #d
01111ГГГ
2
2
1
(Rn)
<r-
#d
Пересылка по прямому адресу аккумулятора
MOV ad, А
11110101
3
2
1
(ad)
(A)
Пересылка по прямому адресу регистра
MOV ad, Rn
Ю00ІГГГ
3
2
2
(ad)
(Rn)
Пересылка прямоадресуемого байта по прямому адресу
MOV add, ads
10000101
9
3
2
(add) <- (ads)
Пересыпка байта из РПД по прямому адресу
MOV ad, @Ri
1000011 і
3
2
2
(ad) <- {(Ri))
Пересыпка по прямому адресу константы
MOV ad, #d
01110101
7
3
2
(ad) <— #d
Пересылка в РПД из аккумулятора
MOV @Ri, A
1111011 і
1
1
1
«Ri» <- (A)
Пересылка в РПД прямоадресуемого байта
MOV @Ri, ad
0110011 і
3
2
2
«Ri» «-(ad)
Пересылка в РПД константы
MOV @Ri, #d
0111011 і
2
2
1
((Ri))
<—
#d
Загрузка указателя данных
MOV DPTR, #d16
10010000
13
3
2
(DPTR)
#d16
Пересылка в аккумулятор байта из ПП
MOVC A,
(StA+DPTR
10010011
1
1
2
<- ((A) +(DPTR))
Пересылка в аккумулятор байта из ПП
MOVC A, @A+PC 10000011
1
1
2
(PC) <- (PC)+1,
(A) <—
((A)+(PC))
Пересыпка в аккумулятор байта из ВПД
MOVX A, @Ri
1110001t
1
1
2
(A K -« R i»
Пересылка в аккумулятор байта из расширенной ВПД
MOVX A,@DPTR
11100000
1
1
2
(A) <- ((DPTR))
Пересылка в ВПД из аккумулятора
MOVX @Ri, A
1111001t
1
1
2
«Ri» <- (A)
Пересылка в расширенную ВПД из аккумулятора
MOVX @DPTR,A
11110000
1
1
2
«DPTR» «- (A)
Загрузка в стек
PUSH ad
11000000
3
2
2
(SP)<- (SP) + 1.
((SP)) <- (ad)
Извлечение из стека
POP ad
11010000
3
2
2
(ad) к (SP),
(SP )<-(S P )-1
Обмен аккумулятора с регистром
ХСН A, Rn
11001 rrr
1
1
1
(A )~ (R n )
Обмен аккумулятора с прямоадресуемым байтом
ХСН A, ad
11000101
3
2
1
(A) — (ad)
Обмен аккумулятора с байтом из РПД
ХСН A, (S>Ri
1100011 і
1
1
1
(A) « «Ri»
Обмен младших тетрад аккумулятора и байта РПД
XCHD A. (5>Ri
1101011i
1
1
1
(A° 3)»«R')o з)
ры (например, операции с аккумулятором, ЭРТИ), при этом
но для записи данны х в стек и их чтения из стека. Раз-
данные регистры не имеют адреса, указываю щ его на них;
это заложено в код операции.
Обозначения, используемые при описании команд
МСЭ-51
Ип (п = 0, 1.
..7) - регистр общ его назначения в выб-
ранном банке регистров;
( 5 ^ (I = 0, 1) - регистр общего назначения в выбран-
ном банке регистров, используемый в качестве регистра
косвенного адреса;
аб - адрес прямо адресуемого байта;
мер стека ограничен лиш ь размером резидентной памя-
ти данны х. В процессе инициализации микро ЭВМ после
сигнала сброса или при вклю чении питающ его напряже-
ния в SP заносится код 07Н. Это означает, что первый
элемент стека будет располагаться в ячейке памяти с
адресом 08Н.
Группа команд пересы лок микроконтроллера имеет
следующ ую особенность, - в ней нет специальных команд
для работы со специальными регистрами: PSW, тайме-
ром, портами ввода/вывода. Доступ к ним, как и к другим
10/2002
предыдущая страница 27 Радиолюбитель 2002-10 читать онлайн следующая страница 29 Радиолюбитель 2002-10 читать онлайн Домой Выключить/включить текст