Методические указания к выполнению лабораторных работ по курсу «Микропроцессорная техника»
Вид материала | Методические указания |
В. Команда NOP DEL В осуществляет регулируемую временную задержку, и ее входным параметром является двухбайтное число, записанное в паре регист |
- Методические указания к выполнению лабораторных работ по курсу «вычислительная техника, 640.55kb.
- Методические указания к выполнению лабораторных работ для студентов, обучающихся, 99.32kb.
- Методические указания к проведению лабораторных работ. Специальность 23. 01. 02 «Автоматизированные, 1178.37kb.
- Методические указания к выполнению лабораторных и курсовых работ иркутск 2007, 728.75kb.
- Методические указания по выполнению лабораторных работ по курсу «Механические и физические, 114.99kb.
- Методические указания к выполнению kjrcobou и дипломной работ по курсу, 884.73kb.
- Методические указания к проведению лабораторных работ по курсу «Электрические машины, 393.83kb.
- Выписка из рабочей программы и методические указания к выполнению лабораторных работ, 347.39kb.
- Методические указания к выполнению курсовой работы «Разработка приложений, предназначенных, 348.71kb.
- Методические указания к выполнению лабораторных работ по дисциплине «Интеллектуальные, 653.36kb.
За счет изменения входных параметров можно влиять на конечный результат выполнения подпрограмм. Рассмотрим это на примере подпрограммы 4.2 регулируемой временной задержки.
Алгоритм работы простой подпрограммы временной задержки приведен на рис. 4.1.
Общее время задержки вычисляется по формуле
T=t1+(t2+t3+t4)N+t5
где t1, t2, t3, t4, t5 – длительность выполнения команд, входящих в подпрограмму временной задержки;
N – число, первоначально записанное в счетчике, в качестве которого используется регистр В.
Команда NOP используется для увеличения времени выполнения цикла, а следовательно, и общей задержки. Вместо команды NOP может быть использована любая последовательность команд, выполнение которых не изменяет содержимого регистров микропроцессора. Время записи числа N в регистр В и возврата из подпрограммы t1+t5 фиксировано и в цикл не входит. Уникальная задержка для приведенной подпрограммы определяется при N=01 Н и равна t1+t2+t3+t4+t5. Максимальная задержка имеет место при N=00 Н и вычисляется по формуле Т= t1+(t2+t3+t4)256+t5
Программа 4.2 состоит из двух подпрограмм: DEL В и DEL A.
Подпрограмма DEL В осуществляет регулируемую временную задержку, и ее входным параметром является двухбайтное число, записанное в паре регистров В,С. Это число и определяет длительность задержки в миллисекундах. Частным случаем подпрограммы DEL В является подпрограмма DEL А, осуществляющая фиксированную задержку в 1 мс и не имеющая входных параметров. Таким образом, если необходимо иметь в программе фиксированную задержку в 1 мс, то можно обращаться с помощью команды CALL к подпрограмме DEL А При необходимости получения определенной заданной временной задержки в программе следует записать соответствующее число в регистры В и С, а затем вызвать подпрограмму DEL В.
Программа 4.2
Адрес | Машин-ный код | Метка | Мнемокод | Комментарий |
8000 | C5 | DEL A | PUSH B | Сохранить в стеке содержимое регистров В и С |
8001 | 01 0100 | | LXI B, 0001H | Установить длительность 1мс |
8004 | C3 0880 | | JMP DEL 1 | |
8007 | C5 | DEL B | PUSH B | Сохранить в стеке содержимое регистров В и С |
8008 | F5 | DEL 1 | PUSH PSW | Сохранить в стеке содержимое регистра признаков |
8009 | AF | | XRA A | Очистить аккумулятор |
800А | D5 | | PUSH D | Сохранить в стеке содержимое регистров D и E |
800В | 01 | | LXI B,TIME | Указать величину задержки в мс |
800Е | 1647 | DEL 2 | MVI D,47 | Загрузить счетчик заде-ржки величиной в 1мс |
8010 | 15 | DEL 3 | DCR D | Уменьшить содержимое счетчика на 1 |
8011 | C2 1080 | | JNZ DEL 3 | Если не нуль, продолжить |
8014 | 0B | | DCX B | Уменьшить на 1 содержимое счетчика длительности |
8015 | B8 | | CMP B | Если регистр В не обнулен, |
8016 | C2 0E80 | | JNZ DEL 2 | то продолжать |
8019 | B9 | | CMP C | Если регистр С не обнулен, |
801А | C2 0E80 | | JNZ DEL 2 | то продолжать |
801D | D1 | | POP D | Восстановить содержимое регистров D и E |
801E | F1 | | POP PSW | Восстановить содержимое регистра признаков и аккумулятора |
801F | C1 | | POP B | Восстановить содержимое регистров В и С |
8020 | 09 | | RET | Возвратиться из подпрограммы |
Программа 4.3 предназначена для определения номера самого младшего,содержащего нуль разряда 8-битового числа, формиркемого в регистре С.
Программа 4.3
Адрес | Машин-ный код | Метка | Мнемокод | Комментарий |
8800 | OC | WAIT C | INR C | Увеличить С на единицу |
8001 | 79 | | MOV A,C | Переписать исследуемое число в аккумулятор |
8002 | FE FF | | CPI FF H | Содержит ли 0 какой-либо разряд числа? |
8004 | CA 00 80 | | JZ WAIT C | Если нет, то ждать |
8007 | CD 00 81 | | CALL IDSW | Если да, то вызвать подпро-грамму IDSW определения самого младшего, содержа-щего нуль числа |
800A | 00 | | NOP | Окончить вывполнение программы |
8100 | 06 FF | IDSW | MVI B,FF H | Записать в регистр В число |
8102 | 04 | SRCH | INR B | Увеличить содержимое региста В на 1 |
8103 | 1F | | RAR | Сдвинуть вправо число в аккумуляторе |
8104 | DA 02 81 | | JC SRCH | Если С=1, то продолжать |
8107 | C9 | | RET | Возврат из подпрограммы |