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

Индикация

В микролаборатории для индикации используются восемь семисегментных цифровых индикаторов.

Каждому индикатору соответствует ячейка памяти, где хранится семисегментный код, управляющий свечением сегментов индикатора /см.урок 9/. Информация из этихячеек посылается на индикаторы при помощи специальной схемы, которая обеспечивает динамический режим индикации.

Задача матобеспечения сводится к подготовке семисегментных кодов и засылке их в ячейки памяти 83F8...83FF. Ячейка 83F8 соответствует левому индикатору, 83FF - правому. /Динамическая индикация осуществляется в микропроцессорных системах не обязательно с помощью схемы. Сканирование индикаторов можно осуществлять и с помощью программы/.

Монитор микролаборатории содержит программу SEGCG /адрес=01СО/, которая преобразует шестнадцатеричные коды О, 1, 2...4, Е, F в семисегментные и заносит их в ячейки памяти 83F8...83FF. Исходные данные для этой программы должны находиться в ячейках 83F4...83F7. Каждый байт из этих ячеек соответствует паре индикаторов: содержимое ячейки 83F4 после преобразования высветится на двух левых индикаторах, содержимое ячейки 83F7 - на двух правых.

В табл.б приведена программа показа информации, использующая подпрограмму SEGCG. Введите программу и проверьте ее работу. На индикаторах должны последовательно высвечиваться символы 1, 2, 3, 4, А, В, C,D.

Таблица б Программа показа информации

Адрес

Содержимое

Метки

Команда

Комментарии

8000

ЗЕ

MVI А, 12

12-в [A ]

8001

12

A-в-[83F4l

8002

32

STA 83F4

8003

F4

8004

83

8005

ЗЕ

MVI А, 34

34-вA

8006

34

8007

32

STA 83F

A-в[83F5]

8008

F5

8009

83

800А

ЗЕ

MVI А,АВ

АВ –в А

800В

АВ

800С

32

STA 83F6

A-в[83F6

800D

F6

800Е

83

800F

ЗЕ

MVI A, CD

CD-в- A

8010

CD

8011

32

STA 83F7

A-в[83F7]

8012

F7

8013

83

8014

CD

CALL SEGC G

Вызов SEGC G

8015

СО

8016

01

8017

76

HLT

Останов

Напишите программу,выводящую на два правых индикатора значение нажатой кнопки, а на остальные индикаторы - нули. Используйте при этом мониторные подпрограммы KEYIN и SEGCG.

В предыдущей программе мы использовали подпрограмму SEGCG для получения семисегментного кода. Но эта подпрограмма оперирует только с шестнадцатеричными символами -O...F, т.е. не полностью использует возможности семисегментных индикаторов .

Можно формировать семисегмент-ный код и получать на индикаторах любые символы, которые позволяют получить используемые в микролаборатории индикаторы. Как уже говорилось, семисегментные коды должны засылаться в определенные ячейки памяти. Каждый бит в этих ячейках соответствует определенному сегменту /рис.4/. Если бит равен 1, то соответствующий сегмент будет "гореть", и - наоборот.

БИТ

7

6

5

4

3

2

1

0

СЕГМЕНТ

H

G

F

E

D

C

B

A

A

F

G

B

E

D

C

H

Рис.4. Соответствие разрядов и сегментов

В табл.7 приведен листинг программы, которая выводит на индикаторы надпись "СССР 60". Изменяя семи-сегментные коды, вы можете вывести на индикацию любую возможную надпись .

Таблица 7 Программа вывода символов на индикаторы без подпрограммы SEGCG

Адрес

Содержимое

Метка

Команда

Комментарии

8000

ЗЕ

MVI А, 39

Семисегментный код буквы

8001

39

С — * А

8002

32

STA 83F8

А — • *• [83F8]

8003

F8

8004

83

8005

32

STA 83F9

А — >• [83 F9]

8006

F9

8007

83

8008

32

STA 83FA

А — > [83FA

8009

FA

800А

83

800В

ЗЕ

MVI А, 73

Семисегментный код буквы

800С

73

Р — >• А

800D

32

: STA 83FB

А — »• [83FB

800Е

FB

800F

83

8010

зе

MVI A, 7D

Семисегментный код цифры

8011

7D

6 — >• А

8012

32

: STA 83FC

А -н* [83 FC]

8013

FC

8014

83

8015

ЗЕ

MVI A,3F

Семисегмеытный код 0 — > А

8016

3F

8017

32

STA 83FD

А —— *• [83FD]

8018

FD

8019

83

801А

AF

XRA A

0 — *- А

801В

32

STA 83FE

А — > [83FE] гашение индикатора

801С

FE

8010

83

801Е

32

STA 83FF

А — =»• [83FF , гашение –индикатора

801F

FF

8020

83

8021

76

HLT

Останов