2) Скопилить не проблема, пожалуйста... учтите, что эта прошивка скомпилирована из последней модификации программы, там 2 порта для управления симистором (rev 60)...
3) У всех у кого не работает, выкладываем фото собранной платы + тип симистора + если каке-то номиналы меняли сами, то схемку с реально установленными номиналами элементов..... будем посмотреть
Если константа все таки затерлась, то ее можно восстановить двумя способами:
1) При помощи PicKit2, там есть встроенная опция калибровки;
2) Изменить в мой проект в начале следующим образом:
ORG 00h;
bsf OSCCAL,0;
goto $;
Необходимо отпаять R1, и на 4 ножке контроллера осциллографом наблюдать частоту 1 МГц, в случае ее отклонения изменяем содержимое регистра OSCCAL согласно даташиту и подбираем значение при котором на выходе будет частота наиболее близкая к искомой.
для подбора еще раз модифицируем код:
ORG 00h ;
movlw (0xXX | 0x01);
movwf OSCCAL ;
goto $;
где 0xXX - подбираемая константа в 16-ричном виде ( а | 0x01- это для профилактики непонимания даташитов)).
После подбора, если вам не удастся прописать ее в память контроллера, то модифицируем код:
ORG 00h ;
movlw (0xXX | 0x01);
movwf OSCCAL ;
Ну или еще вариант, только компилировать надо не в режиме симуляции в MPLABSIM (прописываем в конце программы перед словом end нашу константу, причем код в начала не меняекм, как в оригинале):
org 0x1ff ( в зависимости от контроллера адрес последней ячейки памяти!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! это для 512 байтового)
movlw 0xХХ;
end
Контроллеры данной серии стартуют не с адреса 0х00 а с последнего адреса, в который не заводе прописывается инструкция movlw 0xХХ, что мы и делаем в ручную, в случае порчи заводского значения.


