Технология цифровой связи

Проектирование цифровой линии

Изучение структурной организации и приемов программирования однокристального микроконтроллера К1816ВЕ48

. Ввести данные из порта P7:

INPUT: MOVD A,P7 ; пересылка четырех битов из порта 7

; в младшую тетраду аккумулятора

Пример 3.3

. Маскирование при вводе. Ввести в регистр R7 информацию из линий 0, 1, 3, 4 и 7 порта 1:

IN A,P1 ; ввод байта из порта 1

ANL A,#10011011B ; маскирование

MOV R7,A ; передача

Пример 3.4

. Ввести в аккумулятор данные из порта 2 и выделить требуемые биты по маске, находящейся в R0:

IN A,P2 ; ввод байта из порта 2

ANL A,R0 ; маскирование

Пример 3.5

. Выдать содержимое аккумулятора в последовательном коде через нулевую линию порта 1, оставляя без изменения остальные биты порта. Передачу вести, начиная с младшего бита:

MOV R1,#8 ; счетчик бит

LOOP: JB0 ONE ; переход, если бит A.0 = 1

ANL P1,#(NOT 1) ; сброс P1.0

JMP NEXT ;

ONE: ORL P1,#1 ; установка P1.0

JMP NEXT ; избыточная команда для выравнивания

; времени передачи 0 и 1

NEXT: RR A ; сдвиг аккумулятора вправо (подготовка к

DJNZ R1,LOOP ; передаче очередного бита)

Пример 3.6

. Настроить биты 0–3 порта 1 на ввод:

ORL P1,#0F ; установка битов P1.0… P1.3

Пример 3.7

. Очистить биты 4–7 порта 2:

ANL P2,#0F ; сброс битов P2.4… P2.7

Пример 3.8

. Организовать ожидание появления нулевого уровня на входе T0:

WAIT: JT0 WAIT ; переход на WAIT, если на входе T0 единица

Пример 3.9

. Организовать ожидание появление единичного уровня на входе в предположении, что внешние прерывания запрещены:

DIS I ; запрет прерываний по INT

WAIT: JNI WAIT ; переход на WAIT, если на входе INT нуль

3.4.4. Изучение средств реального времени микроконтроллера ВЕ48

1) Изучить организацию таймера/счетчика и системы прерываний микроконтроллера ВЕ48;

2) Рассмотреть команды управления средствами реального времени;

3) Ознакомиться с приведенными ниже примерами программ на языке ассемблера;

4) Произвести ввод, отладку и трансляцию в объектный код этих программ;

5) Выполнить программы по шагам с просмотром результатов выполнения в регистрах и оперативной памяти.

Пример 4.1

. Дождаться поступления на вход T1 100 импульсов и перейти по метке PULSE:

MOV A,#156D ; A = (256-100)

MOV T,A ; предустановка счетчика

STRT CNT ; запуск счетчика

WAIT: JTF PULSE ; переход, если прошло 100 импульсов

JMP WAIT ;

PULSE: …

Пример 4.2

. Запретить прерывания от таймера, но разрешить прерывание после восьми сигналов переполнения таймера. При переходе к процедуре обработки прерывания остановить таймер. Сигналы переполнения подсчитывать в регистре 5:

START: DIS TCNTI ; запрет прерываний от таймера

CLR A ; сброс аккумулятора

MOV T,A ; сброс таймера

MOV R5,A ; сброс регистра R5

STRT T ; запуск таймера

M1: JTF COUNT ; если TF=1, то переход к COUNT и сброс TF

JMP M1 ; цикл

COUNT: INC R5 ; инкремент регистра R5

MOV A,R5 ; пересылка содержимого R5 в аккумулятор

JB3 INT ; переход к подпрограмме обслуживания

; прерывания INT, если бит A.3 равен 1

JMP M1 ; переход, если бит A.3 не равен 1

… ;

INT: STOP TCNT ; останов таймера

JMP 07 ; переход к ячейке 7 (вектор прерывания

; от счетчика событий)

Пример 4.3

. Программное формирование временной задержки. Предположим, что в управляющей программе необходимо реализовать временную задержку 100 мкс. Подпрограмма формирования временной задержки будет иметь вид:

DELAY: MOV R2,#X ; (R2) ← X

COUNT: DJNZ R2,COUNT ; декремент R2 и цикл, если не нуль

RET ; возврат

Для получения требуемой временной задержки необходимо определить число X, загружаемое в рабочий регистр. Определение числа X выполняется на основе расчета времени выполнения команд, образующих данную подпрограмму. При этом необходимо учитывать, что команды MOV и RET выполняются однократно, а число повторений команды DJNZ равно числу X. Кроме того, обращение к подпрограмме временной задержки осуществляется по команде CALL DELAY, время исполнения которой также необходимо учитывать при подсчете временной задержки. В описании команд микроконтроллера указывается, за сколько машинных циклов (МЦ) исполняется каждая команда. На основании этих данных определяется суммарное число машинных циклов в подпрограмме: CALL – 2 МЦ, MOV – 2 МЦ, DJNZ – 2 МЦ, RET – 2 МЦ. Перейти на страницу: 1 2 3 4 5 6 7


Другое по теме:

Электрические схемы технологического контроля и сигнализации Оптимизация технологических процессов, повышение их рабочих параметров до критических и сверхкритических, сложные взаимосвязи между различными технологическими участками, не допускающими отклонения в работе отдельных агрегатов от предписанных ре ...