Пример:
В данном примере на светодионом семисегментном индикаторе выводится строка HALLO, которая хранится в памяти программ.
Обращение к ней происходит с помощью инструкции MOVC.
START: MOV R1,#5 ; ЗАГРУЖАЕМ счетчик символов
MOV DPTR,#8000H ; В DPTR-адрес регистра сегментов
MOV A,#0
MOVX @DPTR,A ; Гасим все сегменты
MOV P1,#0F6H ; В P1-начальная позиция выводимого символа
MOV R0,#HALLO-$-4 ; В R0-смещение относительно PC
; таблицы в кодовом сегменте
LOOP: MOV A,R0 ; Загрузка в аккомулятор относительного
; адреса символа
MOVC A,@A+PC ; Загрузка в аккомулятор символа из таблицы
MOVX @DPTR,A ; Вывод символа на сегменты
MOV R2,#0FFH ; Задержка
DJNZ R2,$
MOV A,#0 ; Гасим все сегменты
MOVX @DPTR,A
DEC P1 ; Следующая позиция
INC R0 ; Следующий символ
DJNZ R1,LOOP ; Проверка на конец строки
JMP START
HALLO: DB 0ADH,0EDH,01CH,01CH,0FCH
END
|