Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

PIC16F877A płytka stykowa - niestabline działanie

bednyk 30 Mar 2012 12:42 2464 4
  • #1
    bednyk
    Level 12  
    Witam,

    mam kilka 8bitowych piców i chciałem pobawić się asemblerem. Programuję za pomocą PICkit3, ICSP.

    Stworzyłem na szybko taki zestaw:
    PIC16F877A płytka stykowa - niestabline działanie

    Układ programuje się poprawnie, ale gdy odłączam od niego programator - program się zawiesza. Coś jest jakby nie tak z napięciem zasialanie, ale nie wiem co.
    Używam układu 7805 i 4 kondensatorów do filtracji napięcia. Dodatkowo 100nF przy każdej nóżce zasilania uC.

    Najlepsze jeśli dotknę radiatorem scalaka zasilania, układ zaczyna działać. To samo dzieje się gdy dotykam rezystora pull-up dla portu MCLR. Czyli coś z pojemnościami jest nie porządku. Drugą sprawą może być obciążenie 7805, uC praktycznie w ogóle nie pobiera prądu i nie wiem czy wartości na wyjściu 7805 są poprawne.

    Może ktoś miał podobny problem i coś mi wyjaśni. W sumie trochę dziwna sprawa. Schemat układu w treści wiadomości.
  • #3
    bednyk
    Level 12  
    Przykładowy program:

    ; very simple PIC16F877A program
    ; Autor: macbed
    ; migajace dioda led
    processor 16f877a
    include <p16f877a.inc>

    ;__config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _LVP_ON
    __config _BOREN_OFF & _CP_OFF & _LVP_ON & _PWRTE_OFF & _WDT_OFF & _HS_OSC & _DEBUG_ON

    org 0
    ; clrf PORTB; all outputs :=0
    COUNT1 equ 20h;
    COUNT2 equ 21h;
    COUNT3 equ 22h;


    bsf STATUS,5 ;przelacz na bank1
    movlw 0x00 ;wpisz 0x00 do rejestru w
    movwf TRISB ;wpisz zawartosc w do rejestru TRISB
    bcf STATUS,5 ;wyzeruj 5 bit w rejestrze STATUs ->powrot do banku0

    ;****zalacz LED1*****
    Start
    bsf PORTB,5
    call Delay

    ;**koniec opoznienia, wylacz diode
    bcf PORTB,5
    call Delay

    ;***wroc na poczaek programu****
    goto Start ; endless loop

    ;***Tutaj jest podporogram
    Delay ; dla kwartcu 10MHz generuje delay o czasie 1s.
    movlw d'123' ;96decy
    movwf COUNT3
    movlw 0x0F
    movwf COUNT1
    movwf COUNT2

    Loop1 decfsz COUNT1,1
    goto Loop1
    movwf COUNT1
    Loop2 decfsz COUNT2,1
    goto Loop1
    movwf COUNT1
    Loop3 decfsz COUNT3,1
    goto Loop1
    movlw d'122'
    movwf COUNT3
    return

    ;****koniec programu******
    end

    PIC16F877A płytka stykowa - niestabline działanie


    Program działa dopóki mam podłączony programator, później dioda świeci światłem ciągłym.

    Jakiś sygestie ??

    Dodano po 24 [minuty]:

    Problem rozwiązany: zmieniłem bit konfiguracyjny_LVP_ON i działa prawidłowo. Temat do zamknięcia, dzięki za uwagę.
  • #5
    bednyk
    Level 12  
    Przykładowy programik był..a LED - na etapie rozwoju płytki. Dzięki za uwagi ;)