Программная реализация интервалов времени
2 способа реализации:
Мнемокод | Коммент. |
PUSH PSW LXI HL FFFF m3: DCX H MOV A,H ORAL JNZ m3 POP PSW RET | A,F в стек x=FFFF HL-1 Если не 0 |
- использование регистровой пары;
- использование вложенных циклов.
Рассмотрим использование регистровой пары:
=65535*24/2*106=0,8с
=24/2*106
Недостатки: низкая точность формирования сигналов, погрешность равна количеству тактов повторений.
Использование вложенных циклов:
MVI C,FF m4: MVI B,FF m3: DCR B JNZ m3 DCR C JNZ m4 |
Пример: сформировать линейно возрастающее задающее воздействие.
Начальн.знач. – нулевое, конечное – максимальное восьмиразрядное.
Мнемокод |
T:PUSH PSW MVI C m2: MVI B,FF m1: DCR B JNZ m1 DCR C JNZ m2 POP PSW RET |
с
Запишем главную программу:
Мнемокод | Коммент. |
XRA A NVI H,FF OUT 84 CALL T INR A DCR H JNZ m2 | 00 A Uзmax H Uз Вывод Uз+1 H-1(счетчик шагов) |
Аппаратный умножитель и его применение
В системе команд MSP микроконтроллеров нет команд, производящих умножение и деление. Однако в старших моделях имеется периферийное устройство, с помощью которого можно производить 8-ми и 16-ти разрядные операции умножения. Наличие быстрого аппаратного умножителя с возможностью накопления результата диктуется необходимостью, в ряде случаев, использования MSP микроконтроллеров для цифровой обработки сигналов в реальном времени, например для реализации цифровых фильтров.
Аппаратный умножитель является периферийным устройством и не является частью ЦПУ MSP430. Это означает, что его действия не пересекаются с действиями ЦПУ. Регистры умножителя – это периферийные регистры, которые загружаются и читаются командами ЦПУ.
Аппаратный умножитель поддерживает операции умножения без знака, умножения со знаком, умножения без знака с накоплением и умножение со знаком и накоплением. Тип операции выбирается адресом, в который записан первый операнд. Аппаратный умножитель имеет два 16-разрядных регистра OP1 и OP2 и три регистра результата RESLO, RESHI и SUMEXT. В регистре RESLO содержится младшее слово результата, в RESHI - старшее слово результата, а в регистре SUMEXT находится информация о результате. Результат может быть прочитан следующей командой после записи в OP2, кроме случая, когда используется косвенный режим адресации.
Виды операции умножения.
В системе команд команда умножения отсутствует, для перемножения двух операндов их помещают в регистры аппаратного умножителя. После этого в регистрах RESL0, RESH1 результата можно прочесть 32 разрядный результат. Младшее слово результата хранится в RESL0, старшее – в RESH1. Первый сомножитель может быть размещен в одном из 4-х регистров, которые определяют вид операции умножения.
Аппаратный умножитель поддерживает:
- Умножение без знака;
- Умножение со знаком;
- Умножение без знака с накоплением;
- Умножение со знаком и накоплением;
- 16*16 бит, 16*8 бит, 8*16 бит, 8*8 бит.
Перечень регистров аппаратного умножителя | |||||||||||||||||||||||||||||||||||||||||||||
|