Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА№19.doc
Скачиваний:
13
Добавлен:
18.03.2015
Размер:
1.1 Mб
Скачать

Программа задержки

Для работы основной программы необходимо разработать подпрограмму, вызывающую задержку. Простейший способ генерирования задержки показан на рис.2. Однако, максимальное время задержки, полученное таким способом, не превышает 1785 мкс. Принцип получения более длительной задержки будет описан ниже.

ПРОГРАММА КОНТРОЛЛЕРА "БЕГУЩИЕ ОГНИ"

После составления алгоритмов и определения характеристик -, можно писать программы. Основная программа последовательности довольно проста /табл.2/ .

Таблица 2

Метки

Команды

Комментарии

SEQ

MOV А, 92

Установка горения светодиодов 1,4,7 Время горения установленных сигналов

MVI D, I

CALL DELAY

MOV A, 49

Установка горения светодиодов 2,5,8 Время горения установленных сигналов

MVI D, I

CALL DELAY

MOV A, 24

Установка горения светодиодов 3,6 Время горения установленных сигналов

MVI D, I

CALL DELAY

Программа последовательности устанавливает в регистр А число 92 - код выходных индикаторов, при котором светодиоды 1, 4, 7 - горят, а светодиоды 2, 3, 5, 6, 8 - погашены.

Затем вызывает подпрограмму задержки. Для чего программа последовательности задает величину задержки в регистр D, после чего вызывается сама подпрограмма задержки. Далее эта последовательность повторяется для других кодов выходных сигналов светодиодов .

Рис.2. Алгоритм программы задержки

РАЗРАБОТКА ПРОГРАММЫ ЗАДЕРЖКИ

В табл.3 приведена программа задержки, алгоритм которой показан на рис.2.

Таблица 3 Простая программа задержки

Метки

Команды

Комментарии

Примечание

DELAY

DCR A

Уменьшающий счет

4 такта

JNZ DELAY

Продолжение счета, если содержимое аккумулятора О

7/10 тактов

RET

Возврат

10 тактов

Чтобы использовать эту программу, в аккумуляторе устанавливается нужное значение задержки и вызывается программа задержки. Содержимое аккумулятора уменьшается до тех пор, пока не достигает нуля, после чего управление возвращается на программу вызова.

задержки. В этой программе две петли: внешняя и внутренняя. Внутренняя петля генерирует задержку 0,786 с, внешняя - множество таких задержек. Такая организация программы называется вложением.

Полная программа контроллера "бегущие огни" приведена в табл.б.

Таблица б

Адреса

Коды

Метки

Команды

Комментарии

8000

ЗЕ

MOV A ,81

MOV A ,81

Программирование интерфейса

8001

81

8002

D3

8003

FB

OUT FB

8004

ЗЕ

SEQ

MOV A, 92

Установка кода горения 1,4,7 светодиодов

8005

92

8006

D3

OUT F9

8007

F9

8008

16

MVI D, I

Горение данной последовательности

8009

01

800А

CD

CALL DELAY

800В

22

800С

80

800D

ЗЕ

MOV A , 4 9

Установка кода горения 2,5,8 светодиодов

800Е

49

800F

D3

OUT F9

8010

F9

8011

16

MVI D, I

.Горение данной последовательности-

8012

01

8013

CD

CALL DELAY

8014

22

8015

80

8016

ЗЕ

MOV A, 24

Установка кода горения 3,6 светодиодов

8017

24

8018

D3

OUT F9

8019

F9

801А

16

MVI D,I

Горение данной последователь ности

801В

01

801С

CD

CALL DELAY

8010

22

801Е

80

801F

СЗ

JMP SEQ

Возврат в основную программу"бегущие огни"

8020

04

8021

80

8022

01

DELAY

LXI B,0025

Начало внутренней петли за держки

8023

00

8024

25

8025

LOOP

OCX В

Внутренняя петля, генерирующая задержку 0,786 с

8026

78

MOV А, В

8027

В1

ORA С

8028

С2

JNZ LOOP

8029

25

802А

80

802В

15

OCR D

Основная петля задержки

802С

С2

JNZ DELAY

802D

22

802Е

80

802F

С9

RET

Возврат

Продолжение табл.1

Проверка программы

1. Введите программу из табл.б в ОЗУ аккумулятора.

2. Удостоверьтесь, что она правильно записана в память.

3. Выполняйте основную программу, начинающуюся по адресу 8000.

4. Значения временных задержек можно заменить на другие значения, для уменьшения скорости "бегущих огней" по адресам 8009, 8012,801А, 8023, 8024.