Глава 12.
Генерация и распознование DTMF-сигналов
bis.b #008h,&IEl |
предварительной загрузки
; подготовка таймера-порта для rla г15 |
Разрешить прерывания от 8-битного таймера частоты DTMF-Hi
mov DTMF HI(RTEMP) |
* 2 для 16-битной таблицы ,&DTMF TL
mov #003, RTEMP bis.b #008h,IE2 |
сохранить слово для верхней частоты счётчик для 8-битного таймера Разрешить прерывания от таймера-порта
mov.b &DTMF_TH,&TPCNT2 ; Загрузка старшего
байта в ТС2
mov.b &DTMF_TL,&TPCNT1 ; Загрузка младшего
байта в ТС1
Разрешить 16-битный таймер ,&ТРЕ ; Разрешить выходы DTMF-Hi/Lo Разрешить таймер |
bis.b #080h,&TPD
bis.b #HI_OUT+LO_OUT
mov.b #090h,&TPCTL
ret
.^■к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к-к г
; Прерывание таймера-порта
ТР INT
xor.b #HI_OUT,&TPD ; Инверсия выхода
; DTMF-Hi mov.b &DTMF_TH,&TPCNT2 ; Загрузка старшего
; байта в ТС2 mov.b &DTMF_TL,&TPCNT1 ; Загрузка младшего
; байта в ТС1
bic.b #007h,&TPCTL ; Очистка флагов reti
eint Библиотека Компэла - |
; Прерывание Р0.1/8-битный таймер TIM
; Разрешить прерывания —Г~489
f& Texas iNSiraJMENTS | IV. Примеры конкретных применений | |||
dec | RTEMP | |||
jz | TOGGLE | ; переход по 3-му | ||
; прерыванию | ||||
reti | ||||
TOGGLE | ||||
xor .b | #LO OUT,&TPD | Инверсия выхода | ||
DTMF-Lo | ||||
mov | #003,RTEMP | счётчик для 8-битно- | ||
го таймера | ||||
dec | RCOUNT | декремент счётчика | ||
длительности | ||||
jz | DTMF END | переход, если дли- | ||
тельность закончилась | ||||
reti | ||||
DTMF END | ||||
bic.b | #037h,&TPCTL | Остановить счётчик | ||
таймера-порта | ||||
bic.b | #008h,TCCTL | Остановить счётчик | ||
8-битного таймера | ||||
bic.b | #008h,&IE2 | Запретить прерывания | ||
8-бит. таймера | ||||
bic.b | #003h,&TPE | Запретить выходы | ||
reti | ||||
; Адреса | векторов | прерываний | ||
. sect | «TP VECT», 0ffe8h | |||
.word | TP INT | ; Timer-Port | ||
. sect | «TIM VECT», 0fff8h | |||
.word | TIM 8B | 8-битный таймес |
; (Р0.0)