Лабораторная работа 5 Вывод информации из микропроцессора Intel8080 на внешнее устройство Цель работы: Исследование выполнения программ вывода информации на светодиодный дисплей с использованием микросхемы контроллера параллельного интерфейса; самостоятельная разработка и выполнение программ. 1. Краткие сведения из теории В работе используется светодиодный дисплей и средства управления им из комплекта УМК. Схема управления дисплеем и клавиатурой УМК приведена на рис. 1. Основа схемы – микросхема контроллера параллельного интерфейса Intel8255 (российский аналог – 580ВВ55). Микросхема программируемого периферийного параллельного адаптера (ППА) 8255 (рис. 2) предназначена для применения в МП системе в качестве универсального элемента ввода–вывода, обеспечивающего обмен данными в параллельном формате между МП и системными, в частности периферийными, устройствами. Микросхема подключается к МП системе посредством двунаправленной 8-разрядной шины данных с тремя состояниями выхода ШД; двухразрядной шины адреса ША – A0,A1; 4-разрядной шины управления ШУ, включающей сигналы: WR – запись, RD – чтение, CS – выбор микросхемы и SR – сброс. Адаптер включает три программно– доступных 8-разрядных порта ввода–вывода (PА, PВ, PС) и 7-разрядный регистр управляющих слов РУС, содержимое которого определяет направление передачи и функциональное назначение 24 двунаправленных линий ввода–вывода, т.е. конфигурацию и режимы работы портов. Порты PА и PВ предназначены для обмена байтами данных с системными устройствами, порт PС, как правило, – для обмена интерфейсными сигналами управления. Порт PС в отличие от портов PА и PВ программно–доступен при операциях записи данных не только как элемент в целом, но и поразрядно, т.е. с независимой адресацией каждого отдельного разряда PСi(i=0,1...7), а в операциях выбора режима – как два полупорта: старший – PСH, младший – PСL или их части. Обмен данными между элементами ППА и МП системой происходит через внутреннюю шину, связанную с ШД и через устройство управления (УУ) с шинами ША и ШУ. Рис. 1. Дисплей и клавиатура УМК. В МП системе, содержащей ППА, возможны два типа операций над его элементами: чтение (ввод) в МП содержимого адресуемого элемента и запись (вывод) из МП байта данных в адресуемый элемент ППА. Эти операции выполняются программно с помощью двух команд МП: IN port и OUT port, где port – системный адрес конкретного порта ППА. В процессе выполнения указанных команд в МП системе формируются сигналы управления, комбинация которых определяет ту или иную операцию над элементами ППА (таблица 1). Два разряда адреса (они не обязательно должны совпадать с одноименными разрядами шины адреса МП) определяют выбор одного из трех портов или регистра. Заметим, что если для каждого порта существует пара операций чтение–запись, то для регистра РУС отсутствует операция чтения. Буфер шины Данные данных D0..D7 Внутр. шина RD WR CS A0 A1 Порт A Устройство управления Порт C ст.разряды PA0..PA7 PC4..PC7 PC0..PC3 Порт C мл.разряды SR Регистр управляющих слов Порт B PB0..PB7 Рис. 2. Блок-схема БИС 8255 Программирование ППА, или его настройка, осуществляются с помощью операции записи управляющего слова (УС) в регистр РУС. Возможны два типа настройки. 1. Настройка разрядов поразрядное программирование порта ПС. УС для этого типа программирования имеет разряд Д7=0. 2. Настройка режимов – программирование портов РА, РВ, РС на один из трех возможных режимов или их комбинацию: 0 – режим простого однонаправленного обмена; 1 – режим стробируемого однонаправленного обмена; 2 – режим стробируемого двунаправленного обмена. Для настройки режимов используется УС в котором разряд Д7=1. Значение остальных разрядов приведено в таблице 2. Когда на микросхему подается сигнал сброса, все порты устанавливаются в режим ввода данных и все 24 выхода портов переходят в состояние 1. После сигнала сброса все порты остаются в режиме простого ввода. Если микросхема должна использоваться именно в этих режимах, то дополнительного программирования не требуется. Если требуются другие режимы, то необходимо записать в регистр управляющих слов соответствующее слово инициализации. Перепрограммирование режимов работы микросхемы может быть сделано в любой момент работы программы. Режим работа портов можно изменять как до, так и в процессе работы системных программ, что позволяет в определенном порядке обслуживать различные ПУ. Таблица 1. Сигналы управления и операции ППА. Направление передачи ШД ← PA ШД ← PB ШД ← PC ШД → PA ШД → PB ШД → PC ШД → РУС Тип операции А1 А0 RD WR 0 0 1 0 0 1 1 × 1 0 1 0 0 1 0 1 × 1 0 0 0 1 1 1 1 × 0 1 1 1 0 0 0 0 × 1 CS 0 Чтение 0 0 0 0 Запись 0 0 Отключено от ШД 1 Нет действия 0 Таблица 2. Назначение разрядов управляющего слова ППА. Разряд Назначение разряда D0 Режим работы линий РС0 – РС3 (1 – ввод, 0 – вывод) D1 1 – ввод, 0 – вывод линий порта РВ D2 D3 Режим работы линий РС4 – РС7 (1 – ввод, 0 – вывод) D4 1 – ввод, 0 – вывод линий порта РА D5, D6 Режим работы порта РВ (0 0 – режим 0, 0 1 – режим 1, 1 × – режим 2) D7 Признак управляющего слова 2. ПОРЯДОК РАБОТЫ 2.1. Ввести в УМК с адреса 0800 программу начального программирования ППА и вывода на один из светодиодных индикаторов знака, представленного двоичным однобайтовым числом. L2: L1: MVI OUT MVI OUT MVI OUT MVI MVI NOP DCR JNZ DCR JNZ RST A,89 ; RUS ; A,1 ; PORTA ; A,SIGN; PORTB ; E,FF ; D,FF ; Начальное программирование ППА (89 управляющее слово, RUS - адрес порта РУС) В А заносится номер индикатора и передается в порт А ППА В А заносится отображаемый знак и передается в порт В Начало программы создания временной задержки D L1 E L2 7 Задержка нужна, чтобы мы успели увидеть действие основной программы ; ; ; ; ; Конец программы При вводе программы в УМК символическим именам нужно придать определенные значения (PORTA, PORTB, RUS – адреса портов ППА в УМК; SIGN – код символа, который должен быть отображен). Для определения адресов портов нужно воспользоваться рис.1., а для определения кода символа рис. 3. a a b f b g c d e f e c g h d h Общий анод Рис. 3. Семисегментный светодиодный индикатор. Выполнить программу. Проверить полученный результат. 2.2. Изменить программу так, чтобы на другом индикаторе загоралось другое число. Выполнить эту программу. 2.3. Ввести программу динамической индикации (все 6 индикаторов горят попеременно, причем в каждый момент времени горит только один и одноименные сегменты индикаторов объединены; так как переключение происходит с большой частотой, внешне кажется, что все индикаторы горят одновременно и отображают разную информацию) блока данных из 6 байт расположенных начиная с адреса 0900. MVI A,89 OUT RUS LXI D,8FFFH L1: LXI H,0900H L2: MVI B,20H MOV A,B OUT PORTA MOV A,M OUT PORTB NOP MVI A,00H OUT PORTB INX H MOV A,B RRC MOV B,A JNC L2 DCX D MOV A,D ORA E JNZ L1 RST7 ; ; ; ; ; ; ; ; ; DE пара используется для создания временной задержки загрузка в пару HL начального адреса блока отображаемых чисел В регистр В начальный номер индикатора Номер индикатора - в аккумулятор и в порт А ППА В А данное из памяти (HL) Вывод в порт В ; ; ; ; ; ; ; ; Гашение горящего индикатора Переход к следующему данному Сдвиг номера индикатора вправо К началу индикации следующего данного Временная задержка Используя программу получить на индикаторах УМК числа 0,1,2,3,4,5. 2.4.Сделать отчет. Содержание отчета. 1. Структурная схема управления светодиодным дисплеем и адреса портов микросхемы ППА. 2. Ассемблерные записи программ с комментариями.