Название проекта:

Показать прокрутку предложения на массиве из пяти семисегментных дисплеев.

Цель проекта:

Создание программы для показа предложения «750–250=500» при прокрутке на массиве из 5-сегментного дисплея с общим анодом.

Схема цепи:

7-сегментный дисплей (общий анод)

(10 мкФ 50 Вольт(1), 100 мкФ 50В(1))

Программа:

ОРГ 00H
;; ПОДГОТОВКА
MOV DPTR, #CACODE
MOV R1, #31H ; буфер
MOV R3, #00H ; индекс
MOV R2, #05H ; прилавок

GETBUFER:
MOV A, R3
MOVC A, @A+DPTR
INC R3
CJNE A, #'$', OVER
MOV A, # 0FFH ; код ca пустого
MOV R3, #00 ; индекс по смещению 00
OVER:
MOV @R1, A
INC R1
DJNZ R2, GETBUFER

СНОВА:
MOV R2, #05H ; счетчик
MOV R1, #31H ; настроить буфер (30–34ч)
MOV R0, #30H
ADJUST:
MOV A, @R1
MOV @R0, A
INC R0
INC R1
DJNZ R2, РЕГУЛИРОВКА

ДВИГАТЕЛЬ R6, #16 ; внешний цикл
OUTLOOP1:
MOV R7, #32 ; внешний цикл
OUTLOOP2:
MOV B, #01H ; отображать управляющий код
MOV R1, #30H ; буфер
MOV R2, #05H ; прилавок

ДИСП: ; внутренний цикл
MOV A, @R1
MOV P1, A
MOV P3, B
LCALL DELY
LCALL DELY
INC R1
> MOV A, B
RL A
MOV B, A
DJNZ R2, DISP
DJNZ R7, OUTLOOP2
DJNZ R6, OUTLOOP1

ДВИГАТЕЛЬ R1, #35H ; добавить буфер

MOV A, R3
MOVC A, @A+DPTR
CJNE A, #’$’, OVER1
MOV A, #0FFH ; код ca пустого
MOV R3, #0FFh ; индекс со смещением 00
OVER1:
MOV @R1, A
INC R3

СНОВА

ЗАДЕРЖКА:
MOV R5, #0FFh
FIV: DJNZ R5, FIV
RET

CACODE:
DB 0F8h, 92h, 0C0h, 0BFh, 0A4h, 92h, 0C0h, 0B7h, 92h, 0C0h, 0C0h, ‘$’
END

Краткое описание программы:

Какие новые концепции приведены ниже:

Значение #05h для пяти отображается как счетчик. Затем настройте регистры r1 и r2. Другой раздел перемещается

содержимое оперативной памяти, адрес которой принадлежит r1 to a. переместить значение в содержимое ОЗУ, которое

адрес удерживается r0. Увеличьте r0 и r1. Уменьшить r2, если он не равен 0, тогда адрес переходит к ADJUST.

Затем установите задержку. Переместите значение аккумулятора в p1 и переместите b в p3. Мы устанавливаем значение таблицы, определяем

байт 0F8h, 92h, 0C0h, 0BFh, 0A4h, 92h, 0C0h, 0B7h, 92h, 0C0h, 0C0h. Каждый шестнадцатеричный код содержит символ.

Результаты:

Итак, он показывает предложение «750–250=500» сразу на 5-ти общих анодах 7-сегментного дисплея.

Первоначально опубликовано на bloggernf.blogspot.com.