Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Самостоятельная программа 2




Задание:

Вывести на семисегментную индикацию массив из 20 чисел

Текст программы представлен в Таблице 17.

Таблица 17

Основная программа отображения массива из 20 чисел
              lxi sp инициализация стека по адресу 000277
                 
                 
              mvi a инициализация вывода
                 
              out  
                 
              lxi h загрузка в ячейку памяти по адресу 000320 значения 020
                это счетчик элементов
                массива
              mvi m  
                 
              lxi h переход к ячейке памяти, предшествующей данным массива
                 
                 
              inr l ** HL++
              push h запись в стек адреса элемента
              mvi e Е = 020 - число отображений элемента
                 
              call * вызов подпрограммы отображения элемента
                 
                 
              dcr e E--
              jnz если Е!=0 переход к *
                 
                 
              lxi h переход к счетчику неотображенных элементов
                 
                 
              dcr m уменьшение этого счетчика на 1
              pop h востановление из стека адреса элемента
              jnz переход к **, если счетчик элементов!= 0
                 
                 
              hlt конец программы
Подпрограмма отображения числа
              mvi d D = 377 - число отображений цифр
                 
              push h запись в стек адреса элемента
              mov a, m запись в аккумулятор отображаемого числа
              ani запись в аккумулятор трех младших разрядов числа -
                первой восьмиразрядной цифры
              adi получение адреса семисегментного кода цифры
                 
              mov l, a переход к ячейке памяти, содержащей семисегментный код цифры
              mov a, m запись в аккумулятор семисегментного кода цифры
              out вывод цифры на индикацию
                 
              pop h востановление из стека адреса элемента
              push h запись в стек адреса элемента
              mov a, m запись в аккумулятор отображаемого числа
              rrc сдвиг числа на три разряда вправо
              rrc  
              rrc  
              ani запись в аккумулятор трех младших разрядов полученного числа -
                второй восьмиразрядной цифры
              adi получение адреса семисегментного кода цифры
                 
              mov l, a переход к ячейке памяти, содержащей семисегментный код цифры
              mov a, m запись в аккумулятор семисегментного кода цифры
              out вывод цифры на индикацию
                 
              pop h востановление из стека адреса элемента
              push h запись в стек адреса элемента
              mov a, m запись в аккумулятор отображаемого числа
              rlc сдвиг числа на три разряда влево
              rlc  
              nop  
              ani запись в аккумулятор трех младших разрядов полученного числа -
                второй восьмиразрядной цифры
              adi получение адреса семисегментного кода цифры
                 
              mov l, a переход к ячейке памяти, содержащей семисегментный код цифры
              mov a, m запись в аккумулятор семисегментного кода цифры
              out вывод цифры на индикацию
                 
              pop h востановление из стека адреса элемента
              dcr d D--
              jnz переход к началу цикла индикации трех цифр отображаемого числа,
                если D!= 0
                 
              ret Возврат из подпрограммы
Семисегментные коды
                семисегментный код 0
                семисегментный код 1
                семисегментный код 2
                семисегментный код 3
                семисегментный код 4
                семисегментный код 5
                семисегментный код 6
                семисегментный код 7

Обмен информацией между микропроцессором и периферийным устройством осуществляется через специальные схемы сопряжения, или интерфейсные схемы. В данном случае роль интерфейсной схемы выполняет БИС программируемого параллельного интерфейса КР580ВВ55, включающей в себя 3 8-разрядных порта А, В и С для подключения периферийных устройств к системным шинам.

Структурная схема БИС приведена на Рис. 7. Она включает в себя двунаправленный буфер ШД, три информационных регистра каналов А, В и С и схему выбора канала и управления, содержащую регистр управляющего слова. Входы А0 и А1 данной схемы задают внутренний регистр (А, В, С или регистр управления).

Рис. 7

Режим работы каналов задается с помощью управляющего слова; задать можно один из трех режимов:

- режим 0: синхронный обмен по всем трем каналам;

- режим 1: асинхронный обмен или обмен по готовности по каналам А и В;

- режим 2: стробируемый двунаправленный обмен только через канал А.

В программе используется режим 0.

Программа вывода 20 чисел на семисегментную индикацию состоит из следующих частей:

1. основная программа, задает цикл отображения 20 чисел массива, в ней происходит инициализация стека, инициализация устройства отображения; каждый элемент в цикле отображается Е раз;

2. подпрограмма, реализующая цикл отображения одного числа, в этой подпрограмме происходит разбиение числа на цифры и вывод на индикацию семисегментного кода, соответствующего цифре, число отображается в цикле D раз;

3. семисегментные коды цифр от 0 до 7.

8. Заключение

Процессор К580 является прототипом процессора 8080 фирмы Intel. Процессор обладает очень простой и небольшой по количеству системой команд и малым числом способов адресации. С одной стороны это упрощает его программирование, с другой стороны это ограничивает программиста в использовании более сложных команд, таких, например, как умножение и деление.





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 356 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2307 - | 2155 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.