Свежие обсуждения
Консультации

АОН на ПИКе?

Возможно ли это?
Где можно вычитать про стандарт определели номера на наших атс

 

http://telesys.ru/projects/proj006/index.shtml
http://telesys.ru/projects/proj100/index.shtml
http://telesys.ru/projects/proj071/index.shtml

 

а PIC16F628
имеет обратную совместимость с 16F84
То есть будет ли код разработанный под 84 работать на PIC16F628?

 

Q? Что необходимо для перевода программы с PIC16F84A на новый более мощный и более дешевый PIC16F628?

Эти контроллеры совместимы по расположению выводов, но имеют различную внутреннюю структуру организации памяти, поэтому для перевода программы с PIC16F84A на PIC16F628 необходимо обратить внимание на отличия:
Биты конфигурации.
- Если бит LVP=1, то включен режим низковольтного программирования, при котором вывод RB4 как порт ввода/вывода использоваться не может.
- Если в устройстве используется внешний сброс микроконтроллера, то бит MCLRE должен быть "1".
- Обратите внимание на биты конфигурации тактового генератора.
При инициализации PORTA необходимо отключить компаратор (поскольку в PIC16F84 его нет), ниже приведен пример программы:

CLRF PORTA
MOVLW 0X07
MOVWF CMCON
BCF STATUS, RP1
BSF STATUS, RP0
MOVLW 0x1F
MOVWF TRISA

В PIC16F84А бит разрешения прерываний от EEPROM памяти EEIE находиться в регистре INTCON<6>, а в PIC16F628 на этом месте бит разрешения прерываний от периферийных модулей PEIE, а бит EEIE лежит в регистре PIE1<7>. Проверьте размещение битов прерываний от EEPROM памяти данных.
Регистры работы с EEPROM лежат по разным адресам и разным банкам памяти.
Регистры общего назначения в PIC16F84А начинаются с адреса 0Ch/8Ch в банках 0/1 соответственно. В PIC16F628 регистры специального назначения расположены в первых 32 регистрах банков памяти (0-1F для банка 0). Некорректное обращение с этими регистрами может привести к непредсказуемой работе программы.
В PIC16F84А область памяти данных 8Ch - CFh отображается на 0Ch - 4Fh. В PIC16F628 отображаемая область памяти данных во всех банках расположена по адресу 70h -7Fh.
В PIC16F84А два банка памяти, поэтому бит PR1 (для прямой адресации) и IRP (для косвенной адресации) в регистре STATUS не имели значения. В PIC16F628 четыре банка памяти данных, и указанные биты управляют их выбором. Проверьте использование этих битов в программе.

 

А можно сделать так чтобы АОН определял не 5-7 чисел а 9 чисел,то есть номера сотовых? скажем такой например 902ххххххх

 

 

Не всякий сотовый оператор сообщает ГТС свои номера! Чаще всего дают "подменный номер", единый для всех своих абонентов.

 

да нет у нас определят,только проблема в разрядности она решаема?

 

Если Вы сами будете писать программу, то это можно решить. Например, с помощью "бегущей строки". Я вот уже долгое время мучаюсь с конвертором с "забугорного CallerID" в наш "АОН", перекопал много сайтов.
Определить номер в формате нашего АОНа (безинтервальный пакет), можно переделав немного программу декодирования DTMF (принцип аналогичен). С декодированием сигнала FSK немного сложнее, но задачу удалось решить. Правда, довести "до ума", отрывки программ, как всегда некогда

 

...