Sari la conținut
ELFORUM - Forumul electronistilor

Cum sa programez un PIC


sofian

Postări Recomandate

Astept cu mare nerabdare rezolvarea, sa vad ce nu e bine, ma necajesc demult cu aceasta aplicatie.Am scris acelasi program pentru un pic 18f4455 si l-am testat pe o placa de dzvoltare si merge perfect, dar pt pic 12f675 nu reusesc sa-i dau de capat, eu cred ca poate fi problema numai de la configurarrea intreruperii generate de timer1, configurare timer1, dar astept pareri de la cine cunoaste.Multumesc mai jos atasez codul

pic12f675.txt

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

Top autori în acest subiect

  • Liviu M

    54

  • Vlad Mihai

    28

  • bbogdanmircea

    27

  • seichter

    24

Top autori în acest subiect

Imagini postate

Vizitator CosminCh

Salut ! Sunt nou in programarea PIC-urilor. As vrea sa trec la un nou "nivel" . Sa fac un ceas care sa imi indice h:m:s pe un display cu 7 segmente utilizand un PIC16F877A . Este posibil sa folosesc doar un singur dislay cu 6 digiti ? Sau am nevoie de 3x2 digiti ?

Link spre comentariu

Salut ! Sunt nou in programarea PIC-urilor. As vrea sa trec la un nou "nivel" . Sa fac un ceas care sa imi indice h:m:s pe un display cu 7 segmente utilizand un PIC16F877A . Este posibil sa folosesc doar un singur dislay cu 6 digiti ? Sau am nevoie de 3x2 digiti ?

Daca afisajul cu 6 digiti este multiplexat atunci il poti folosi, daca nu, mai bine iei 6 digiti si realizezi cablajul in mod adecvat pentru utilizare in regim de multiplexare
Link spre comentariu
  • 3 săptămâni mai târziu...
Vizitator CosminCh

Buna seara ! Ma ajutati va rog frumos cu cateva exemple sau surse pentru afisare LCD 16x2 folosind un PIC16F8x folosind MPLAB . M-am tot uitat pe teorii dar nu prea pricep mare lucru... :cry:

Link spre comentariu
  • 3 săptămâni mai târziu...

Salutari.

 

De curand am fost convins ca as putea sa incerc si eu joaca cu uC-urile, am cateva proiecte de viitor care ar fi facilitate foarte mult daca le-as putea baza pe uC-uri, de curand am primit kitul pentru asamblarea unui programator ( multumiri @Maxente ), l-am realizat si se pare ca functioneaza ok, am instalat si un soft care sa instaleze softurile pe uC dar nu ma multumesc doar sa caut hex-uri/softuri scrise de altii, ar fi prea simplu, imi doresc sa invat eu sa le scriu, am mai scris in trecut ceva macro si din cate am observat diferentele nu sunt enorme, am urmarit si ceva tutoriale video si sunt convins ca as putea invata fara prea mari dificultati, dar cum sunt momentan praf in asa ceva va cer domniilor voastre sfatul, ceva documentatie pentru initierea incepatorilor in asa ceva, descrieri ale notiunilor elementare ce stau la baza programarii, ce limbaj este cel mai indicat ( nu foarte sofisticat ), as aprecia mult ceva indrumari, sunt constient ca nu va pot cere explicatii detaliate ( nici n-ar fi corect ) dar as aprecia mult daca cunoasteti linkuri catre documentatie in care aveti incredere ( engleza sau Romana nu conteaza ), pe iutub multi posteaza in acest subiect dar nu sunt convins si cati dintre ei stiu si ce posteaza...

 

Orice sfat este binevenit si va multumesc pentru atentia acordata mesajului meu.

Toate cele bune. :101

Marian.

Link spre comentariu

Programarea (realizarea unui program) nu este chiar foarte grea , indiferent de limbajul de programare folosit. Cea mai mare problema pentru mine a fost sa inteleg ca sunt diferente intre utilitarele IDE (Integrated Development Environment) aparute dea lungul timpului pentru acelasi limbaj de programare.Sfatul meu (desi iti va cere ceva timp) este sa incepi direct cu Limbajul C pentru programarea calculatoarelor (un IDE de C pentru programare computere). Apoi sa folosesti un IDE pentru microcontrolere. De ce te sfatuiesc asa? Pentru ca eu nu am gasit pana acum o carte care sa te invete direct limbajul C pentru microcontrolere (se presupune ca deja stii programare in C, Basic, Pascal etc.). Un alt mod de programare este prin schema logica. Si un user de pe acest forum mi-a recomandat FlowCode. Este interesant si destul de bun pentru un incepator. Eu prefer totusi limbajul C , chiar daca nu-l stiu foarte bine.GicaS.

Link spre comentariu
Vizitator iulianvalentin

"Marian" am doua recomandari pentru tine una este sa achizitionezi un arduino si sa faci practica pe el, spun asta datorita librariei ce o detine si usor de folosit iar a doua ar fi MikroC for Pic tot pentru usurinta utilizarii si pentru libraria vasta pe care o detine, MikroC este folosit si prin facultati.Limbajul cel mai comun este C iar structura IDE ului folosit pentru arduino este rudimentara insa foarte usor de folosit.

Link spre comentariu

Programarea din spate este aceiasi, depinde daca ai mai facut programare sau esti incepator total.IDE-urile din spate, librarii si restul sunt doar niste tooluri care te ajuta cand faci un program.Pe mine m-au enervat atat MikroC cat si Arduino, in principiu acestea ar trebui sa te ajute pentru ca simplifica anumite chestii, adica nu mai trebuie sa reinventezi roata la fiecare PIC programat, doar il alegi si iti face mediul toate setarile necesare.Daca merge treaba asta atunci e ok, dar daca dne fereste e vreo eroare la configurare, atunci te dai cu capul de toti peretii pentru ca nu prea ai ce sa faci.Eu pana acum ce programele am mai facut am facut doar cu MPLAB si am lucrat doar cu PIC16F877 876.Foarte util este daca ai osciloscop, sau macar un programator cu Logic Analyzer, ca sa poti face debug la ce programezi, eu nu am si tot ce am facut a fost cu mare chinuiala si prin incercari, adica trebuie sa te chinui un pic daca nu ai osciloscop si vrei sa faci un PWM pentru ca nu prea ai cum sa-ti dai seama daca merge.

Link spre comentariu

Multumesc pentru sugestii dar nu cred ca imi este deajuns sa stiu ce softuri pot folosi pentru scrierea unui program uC, nu am mai facut programare si tocmai de aceea aveam nevoie de ceva documentatie care sa explice notiunile elementare in aceasta directie, sunt constient ca-i foarte greu sa pleci de la un nivel asa de inferior dar pana la urma oricine a plecat candva de jos, si daca nu incerc nu am de unde sa stiu daca sunt sau nu in stare.Si sa dau un exemplu, se da cel mai simplu PIC ( din cate mi s-a spus ) 12F675, programatorul pickit2 clona si softul PC pickit2, sa zicem ca vreau sa scriu un soft in PIC care sa ii provoace urmatorul comportament, la aplicarea unei comenzi in pinul 4 cu ajutorul unui mic intrerupator, pinul 7 ( GP0 ) sa treaca pe 1 ( adica high ) sa se mentina asa 500mS apoi sa treaca pe 0, dupa 300mS pinul 6 sa treaca pe 1 si la fel sa se mentina un timp asa apoi pe 0, apoi si pinul 5 la fel... etc, mentionez ca este doar un exemplu elementar pentru ca tocmai asta imi doresc sa descopar, notiunile elementare, cum stabilesti un port sa fie intrare, altul iesire, cum incepi proiectul etc.

Link spre comentariu

Hm, inainte sa ti se poata raspunde, ar trebui sa precizezi daca te intereseaza sa programezi in assembler sau in vreun alt limbaj de programare (c, basic...).Pe post de exercitiu, putem sa detaliem putin cele 2 variante.A. Assembler:- Downloadezi de la uChip de pe site un IDE (mplab sau mplabx, mplabx arata mai bine da' are inca probleme)- downloadezi de la uChip si un compiler (xc8), ca nu mai au doar assemblerul separat, e inglobat in kitul de compiler- le instalezi- creezi un nou proiect cu asistentii inclusi (fiecare IDE are asistentii lui, sunt greu de detaliat).In paralel, descarci de la uCip data-sheetul picului care te intereseaza si manualul de la assembler si te apuci si codezi/testezi exemplele/...Pui pe forum problemele care apar, neclaritatile si cine stie te ajuta.C. Compiler:- Downloadezi de la uChip de pe site un IDE (mplab sau mplabx, mplabx arata mai bine da' are inca probleme)- downloadezi de la uChip si un compiler (xc8)- le instalezi- creezi un nou proiect cu asistentii inclusi (fiecare IDE are asistentii lui, sunt greu de detaliat).In paralel, descarci de la uCip data-sheetul picului care te intereseaza si manualul de la compilator si te apuci si codezi/testezi exemplele/...Pui pe forum problemele care apar, neclaritatile si cine stie te ajuta.Varianta cu compilator are avantajul ca poti folosi acelasi limbaj si pentru aplicatii pentru PC, nu doar pentru PICuri si gasesti mai multa documentatie.Dezavantajul e ca obtii cod ceva mai neoptimizat, asa ca probabil nu-i foarte potrivit pentru picul 12f pomenit de tine mai sus.In afara de ce am povestiti eu mai sus, exista si alte "pachete" cu unelte (de la mikroelektronica, de exemplu), da' nu le-am folosit asa ca nu pot spune prea multe despre ele.

Link spre comentariu

Gasesti tutoriale pe internet cate vrei si cate nu vreo ptr PIC.Din pacate eu cunoscand doar seria 16 nu te pot ajuta cu 12, oricum daca vrei sa faci ceva mai complex iti trebuie macar seria 16 de la PIC, sau un Arduino care la acelasi bani are mult mai multe periferice pe el...Ceea ce vrei tu pare destul de complicat chiar si ptr mine, eu zic sa incepi cu ceva mai simplu:-cum sa aprinzi si stingi un led cand apesi un buton-cum sa aprinzi un led cu PWM-cum sa faci o temporizareAstea sunt cam bazele, daca reusesti sa citesti un buton, sa aprinzi un LED, sa faci o temporizare si sa setezi un PWM deja ai acoperit cam 80% din ce stie sa faca un PIC.Ar mai ramana doar partea de comunicare, pe care n-am folosit-o niciodata din pacate.Normal ca inainte de toate astea ar trebui sa ai notiuni elementare de programare structurata:-instructiunea if else-instructiunea while, forSa stii ce e aia variabila, bit , byte etc. ....Oricum daca ai baze bune de electronica programarea e usoara, din pacate nu e si invers...Cand achizitionezi primul PIC si il lipesti pe o placuta si il si programezi cu bootloaderul poti sa revii cu intrebari.

Link spre comentariu
Vizitator iulianvalentin

Personal am trecut prin MPLAB, ceva mai stabil decat noua versiune, am programat atat in asembly cat si in C.

 

limbajul asm este unul rudimentar usor de invatat si poate fi folosit atat in MPLAB cat si in MikroC, problema cu asm este ca trebuie sa inveti sa gandesti intr-o maniera diferita pentru ca limbajul este unul low level adica este mai apropiat de limbajul procesorului decat al omului in schimb C este un limbaj High level apropiat mai mult de limbajul omului, practic atunci cand compilezi un program compilatorul interpreteaza limbajul C si genereaza instructiuni in asembly.

 

Pentru pic12 recomand asm pentru inceput, insa ai multa munca de facut.

Poti sa il programezi si in C cu MikroC este mult mai rapid si mai usor insa nu vei avea oportunitatea sa inveti cum functioneaza un PIC.

 

Personal unui incepator i-as recomanda pic16f877 acest pic are tot ce ii trebuie.

Link spre comentariu

Eu tot asa recomand ptr PIC 16F877A, 16F887A sunt cele cu capsula mare de 40 de pini daca nu ma insel, au 5 porturi disponibile adica aproape 40 de pini pe care sa ii folosesti pe o placuta de dezvoltare.E si ieftin.

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