Генерация и распознование DTMF-сигналов


; Каждая смена состояния подсчитывается для контроля ; длительности сигнала


HCCR1 PUSH R5 MOV. В STDTMF,R5 ADD DEC.В LENGTH JNZ TARET

Сохранение использу­емых регистров Статус нижней часто­ты DTMF

FDTMFLO(R5),&CCR1 ; Добавить дли­тельность полупериода Длительность сигнала DL завершена? Нет


; Да, прекратить выдачу сигнала DTMF: запретить ; прерывания

BIC #OMRS+OUT+CCIE,&CCTL1 ; Сброс ТА1
BIC #OMRS+OUT+CCIE,&CCTL2 ; Сброс ТА2
TARET POP R5 ; Восстановить R5

RETI ; Возврат из прерыва-

; ния

; Верхняя частота DTMF: TA2 инвертирует выход модуля ; Output Unit 2


PUSH R5 MOV. В STDTMF+1,R5 ADD R5
POP RETI

RETI

RETI

HCCR2

HCCR3

HCCR4


Сохранение использу­емых регистров Статус верхней час­тоты DTMF

FDTMFHI(R5),&CCR2 /Добавить длитель­ность полупериода Восстановить R5 Возврат из прерыва­ния

Задача, контролируе­мая регистром CCR3

Задача, контролируе­мая регистром CCR4