Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с PIC16F876A
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
PLATRO
вот вся программа:

list p=16f876 ; list directive to define processor
#include <p16f876.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_OFF & _LVP_ON & _DEBUG_OFF & _CPD_OFF



org 000
goto start
org 005

start:
banksel TRISС
movlw b'00000000'
movwf TRISC
bcf INTCON, GIE
start2:
banksel PORTС

key:

bsf PORTC, 0

goto key
end

к RC0 подсоединен светодиод. запускаю контроллер - светодиод мигает (хотя не должен), причем мигает с частотой гдето раз в секунду. Т.е. такое ощущение что контроллер сам по себе резетица раз в секунду. Всякие там вочдоги и тп все поотключал. Может контроллер испортился или чтото я не так делаю? Подскажите плиз.
Andy_F
Может быть, стоит начать программу так (для большей уверенности):

Код
    CLRF    STATUS          ; Do initialization (Bank 0)
    CLRF    INTCON          ; Запрет всех прерываний
    CLRF    PIR1                        ; Очистка флагов - признаков прерываний
    CLRF    PIR2
....


Кроме того, необходимо подтянуть ногу "MCLR" (1) к + питания (для контроллера с буквой "А" на конце - через резистор, без буквы - можно замкнуть напрямую. Ещё можно попробовать выключить LVP.
PLATRO
а я на прямую замыкал MCLR )) может от этого?
Andy_F
Цитата(PLATRO @ Oct 14 2006, 00:56) *
а я на прямую замыкал MCLR )) может от этого?


Вряд ли. Это допустимо, но не рекомендуется.

Может, немного ещё упростить:

Код
   BSF    PORTC, 0
   GOTO $


Т.е., светодиод зажгли, и крутимся в бесконечном цикле.
Костян
А в конфигурации отключен сторожевой таймер ???
upc2
Цитата(Костян @ Oct 14 2006, 12:38) *
А в конфигурации отключен сторожевой таймер ???


Вы , что не контролируете конфигурационное слово при программировании?
Вообще-то этому надо уделять серьезное внимание.Недавно скачал пример по USB с
Микрочипа.Так вот с их конфигурационным словом не работает.Пришлось вносить
поправки.
ANV
Посмотри еще сдесь
http://www.microchip.ru/phorum/read.php?f=...01&t=117356
DL36
А если попробать определьть тип сброса? приблизительно так.
Мой шаблон для си. Добавить проверку на -TO -RD

GLOBAL powerup,start, big_powerup
PSECT powerup,class=CODE,delta=2
powerup
bsf STATUS, RP0 ;Банк 1
btfsc PCON, POR ;Сброс при включении питания?
ljmp big_powerup ;НЕТ, WDT или сброс MCLR
ljmp start ;Да

PSECT big_powerup,class=CODE,delta=2
big_powerup
btfss PCON, BOR ;Сброс при снижении питания?
goto pdown ;
btfss STATUS, TO ;Сброс WDT?
goto pwdt
ljmp start
pdown
movlw MASKA
movwf TRISA
bcf STATUS, RP0 ;Банк 1
clrwdt
bsf PORTA, OUT
goto $-2

pwdt
movlw MASKA
movwf TRISA
bcf STATUS, RP0 ;Банк 1
clrwdt
bcf PORTA, OUT
goto $-2
upc2
В принципе все советы правильные.Мне кажется , что программатор не поддерживает
PIC16F876 с буквой A.Поэтому и не программируется правильно конфигурационное слово.
PLATRO
Ну кароче я так понял Вы все думаете что это не испорченный МК, а происходит какойто сброс. Ну чтож спасибо за советы, будем разбираться. Кстати программатор у меня EXTRAPIC http://5v.ru/extrapic.htm
upc2
С программатором вроде все в порядке.Проверьте свой код в Протеусе.Тогда останется пик и
программатор.В пик записать и прочитать.Если все совпало, то пик нормальный.
PLATRO
Всем спасибо, все заработало. Проблема ушла после того как я проделал рекомендации из поста №2
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.