-
01.04.2005, 17:14 #1
- Регистрация
- 05.01.2004
- Адрес
- г. Харьков, Украина
- Сообщений
- 77
- Поблагодарили
- 0
- Поблагодарил
- 0
16f84 и 16f628 в чем разница?
Здравствуйте
подскажите, чем отличаются эти контроллеры???
-
01.04.2005, 18:18 #2Alex007Гость
Во многом - объем памяти, периферия, работа с еепром, итд.
Простая перешивка кода из 84 в 628 не пройдет.
-
01.04.2005, 22:53 #3Alex007Гость
Вопрос: Что необходимо для перевода программы с PIC16F84A на новый более мощный и более дешевый PIC16F628A?
Ответ: Эти контроллеры совместимы по расположению выводов, но имеют различную внутреннюю структуру организации памяти, поэтому для перевода программы с PIC16F84A на PIC16F628A необходимо обратить внимание на отличия:
Биты конфигурации.
- Если бит 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>, а в PIC16F628A на этом месте бит разрешения прерываний от периферийных модулей PEIE, а бит EEIE лежит в регистре PIE1<7>. Проверьте размещение битов прерываний от EEPROM памяти данных.
Регистры работы с EEPROM лежат по разным адресам и разным банкам памяти.
Регистры общего назначения в PIC16F84А начинаются с адреса 0Ch/8Ch в банках 0/1 соответственно. В PIC16F628A регистры специального назначения расположены в первых 32 регистрах банков памяти (0-1F для банка 0). Некорректное обращение с этими регистрами может привести к непредсказуемой работе программы.
В PIC16F84А область памяти данных 8Ch - CFh отображается на 0Ch - 4Fh. В PIC16F628A отображаемая область памяти данных во всех банках расположена по адресу 70h -7Fh.
В PIC16F84А два банка памяти, поэтому бит PR1 (для прямой адресации) и IRP (для косвенной адресации) в регистре STATUS не имели значения. В PIC16F628A четыре банка памяти данных, и указанные биты управляют их выбором. Проверьте использование этих битов в программе.
-
04.04.2005, 11:17 #4
- Регистрация
- 05.01.2004
- Адрес
- г. Харьков, Украина
- Сообщений
- 77
- Поблагодарили
- 0
- Поблагодарил
- 0
Понял.
Большое спасибо.
|
Социальные закладки