Примеры программ (программирования ППА КР 580 ВВ 55 и организации обмена между микро – ЭВМ «Энерго» и ВУ)




Задание 1. Составить программу для микро-ЭВМ «Энерго» генерации импульсов частотой 1 кГц на выходе порта В (разряд 0) параллельного периферийного адаптера (ППА) КР 580 ВВ 55.

Схема включения ППА КР 580 ВВ 55 представлен на рис.4.5. На схеме показаны только те выводы ППА, которые использованы при составлении программы.

1. Расчёт заданного времени задержки.

Генерация импульсов представляет собой чередование логических единиц и нулей с задержкой, которая вычисляется по формуле:

t = 1 / f, (4.1)

где t – время задержки, с; f – частота генерации импульсов, Гц.

Получаем:

t = 1 / (1 * 103 ) = 0,001 c.

2. Составление программы вывода логических единиц и нулей в младший разряд порта В ППА КР 580 ВВ 55.

2.1. Программирование ППА в соответствующий режим работы заключается в записи управляющего слова в регистр управляющего слова CW ППА КР 580 ВВ 55. В данном случае необходимо построить ППА в режим со следующей конфигурацией.

Порт В – вывод в режиме «0» (то есть вывод без сигналов квитирования).

Управляющее слово (УС) имеет вид:

 

Значения разрядов 3, 2, 1, 0 безразлично для определённости примем их равными 0, тогда управляющее слово примет вид:

10000000 В или 80Н.

Адрес регистра управляющего слова FB H, адрес порта В – F9 H.

 

2.2. Программа поочередного вывода логических единиц и нулей в младший разряд порта B ППА.

Адрес OBJ Метка КОП Операнды Комментарий:
1000H 3E   MVI A, 80H :запись УС в аккумулятор
1001H          
1002H D3   OUT 0FBH :запись УС в регистр CW
1003H FB       : ППА
1004H   3E     MVI   A, 01H     :загрузка в аккумулятор начального значения для последующего вывода в порт B
1005H          
1006H D3 GEN: OUT 0F9H : port B <= A
1007H F9        
1008H CD   CALL TIME : задержка 0,001 с.
1009H          
100AH          
100BH   EE     XRI   01H   :инвертирование младшего разряда аккумулятора
100CH     CMP C  
100DH C2   JNZ COUNT :генерация нового импульса
100EH          
100FH          

 

3. Подпрограмма, вырабатывающая временную задержку длительностью 0,001 с, имеет вид

  CALL TIME 17 тактов
TIME: MVI B, i 7 тактов
NEXT: DCR B 5 тактов
  JNZ NEXT 10 тактов
  RET   11 тактов

Длительность такта определяется тактовой частотой, которая для микро-ЭВМ «Энерго» равна 1,4 МГц и составляет 0,7 микросекунд.

Основной задачей является правильный расчет величин i, т.е. числа, которое будет предварительно загружаться в регистр B, выполняющий функцию счетчика, i рассчитывается по формуле

где tз – заданная величина задержки, равная 1000 мкс; tо – время, требуемое для однократного выполняемых команд, мкс; tц – время выполнения цикла NEXT, мкс; [ ] – означает целую часть результата.

 

К однократным выполняемым командам в данном случае относятся:

OUT 0F9H 10 тактов
CALL TIME 17 тактов
MVI B, i 7 тактов
RET   11 тактов
XRI 01H 7 тактов
JMP GEN 10 тактов

 

Общее время, требуемое на выполнение этих команд равно

Время цикла складывается из времени выполнения команд, входящих в цикл,

DCR B 5 тактов
JNZ NEXT 10 тактов

и составляет tц = (5 + 10) * 0,7 = 10,5 мкс.

Тогда

Для i = 91 из формулы (4.1) получим

tз = 43,4 + 91 10,5 = 998,9 мкс.

Такой точности вполне достаточно. Но для нормальной работы подпрограммы необходимо число 91 перевести в HEX число,

91: 16 = 5 остаток 11 = B H ===================> B получаем 5 B H
  5: 16 = 0 остаток 5 = 5 H ==============> 5

 

Программа, вырабатывающая временную задержку 0,001 с, имеет вид:

Адрес OBJ Метка КОП Операнды Комментарий:
1100H   TIME MVI B, 5BH : запись УС в аккумулятор
1101H 5B        
1102H   NEXT: DCR B : B <= B - 1
1103H C2   JNZ NEXT : переход если z = 0
1104H          
1105H          
1106H C9   RET   : возврат из программ

Блок - схема программы:

Варианты заданий.

1. По одной букве с 5ю градациями яркости появляется имя на экране.

2. По 2 буквы постепенно загорается имя на экране.

3. По 3 буквы постепенно загорается имя на экране.

4. Загорается имя на экране. Постепенно с 5ю градациями яркости гаснет.

5. Загорается имя на экране. Постепенно по одной букве с 5ю градациями яркости гаснет.

6. Загорается имя на экране. Постепенно по 2 буквы с 5ю градациями яркости гаснет.

7. Загорается имя на экране. Постепенно по 3 буквы с 5ю градациями яркости гаснет.

8. На 1ой позиции постепенно загорается последняя буква имени, перескакивает на 8ю позицию, потом предпоследняя буква и т.д.

9. На 8ой позиции постепенно загорается первая буква имени, перескакивает на 0ую позицию и т.д.

10. Загорается имя на экране слева. Последняя буква перескакивается на 8ую позицию и постепенно загорается, потом предпоследняя и т.д.

11. Загорается имя на экране слева. Первая буква перескакивает на 0ую позицию и постепенно загорается, потом вторая буква и т.д.

12. Загорается имя на экране слева. Последние буквы перескакивают на последние позиции и постепенно загорается, потом следующие и т.д.

13. Загорается имя на экране слева. Три буквы перескакивают на конец и постепенно загораются, потом следующие.

14. Загорается имя на экране справа. Первые 2 буквы перескакивают на нулевую и первую позиции и постепенно загораются и т.д.

15. Загорается имя справа. Первые 3 буквы перескакивают на нулевую, первую и вторую позиции и постепенно загораются и т.д.

16. Загорается имя на экране. Постепенно гаснут буквы с чётными номерами, а потом с нечётными.

17. Загорается имя на экране. Постепенно гаснут буквы с нечётными номерами, а потом с чётными.

18. Загорается имя на экране. Постепенно гаснет первая буква, загорается, потом постепенно гаснет 2ая буква и загорается и т.д.

19. Загорается имя на экране. Постепенно гаснет первые 2 буквы, загораются и т.д.

20. Загорается имя на экране. Постепенно гаснет первые 3 буквы, загораются и т.д.

21. Постепенно загорается первая буква на экране, гаснет, потом вторая и т.д.

22. Постепенно загорается первые 2 буквы имени, гаснут, а потом следующие.

23. Загорается имя на экране посередине. Первая буква уходит на нулевую позицию и постепенно загорается, потом последняя буква уходит на 8ую позицию и постепенно загорается, потом вторая и т.д.

24. Загорается имя посередине. Первые 2 буквы уходят на нулевую и первую позиции и постепенно загораются, потом последние 2 буквы уходят на 8ую и 7ую позиции и постепенно загораются и т.д.

25. Постепенно загораются посередине 2 буквы, потом соседние и т.д.

26. Загорается имя на экране. Постепенно гаснут 2 буквы посередине. Потом соседние буквы и т.д.

27. Постепенно загорается имя на экране, гаснет, сдвигается направо на одну позицию и постепенно загорается и т.д.

28. Постепенно загорается имя на экране справа, гаснет, сдвигается на одну позицию влево и опять загорается постепенно и т.д.

29. Постепенно загорается первая половина имени, потом вторая.

30. Имя на экране. Постепенно гаснет первая половина имени, потом вторая.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: