Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Устройства ультрафиолетового стирания 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 [ 78 ] 79 80 81 82 83 84

* Автор: John Day

* Microchip Technology

* Изменение: 1.1

* Дата; 20 декабря, 1995

* Используемый компилятор MPASM VI. 40 **********************************************

* Конфигурация: OSC: XT (3.579545 МГц)

* WDT: откл.

* CP: откл.

**********************************************************************

* Эта программа формирует сигналы DTMF для набора номера телефона

* с использованием внешней матрицы R-2R.

**********************************************************************

* Память программ: 220 Слов - таблицы шаблонов синуса (7 таблиц);

* 25 Слов - вспомогательная таблица;

* 37 Слов - формирование сигнала DTMF;

* 5 Слов - Инициализация;

* 25 Слов - Тест, выборка кода клавиши.

* Память данных: 8 Байт.

********************************************************************** list р=16С71 tinclude <pl6c71.inc> CONFIG ХТ 0SCS WDT 0FFS CP 0FF

; Базовый адрес шаблона синуса А.

; Указатель на текущую позицию таблицы А.

; Базовый адрес шаблона синуса В.

; Указатель на текущую позицию таблицы В.

; Регистр суммы.

; Счетчик времени LSB.

; Счетчик времени MSB.

; Временная ячейка.

; Значение, показывающее конец таблицы. **************************************

; Вектор СБРОСА.

; Перейти к программе инициализации. ********************************************************************

Sinelookup - подпрограмма состоит из 7 таблиц с шаблонами синуса для двухчастотного набора вспомогательной клавиатуры(4 X 3). Частота резонатора: 3.579545 Mhz Команды / цикл: 35

Основная частота: 1209 1336 1477 697 770 852 941 Гц Фактическая частота: 1217 1345 1475 691 774 852 946 Гц Ошибка: 0.7 0.7 -0.1 -0.9 0.5 0 0.5 %

Число значений в таблице: 21 19 52 37 33 30 27

Общее число значений: 219.

Память программы: 220 Слов - 7 таблиц с шаблонами синуса. Память данных: нет

********************************************************************

ORG lOh

sinelooliup ;Используется как адрес для вызова таблиц

addwf PCL, F /Прибавить смещение к PC, для перехода,

sineoffset ;Используется для вычисления адреса.

WAVEABASE

POINTERA

WAVEBBASE

POINTERS

NEXTVALUE

SINECOUNT

SINECOUNTH

TEMP

ENDSINE

.127

************

********

*******

Resetvector

Goto

init

17.4.6 ЗАКЛЮЧЕНИЕ

Использование метода PWM или матрицы R-2R с микроконтроллером PICMICRO позволяют создавать компактные и недорогие устройства за счет их низкой цены и небольшого числа внешних компонентов.

17.4.7 ПРОГРАММА ФОРМИРОВАНИЯ СИГНАЛА DTMF (DTMF.ASM)

Имя файла: DTMF.ASM



sinerow2

sinerow3

sinerowl

dt dt dt dt dt

dt dt dt dt

dt dt dt dt

sinerow4

dt dt dt

sinecolumna dt dt dt

sinecolumnb dt dt dt

sinecolumnc

; Адрес шаблона синуса для строки 1. .149, .ПО, .190, .203, .224, .236, .246, .253, .255 .254, .250, .242, .230, .216, .199, .180, .160, .138 .117, .95, .75, .56, .39, .25, .13, .5, .1 .0, .2, .9, .19, .31, .47, .65, .85, .106 .127 ; Конец шаблона синуса.

; Адрес шаблона синуса для строки 2. .152, .175, .197, .216, .232, .244, .252, .255, .254 .248, .233, .224, .207, .136, .164, .140, .115, .91 .69, .48, .31, .17, .7, .1, .0, .3, .11 .23, .39, .53, .30, .103, .127

; Адрес шаблона синуса для строки 3. .154, .180, .203, .223, .238, .249, .255, .255, .249 .238, .223, .203, .130, .154, .128, .101, .75, .52 .32, .17, .6, .0, .0, .6, .17, .32, .52 .75, .101, .127

; Адрес шаблона синуса для строки 4. .157, .135, .210, .230, .245, .254, .255, .250, .233 .221, .198, .171, .142, .113, .84, .57, .34, .17 .5, .0, .1, .10, .25, .45, .70, .98, .127

; Адрес шаблона синуса для столбца А. .165, .200, .228, .247, .255, .252, .238, .215, .183 .147, .108, .72, .40, .17, .3, .0, .8, .27 .55, .90, .127

; Адрес шаблона синуса для столбца В. .169, .206, .235, .252, .255, .245, .222, .138, .149 .106, .67, .33, .10, .0, .3, .20, .49, .86 .127

; Адрес шаблона синуса для столбца С (2 периода синуса),

.173,

.212,

.241,

.255,

.252,

.233,

.200,

.153,

.112

.68,

.32,

.32,

.68,

.112,

.158

.200,

. 233,

.252,

.255,

.241,

.212,

.173,

.128,

.43,

.14,

.22,

.55,

.97,

.143,

.187

.223,

. 247,

.255,

. 247,

.223,

. 187,

.143,

.97,

.22,

.14,

.43,

.82,

.127

********************************************************************* sineaddress - подпрограмма поиска базового адреса таблиц шаблонов, W содержит значение адреса клавиши, возвращает смещение для таблицы. Используется: W

Память программы: 25 слов

**********************************************************************

sineaddress

; Поисковая таблица

адреса шаблона

addwf

PCL, f ; Прибавить смещение к PC, для перехода.

)ieyof f set

retlw

sinerowl-sineoffset

; Смешение

строки 1.

retlw

sinecolumna-sineoffset

; Смещение

столбца А.

retlw

sinerowl-sineoffset

; Смещение

строки 1.

retlw

sinecolumnb-sineoffset

; Смещение

столбца В.

retlw

sinerowl-sineoffset

; Смещение

строки 1.

retlw

sinecolumnc-sineoffset

; Смещение

столбца С.

retlw

sinerow2-sineoffset

; Смещение

строки 2.

retlw

sinecolumna-sineoffset

; Смещение

столбца А.

retlw

sinerow2-sineoffset

; Смещение

строки 2.

retlw

sinecolumnb-sineoffset

; Смещение

столбца В.

retlw

sinerow2-sineoffset

; Смещение

строки 2.

retlw

sinecolumnc-sineoffset

; Смещение

столбца С.

retlw

sinerow3-sineoffset

; Смещение

строки 3.

retlw

sinecolumna-sineoffset

; Смещение

столбца А.

retlw

sinerow3-sineoffset

; Смещение

строки 3.

retlw

sinecolumnb-sineoffset

; Смещение

столбца В.

retlw

sinerow3-sineoffset

; Смещение

строки 3.

retlw

sinecolumnc-sineoffset

; Смещение

столбца С.

retlw

sinerow4-sineoffset

; Смещение

строки 4.

retlw

sinecolumna-sineoffset

; Смещение

столбца А.

retlw

sinerow4-sineoffset

; Смещение

строки 4.

retlw

sinecolumnb-sineoffset

; Смещение

столбца В.,

retlw

sinerow4-sineoffset

; Смещение

строки 4.

retlw

sinecolumnc-sineoffset

; Смещение

столбца С.

keyl

= )il-)ceyoffset ; Значение адреса

для клавиши 1



кеу2

кеуЗ

кеу4

кеу5

кеуб

кеу7

кеуЗ

кеу9

keystar

кеуО

keypound

= k2-keyoffset = кЗ-keyoffset = k4-keyoffset = k5-keyoffset = кб-keyoffset = k7-keyoffset - ka-keyoffset k9-keyoffset = klO-keyoffset = kll-keyoffset

= kl2-keyoffset

Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши Значение адреса для клавиши

2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 .

О .

Значение адреса для клавиши #

* senddtmf - подпрограмма вычисления смещения адреса для двух шаблонов

* синуса, которые сохраняются в переменных WAVEABASE и WAVEBBASE.

* Подпрограмма вызывается со значением клавиши (кеуО - кеу9 или keystar

* или keypound) загруженным в W. Значения сигнала DTMF для клавиши

* посылается на матрицу R-2R через portB каждые 320 мс.

* Память данных; 8 байт.

* Память программы: 37 слов.

senddtmf

movwf call movwf swapf movwf incf call movwf swapf movwf movlw movwf loopsine2cyc goto

loopsine

movf call movwf xorlw swapf btfsc movwf incf movf call addwf xorlw swapf btfsc movwf incf rrf movwf goto waste2cyc

decfsz

goto

decfsz

goto

retlw

TEMP ; Сохранить значение клавиши,

sineaddress ; Получить адрес синуса для строки.

WAVEABASE ; Сохранить базовый кдрес А.

WAVEABASE, F ; Поменять полубайты WAVEABASE

POINTERA ; Инициализировать указатель адреса А.

TEMP, W ; Увеличить смещение для второго синуса,

sineaddress ; Получить адрес синуса для столбца

WAVEBBASE ; Сохранить базовый адрес В.

WAVEBBASE, F ; Поменять полубайты WAVEBBASE.

POINTERB ; Инициализировать указатель адреса В. 20h ; Подготовить число для счетчика циклов.

SINECOUNTH ; Инициализировать счетчик циклов.

loopsine; Два пустых цикла, для общего числа 35.

POINTERA, W sinelookup NEXTVALUE ENDSINE WAVEABASE, STATUS, Z POINTERA POINTERA, F POINTERB, W sinelookup NEXTVALUE, F ENDSINE WAVEBBASE, W STATUS, Z POINTERB POINTERB, F NEXTVALUE, W PORTB waste2cyc

; Загрузить адрес значения синуса А.

; Получить первое значение из таблицы.

; Сохранить полученное значение. Сравнить с конечным значением таблиц.

; Подготовить базовый адрес.

; Конец таблицы? Да, восстановить адрес начала таблицы.

; Увеличить указатель текущего значения.

; Загрузить адрес значения синуса В.

; Получить второе значение из таблицы.

; Прибавить второе полученное значение. ; Сравнить с конечным значением таблиц.

; Подготовить базовый адрес.

; Конец таблицы? Да, восстановить адрес начала таблицы.

; Увеличить указатель текущего значения.

; Разделить на 2 выходное значение. Вывод нового значения на матрицу R-2R.

; Два пустых цикла, для общего числа 35.

SINECOUNT, F

loopsine2cyc

SINECOUNTH, F

loopsine

Уменьшить LSB счетчика циклов. Счетчик * О, повторить цикл. Уменьшить MSB счетчика циклов. Счетчик * О, повторить цикл. Возврат, конец формирования синуса



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 [ 78 ] 79 80 81 82 83 84



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.