Примеры использования команд передачи данных
Пример 2.1. Передать содержимое буфера УАПП в РПД по косвенному адресу из R0:
MOV @R0, SBUF ; передача принятого по
; последовательному каналу
; байта в РПД
Пример 2.2. Загрузить в указатель данных начальный адрес 7F00H массива данных, расположенного в ВПД:
MOV DPTR, #7F00H ; загрузка начального
; значения указателя данных
Пример 2.3. Загрузить управляющее слово в регистр управления таймером:
MOV TCON, #00000101B ; загрузка управляющего
; слова
Пример 2.4. Сбросить все флаги пользователя (область РПД с адресами 20H – 2FH):
MOV R0, #20H ; задание начального адреса
; области флагов
MOV R1, #0FH ; счетчик (длина области
; флагов)
LOOP: MOV @R0, #0 ; сброс одного байта
INC R0 ; переход к следующему байту
DJNZ R1, LOOP ; цикл
Пример 2.5. Запомнить в ВПД содержимое регистров банка 0. Начальный адрес ВПД – 5000H:
MOV PSW, #01000B ; выбор банка регистров 1
MOV R0, #8 ; счетчик
MOV DPTR, #5000H ; определение начального
; адреса ВПД
MOV R1, #0 ; определение начального
; адреса РПД
LOOP: MOV A, @R1 ; загрузка текущего байта
MOVX @DPTR, A ; передача из аккумулятора в
; ВПД
INC R1 ; переход к следующему
; регистру
INC DPTR ; увеличение адреса
DJNZ R0, LOOP ; если R0>0, то повторять
Пример 2.6. Передать данные через последовательный порт со скоростью 500 бит/с. Частота синхронизации составляет , а бит SMOD=0:
CLR TR1 ; останов таймера Т/С 1;
MOV TH1, #0DBH ; автозагружаемое значение
; для получения; скорости
; 500 бит/с,
MOV SCON, #11011100B ; установка режима 3 УАПП
MOV TMOD, #00100000B ; установка режима 2 Т/С 1
SETB TR1 ; запуск таймера;
LABEL: JNB T1, LABEL ; ожидание окончания
; передачи
CLR T1 ; очистка флага передачи
MOV SBUF, A ; выдача 9 бит данных в
; последовательный порт
Флаг прерывания передатчика Т1 регистра SCON устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп бита в других режимах.
Дата добавления: 2015-09-11; просмотров: 1036;