Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по АТ89С51 изд.вариант 2010-54.doc
Скачиваний:
121
Добавлен:
19.11.2019
Размер:
865.22 Кб
Скачать
        1. Динамический вывод информации на дисплей из семисегментных индикаторов

При использовании внешних схем преобразователей кодов процедура индикации одного символа на ССИ в статическом режиме сводится к выдаче двоичного кода символа в соответствующий порт вывода МК (рисунок 4.17).

Рисунок 4.17 – Линейный дисплей на ССИ с динамическим отображением информации

Процедура вывода данных на линейный дисплей из СИИ включает следующие шаги.

1. Отключение всех индикаторов. В приведённой схеме (см. рисунок 4.17) этот шаг предполагает подачу на входы ОК всех индикаторов логических единиц.

2. Установка кода на информационных входах, предназначенного для отображения на одном из индикаторов.

3. Включение индикатора, на котором необходимо отобразить этот код. В привёденной схеме (см. рисунок 4.17) включение индикатора осуществляется подачей логического нуля на его вход ОК.

4. Организация временной задержки.

5. Выключение индикатора.

6. Переход на шаг 2 (вывод информации на следующий индикатор) и т.д.

Пример программной реализации данной процедуры приведен в листинге 4.22.

Листинг 4.22 – Программа вывода информации на четырехразрядный дисплей, приведенный на схеме, представленной на рисунке 4.17

; Программа реализует подсчет импульсов, подаваемых на разряд 0

; порта P0. Количество импульсов выводится на дисплей в

; десятичном виде. Индикатор HL1 используется для вывода младшего

; разряда десятичного числа, индикатор HL4 – для старшего.

; Сегменты H (точки) всех индикаторов выключены.

.ORG 0000H

JMP BEGIN

.ORG 000BH

JMP TIMER

; Адрес начала программы

; Переход к основной

; программе

; Адрес обработчика

; прерываний от таймера

; Переход к процедуре

; обработки прерывания

BEGIN:

NEXT:

TIMER:

I0:

I1:

I2:

I3:

MOV IE, #00H

MOV TMOD, #02H

MOV TL0, #7FH

MOV TH0, #7FH

MOV DPTR, #0000H

MOV P1, #00H

MOV P3, #10101010B

MOV R0, #FFH

SETB TR0

MOV IE, #82H

SETB P0.0

JB P0.0, $

JNB P0.0, $

CLR EA

MOV A, DPL

ADD A, #01H

PUSH PSW

DA A

MOV DPL, A

POP PSW

MOV A, DPH

ADDC A, #00H

DA A

MOV DPH, A

SETB EA

JMP NEXT

INC R0

CJNE R0, #00H, I1

MOV P3, #10101010B

MOV P1, DPL

MOV P3, #10101000B

RETI

CJNE R0, #01H, I2

MOV P3, #10101010B

MOV A, DPL

SWAP A

MOV P1, A

MOV P3, #10100010B

RETI

CJNE R0, #02H, I3

MOV P3, #10101010 B

MOV P1, DPH

MOV P3, #10001010 B

RETI

MOV P3, #10101010 B

MOV A, DPH

SWAP A

MOV P1, A

MOV P3, #00101010B

MOV R0, #FFH

RETI

; Запрет всех прерываний

; Настройка таймера на

; режим с автопрезагрузкой

; Загрузка регистров таймера

; Обнуление регистра DPTR

; Отключение индикаторов

; Загрузка регистра,

; отвечающего за выбор

; индикатора

; Разрешение счёта

; Разрешение прерываний от

; счётчика

; Настройка разряда порта на

; ввод

; Ожидание импульса

; Запрет всех прерываний

; Инкрементирование

; регистра DPL с десятичной

; коррекцией результата

; Инкрементирование

; регистра DPH с десятичной

; коррекцией результата;

; Разрешение прерываний от

; таймера

; Переход к следующему

; опросу P0.0

; Инкрементирование регистра,

; отвечающего за выбор

; индикатора

; Отключение всех

; индикаторов

; Вывод кода (единицы)

; Включение индикатора

; HL1

; Выход из прерывания

; Отключение всех

; индикаторов

; Вывод кода (десятки)

; Включение индикатора

; HL2

; Выход из прерывания;

; Отключение всех

; индикаторов

; Вывод кода (сотни)

; Включение индикатора

; HL3

; Выход из прерывания;

; Отключение всех

; индикаторов

; Вывод кода (тысячи)

; Включение индикатора

; HL4

; Выход из прерывания;

Контрольные вопросы

  1. Чем отличается статический сигнал от импульсного?

  1. Что такое «меандр»?

  2. Какие основные средства отображения информации применяются в микроконтроллерных устройствах?

  3. Разработайте алгоритм динамического вывода информации на матричный дисплей.

  4. Разработайте алгоритм вывода информации на семисегментный дисплей.