Скачиваний:
54
Добавлен:
21.02.2014
Размер:
628.74 Кб
Скачать

7.5.Команды операций с таймером

Кроме рассмотренных ранее команд обмена между таймером и аккумулятором ("MOV А,Т" и "MOV Т,А"), по которым содержимое таймера может быть прочитано или изменено (перезагружено) во время остановки счета или во время подсчета ("на лету"), в МК выполняются специальные команды управления режимом работы таймера. Таймер может быть (в зависимости от команды) использован как счетчик тактов или событий от внутреннего или внешнего источника сигналов. Выполняемая команда определяет источник тактирования таймера. Система команд МК 1816 располагает средствами разрешения или запрета прерывания от таймера,

STRT Т - Запуск таймера

"0101'0101", "55"

Команда разрешает работу таймера от сигналов синхронизации. Содержимое инкрементируется через каждые 32 цикла тактирования.

STRT CNT - Запуск счетчика событий

"0100'0101", "45"

Таймер работает в качестве счетчика событий от сигналов на входе Т1. Инкремент счетчика событий выполняется по спаду сигнала на входе Т1.

STOP TCNT - Останов таймера/счетчика событий

"0110'0101", "65"

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

START:

DIS

TCNTI

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

 

CLR

А

; очистка аккумулятора

 

MOV

Т,А

; очистка таймера

 

MOV

R5,А

; очистка регистра 5

 

STRT

Т

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

MI:

JTF

COUNT

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

 

 

 

; и установка TF в нуль

 

JMP

MI

; цикл

COUNT:

INC

R5

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

 

MOV

A,R5

; переслать R5 в аккумулятор

 

JB3

INT

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

 

 

 

; прерывания INT, если бит 3 аккумулятора

 

 

 

; имеет значение 1

 

JMP

Ml

; переход, если В3 != 1

 

 . . .

 

 

INT:

STOP

TCNT

; останов таймера

 

JMP

07H

; перейти к ячейке 7 (вектор

 

 

 

; прерывания от счетчика событий)

EN TCNTI - Разрешение перывания от таймера

"0010'0101", "25"

Сигнал переполнения таймера-счетчика событий вызовет подпрограмму обслуживания прерывания.

DIS TCNTI - Запрет прерывания от таймера

"0011'0101", "35"

Запрос прерывания по сигналу переполнения таймера не обслуживается, но сохраняется. Таймер-счетчик событий продолжает свою работу.

Соседние файлы в папке МП К1816ВЕ4