Sari la conținut
ELFORUM - Forumul electronistilor

Cum sa programez un PIC


Postări Recomandate

Vizitator cr33py2000

Salut, am si eu de programat o masinuta care va urmari o linie folosind un pic16f627a dupa cum urmeaza:

* RA0(stanga) si RA1(dreapta) vor fi intrari care primesc tensiune de la un lm385 (traductorul senzorilor care sunt 2 LDR)

* RB5(+)-RB4(-) si RB6(+)-RB7(-) iesiri pt a comanda inainte 2 motoare de cc printr-o punte H (L293D), pt a le comanda in reverse se va polariza invers cele 4 iesiri

* RB2 iesire pt un LED de semnalizare cand masina va vira stanga (RA0 = +5V)

* RB1 iesire pt un LED de semnalizare cand masina va vira dreapta (RA1 = +5V)

* si mai am un buzzer conectat la Vss si RB0 care ar trebui sa beep-uie cand va vira stanga sau dreapta sua ambii senzori vor trimite tensiune de comanda la lm385 implicit la RA0 si RA1

 

Masinuța ar trebui sa functioneze asa:

Cand RA0 si RA1 nu vor primi 5V masina va merge inainte (RB5 si RB6 = +5V ;RB1, RB2, RB4 si RB7=0V)

RA0 =+5V va vira stanga + led de semnalizare stanga + beep (RB5=+5V,RB2=+5V ; RB4, RB7, RB6, =0V )

RA1 =+5V va vira dreapta + led de semnalizare dreapta + beep (RB6=+5V,RB1=+5V ; RB4, RB7, RB5, =0V )

 

Placuta cu senzori este facuta dupa http://www.ikalogic.com/tut_line_sens_algo.php , varianta cu LDR si nu sunt sigur dak atunci cand sub LDR va fi o linie neagra pe iesiri va fi +5V sau 0 in ideea in care rezistenta LDr creste odata cu scaderea luninozitaii

 

Am facut o tentativa de program care ar trebui sa detecteze stanga si dreapta doar ca pt inainte si inapoi nu stiu sa pun conditiile iar pt buzzer nu am nici ceam mai mica idee ...Iar acum partea cea mai proasta e ca cel care mi-a promis ca ma ajuta sa programez subit nu mai poate si eu trebuie sa termin masinuta pana duminica....Apreciez orice tentativa de a ma ajuta ;-)

 

List P=16f627A

Status equ 03h

PortA equ 05h

PortB equ o6h

TrisA equ 85h

TrisB equ 86h

Count1 equ 9ah

Count2 equ 9bh

;*********************************

bsf Status,5 ;goto Bank 1

movlw 265h ;put 11111111 into w register

movwf TrisA ;move 111... onto trisa

movlw 00h ;put 00 into w register

movwf TrisB ;move 00.. onto trisb

bcf Status,5 ;come back to Bank 0

;**********************************

Start

btfsc porta,0 ;if porta bit 0 is set 0 skip te next instruction

movlw 02h

movwf portb

 

Loop

decfsz Count1.1

goto Loop

decfsz Count2.1

goto Loop

movlw 00h

movwf portb

 

movlw 20h

movwf potrb

goto start

Carry on here

;**************************************

btfsc porta,1

movlw 01h

movwf portb

Loop

decfsz Count1.1

goto Loop

decfsz Count2.1

goto Loop

movlw 00h

movwf portb

 

movlw 40h

movwf portb

goto start

Carry on here

end

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

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Salutare si Helpp!

Am facut LC-metrul asta:

http://ironbark.bendigo.latrobe.edu.au/ ... ndex2.html

L-am programat cu asta:

http://www.bobtech.ro/catalog/programator/index.html

Hexul e in atas.

 

Functioneaza doar pana la un punct. Adica afiseaza pe C doar "calibrating" iar pe L "over range".

Pe C intra intr-un fel de bucla - intra si iese din calibrare continuu.Pe L nu schiteaza nimic.

Daca fac scurt pe birnele de masura sau pun un L sau C...nu reactioneaza.

Am verificat si rasverificat cblajul, piesele, rescris program....nu vrea.

Am deculplat comutatorul LC...si am legat direct pe cond.pt decuplare de 10uF-tantal cuplajul oscilator format din L-ul de 100uF si C-ul de 1000pF...in paralel la masa....resultat: la fel.Testul de frecventa pe F1 si F2 sunt ok...

F1~00052900, F2~00037200.Calibrarea de precizie + si - se poate face.

 

Singura modificare am observat-o, este ca atunci cand decuplez oricare din ce 2 cond. tantal...iese din modul "calibrating" si intra in "over range" (adica iese din acea bucla de calibrare).

 

S-a mai confruntat cineva su aceasta situatie?

Hex-ul o fi problema?

Picul sa fie devina?

Link spre comentariu

Incearca sa scrii picul cu alt programator, http://hamradioindia.org/circuits/feng.php#mods , eventual mai incerca sa scrii PIC-ul de pe un calculator slab Pentium 133mhz cu IC-PROG.

Eu scriu PIC16F628 total eronat de pe Pentium 3 800Mhz la fel si de pe sistemul dual core.

Pentru programare PIC si alte microcontrolere folosesc un laptop cu tact la 75mhz 72rami edo si sistem de operare windows 98.

Link spre comentariu

Se pare ca ai avut dreptate pentru ca intre timp am reusit sa-l programez cu IC-prog.Eu incercasem cu PonyProg inselat de faptul ca figura si acest pic pe lista lui.Uite la varianta de Win nu ma gandisem si nici la configuratia sistemului...este de retinut daca mai patesc si altadata.Dar tot zic ca mai are o hiba.Cand alimentez circuitul si pleaca pe C...se autocalibreaza si porneste din start cu 1.3pF.Dupa o recalibrare manuala ajunge la 0.0pF.Alta hiba ar fi ca pe site spune ca poate masura pana la 500nF.Al meu dupa 150nF o ia razna dar nu indica Over Range cum ar fi normal daca iese din "palierul" de masuara.

Link spre comentariu

Aia nu e nici o hiba pe condensator can il pornesti iti arata si 2,5pico si 3 si cand i dai calibrate se face auto zero.Asa si trebuie, se face calibrare pe condensator sa arate zero pico , se comuta pe bobine si masoara corect si bobinele.Condensatorul de 1nano musai sa fie unu de precizie stiroflex sau polistiren.Cam astea fiind spuse aparatul functioneaza ireprosabil.Eu nu am nevoie sa masor capacitati mai mari de 100nano ceea ce imi este suficient.Pentru capacitati mari de la 1micro in sus recomand sa faci un ESR metru, sa nu astepti de la o asemenea jucarie sa masori capacitati foarte mari.

Link spre comentariu

Aaaa....nu ...ca nu mai interesa neaparat sa masor mai sus de 100nF....doar ca vroiam sa stiu daca are o problema de functionare datorata softului.Oricum spre completarea lui am facut un multi-tester care masoara pe langa altele.... si capacitati de la 1nF la 10000uF.P.S. Merci pt lamuriri.M-am linistit.

Link spre comentariu
Vizitator lucian75

Mi-a venit si mie picul 16f628a si programatorul ptr el si am o intrebare.odata ce ai programat picul o poti face din nou dupa aia? Cum se face,se rescrie peste sau intai se sterge memoria?

Link spre comentariu

Mi-a venit si mie picul 16f628a si programatorul ptr el si am o intrebare.odata ce ai programat picul o poti face din nou dupa aia? Cum se face,se rescrie peste sau intai se sterge memoria?

Da, dupa scriere il poti rescrie direct, fara sa-l stergi, eu cel putin am incercat asa si a mers.Poti sa-l si stergi inainte si apoi sa-l scrii din nou.Bafta.
Link spre comentariu
Vizitator gigi1968

Mi-a venit si mie picul 16f628a si programatorul ptr el si am o intrebare.odata ce ai programat picul o poti face din nou dupa aia? Cum se face,se rescrie peste sau intai se sterge memoria?

Da, dupa scriere il poti rescrie direct, fara sa-l stergi, eu cel putin am incercat asa si a mers.Poti sa-l si stergi inainte si apoi sa-l scrii din nou.Bafta.
Sunt un novice in privinta PIC-urilor si asi dori sa stiu daca dintr-un PIC16c72A se poate sterge programul care a fost scris si se poate reprograma cu un alt program? Am 3 buc astfel de controlere si nu stiu daca se pot reutiliza.
Link spre comentariu

Sunt un novice in privinta PIC-urilor si asi dori sa stiu daca dintr-un PIC16c72A se poate sterge programul care a fost scris si se poate reprograma cu un alt program? Am 3 buc astfel de controlere si nu stiu daca se pot reutiliza.

Dupa cate stiu eu [sunt si eu tot incepator], PIC-urile cu litera C nu se pot sterge, numai cele cu litera F.
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