Рис. Р6.3 Память микроконтроллера КР 1816:
а) внутреннее ОЗУ (память данных ), б) внутреннее и внешнее ПЗУ (память программ)
Р6.67. Каждый из двух блоков ППЗУ МК1816 (рис. Р6.3, б), имеющий емкость 2 Кбайта, делится на 8 страниц по 256 байтов в каждом. Поэтому для указания адреса ячейки в пределах страницы достаточно 1 байта. В большинстве команд МК1816, в том числе в командах условных переходов, адресация осуществляется пределах страницы, что накладывает определенные ограничения при составлении программ, но позволяет обходиться 2-байтовыми командами (а не 3-байтовыми, как в МП КР580ВМ80). Для перехода к другой странице данного блока ППЗУ используются команды вызова подпрограммы CALL или безусловного перехода JMP, которые также содержат по два байта, но в них три старших бита первого байта указывают код выбираемой страницы.
Р6.68. Таймер микроконтроллера МК1816 представляет собой 8-разрядный суммирующий счетчик, который может быть использован для организации временных задержек и подсчета внешних импульсов. В первом случае посредством начальной установки счетчика, счета импульсов, следующих с периодом 80 мкс, и анализа признака переполнения может быть реализована задержка от 80 мкс до 20 мс. Во втором случае внешние импульсы подаются на вход МК Т1; разрешающее время счетчика 7,5 мкс. Для управления таймером в системе команд МК1816 имеются специальные команды.
Р6.69. a) (A)←(R5); прямая адресация приемника и источника информации: в аккумулятор пересылается содержимое регистра R5 ОЗУ; код команды 11111101 =FDH;
б) (А)←А1Н; прямая адресация приемника и непосредственная адресация источника: в аккумулятор загружается число А1Н; код команды (2 байта) 00100011 10100001 = 23А1Н;
в) (A)←[(R1)]; прямая адресация приемника и косвенная адресация источника; в аккумулятор пересылается содержимое ячейки внутреннего ОЗУ, адрес которой хранится в разрядах 0...5 регистра R1 ОЗУ; код команды 11110001 = F1H;
г) (А)←(Т); прямая адресация приемника и источника: в аккумулятор пересылается содержимое счетчика таймера; код команды 01000010 = 42 Н;
д) [(RO)]←(A); прямая адресация источника и косвенная адресация приемника; в ячейку ОЗУ, адрес которой хранится в разрядах 0...5 регистра RO ОЗУ, пересылается содержимое аккумулятора; код команды 10010000 = 90Н;
е) прямая адресация приемника информации — аккумулятора; косвенная адресация источника информации — ячейки из текущей страницы блока памяти; код команды 10100011 = A3 Н:
ж) (A)←[(RO)]; прямая адресация приемника и косвенная адресация источника; в аккумулятор пересылается содержимое ячейки памяти внешнего ЗУ, адрес которой указан в регистре RO ОЗУ; код команды 10000000 = 80Н;
з) (A)↔(R4); прямая адресация источника и приемника: аккумулятор и регистр R4 обмениваются содержимым; код команды 00101100 = 2СН;
и) (A)↔[(R1)]; аккумулятор и ячейка ОЗУ с адресом, указанным в регистре R1 ОЗУ, обмениваются содержимым; код команды 00100001 = 21Н.
к) прямая адресация приемника информации-аккумулятора; косвенная адресация источника информации — ячейки из непосредственно указанной 3-й страницы блока памяти; код команды 11100011=ЕЗН.
Р6.70. a) (A)←(A) + (R5); (A) = C9H; (С) = 0;
б) (А)←(А) + ОВН; (А) = В5Н; (С) = 0;
в) (A)←(A)+[(RO)]; (A) = OCH; (С) = 1;
г) (R4)←(R4)+1; (R4) = 50H; (C) = 0;
д) [(R1)]←[(R1)] + 1; [(R1)] = 2BH; (C) = 0;
е) (А)←(А) -1; (А) = 4ВН; (С) = 0;
ж) Циклический сдвиг содержимого аккумулятора влево: (А) = 64Н, (С) = 0;
з) Циклический сдвиг содержимого аккумулятора вправо: (А)= D9H; (C)=l;
и) Циклический сдвиг содержимого аккумулятора вправо через перенос: (А) = 59Н; (С)=1.
Р6.71. a) (A)←(A)Ù(R1); (A) = 28H;
б) (А) ←(А)ÙFO; (А) = А0Н (с помощью непосредственно заданного операнда FOH выделяется старшая тетрада содержимого аккумулятора);
в) (А) ← (A)Ú[(RO) ] = (A)Ú4CH; (A) = 5DH;
г) (A)←(A)Å61H; (A) = D2H;
д) (A) ← 0; (A) = 0; очищение (обнуление) аккумулятора;
e) (A) ←(A); (A) = 4CH; инвертирование содержимого аккумулятора.
Р6.72. а) (А) ← (Р1); ввод данных из порта Р1 в аккумулятор;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.