Sari la conținut
ELFORUM - Forumul electronistilor

PIC16F84A - Ajutor !


pspsuceava

Postări Recomandate

Sunt trimisi de cineva de aici de pe forum iti zic si ce scrie : 22 , 500V . mai am si de 15.Bun , acum o alta treaba pe care am observato.Daca alimentez doar cu +5v si nu mai pun pic-ul si la GND , cand dau tensiune la pic se aprinde si ledul si se stinge treptat. Aveti idee ce inseamna asta ? cand conectez picul la GND , gata , nu se mai aprinde nimic !

Link spre comentariu
  • Răspunsuri 52
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • pspsuceava

    27

  • sofian

    5

  • Liviu M

    5

  • srdjan

    5

Top autori în acest subiect

Sunt trimisi de cineva de aici de pe forum iti zic si ce scrie : 22 , 500V . mai am si de 15.Bun , acum o alta treaba pe care am observato.Daca alimentez doar cu +5v si nu mai pun pic-ul si la GND , cand dau tensiune la pic se aprinde si ledul si se stinge treptat. Aveti idee ce inseamna asta ? cand conectez picul la GND , gata , nu se mai aprinde nimic !

Parerea mea e ca ai busit pic-ul. Daca mai ai unul de rezerva incearca cu acela sau poate ai pe cineva care iti poate imprumuta unul pentru teste.
Link spre comentariu

As mai lua unul dar adelaida nu trimite decat peste 50 de lei , deci , momentan nu mai am bani sa cumpar si nici nu am ce cumpara de 50 de lei .Daca are cineva sunt dispus sa platesc pretul de pe adelaida , logic !

Link spre comentariu

Am pus un thread si la publicitate si pun si aici daca are cineva un alt microcontroller 16f84a sau 16f877 sau ceva ASEMANATOR , dar ceva mai ieftin ca la adelaida , sa ma contacteze aici sau pe privat sau pe YM pspsuceava sunt interesat !

Link spre comentariu

Am nevoie de ajutor cu acest program , nu reusesc sa il fac sa functioneze bine , nu reusesc sa fac bine initializarile porturilor alea , CRED ! Am folosit " sablonul " din Mplab si am incercat sa il modific dar tot degeaba ! Daca cineva ma poate ajuta cu " reconstruirea " initializarii si ce mai trebuie aici , i-as fi recunoscutor , pe google am gasit 100 de variante , toate diferite intre ele..

Programul face 2 becuri sa clipeasca alternativ - ma rog , nu asta e important , eu vreau sa vad cum e cu partea asta de initializare.Multumesc.

 

list p=16F84A ; list directive to define processor

#include ; processor specific variable definitions

 

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

 

;***** VARIABLE DEFINITIONS

w_temp EQU 0x0C ; variable used for context saving

status_temp EQU 0x0D ; variable used for context saving

 

cblock 0x20

d1

d2

d3

endc

 

;AICI AM NEVOIE DE AJUTOR !!!

ORG 0x000 ; processor reset vector

 

bsf STATUS, RP0 ; change to BANK 1

bcf TRISB ^ 0x080, 1 ; enable RB1 for output

bcf TRISB ^ 0x080, 0

bcf STATUS, RP0 ; back to BANK 0

 

; isr code can go here or be located as a call subroutine elsewhere

 

 

movf status_temp,w ; retrieve copy of STATUS register

movwf STATUS ; restore pre-isr STATUS register contents

swapf w_temp,f

swapf w_temp,w ; restore pre-isr W register contents

retfie ; return from interrupt

;PANA AICI - de aici inteleg .

; Main Program ------------------------------------------------------------

 

Loop

bsf PORTB,RB0

bsf PORTB,RB1

call Delay

bcf PORTB,RB0

bcf PORTB,RB1

call Delay

goto Loop

;Delay Routine ------------------------------------------------------------

; Delay = 1 seconds

; Clock frequency = 4 MHz

 

; Actual delay = 1 seconds = 1000000 cycles

; Error = 0 %

 

 

Delay

;999990 cycles

movlw 0x07

movwf d1

movlw 0x2F

movwf d2

movlw 0x03

movwf d3

Delay_0

decfsz d1, f

goto $+2

decfsz d2, f

goto $+2

decfsz d3, f

goto Delay_0

 

;6 cycles

goto $+1

goto $+1

goto $+1

 

;4 cycles (including call)

return

 

END

Link spre comentariu
retfie ; return from interrupt

;PANA AICI - de aici inteleg .

asta-i dovada clara ca nu ai inteles.

codul ar trebui sa fie structurat cam ca in atasament.

de unde incepe main si pana unde vine loop este partea de initializare. acolo se scrie orice ar putea sa insemne initalizarea picului.

de unde incepe loop si pana unde vine goto loop este partea de executie a programului (main loop). aici este inima programului si practic aceasta bucla controleaza executia programului.

 

cum ai facut tu programul nu sareai in main.

; isr code can go here or be located as a call subroutine elsewhere

asta se refera la rutina de intreruperi. tu de fapt o executi, iar la un moment dat ajungi la

retfie ; return from interrupt

bineinteles, n-are de unde sa-i dea return asa ca picul se revolta si intra in reset, sarind cu executia din nou la adresa 0x000 (aia cu ORG 0x000).

bsf STATUS, RP0 ; change to BANK 1

treaba cu BANK1 si BANK0 o gasesti la pagina 6 din datasheet, figura 2.2

de exemplu, daca ai selectat BANK0 si incerci sa scrii in registrul OPTION_REG, care-i in BANK1, iese o mizerie, vei corupe TMR0 (corespondentul lui OPTION_REG din BANK1).

pentru a evita asta, cred ca ai macroul

banksel nume_registru

care selecteaza bankul corespunzator registrului.

bafta

Link spre comentariu

Mersi :) !Eu facusem putin altfel pana la urma dar mergea : ; RAM preserved ----------------------------------------------------------- cblock 0x20 d1 d2 d3 endcRESET_VECTOR CODE 0x0000 ; processor reset vector bsf STATUS, RP0 ;select bank 1 movlw b'00000000' ;set PortB all outputs movwf TRISB movwf TRISA ;set PortA all outputs bcf STATUS, RP0 ;select bank 0; Main Program ------------------------------------------------------------Mainbsf PORTB,RB0call Delay bcf PORTB,RB0call Delay goto MainIn rest e rutinade delay . Mersi oricum , probabil asta scrisa de tine e si mai corecta :)!

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări