Sari la conținut
ELFORUM - Forumul electronistilor

Cum sa programez un PIC


sofian

Postări Recomandate

Vizitator cereal_port

pai nu, intrebarea era cum fac eu un programel care sa imi umble asa prin alfabet (sau un tabel cu codurile ascii) de fiecare data cand apas pe butoanele alea.

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

  • 1 lună mai târziu...

La multi ani.

Cine ma poate ajuta si pe mine cu o modificare in program mikroC PRO for PIC .

Am insemnat liniile adaugate de mine la programul original.

Butonul FAST are acelasi timp ca butoanele UP si DWN.

Eu vreau ca butonul FAST sa aibe alt timp. Unul cu o viteza mai mare.

 

//*********NUMARATOR PIC16F84A******************

 

#define UP PORTA.B0

#define DWN PORTA.B1

#define FAST PORTA.B2 //ADAUGAT

//----------------------------------------------

char Ledkod[47]={0x02,0x42,0x06,0x46,0x0A,0x4A,0x0E,0x4E,0x12,0x52,

0x16,0x56,0x1A,0x5A,0x1E,0x5E,0x22,0x14,0x54,0X18,

0x58,0x1C,0x5C,0x20,0x60,0x24,0x64,0x01,0x41,0x05,

0x45,0x09,0x49,0x0D,0X4D,0x11,0x51,0x15,0x55,0x19,

0x59,0X1D,0x5D,0x21,0x61,0X25,0x65}, sayi=0;

//int i=100;

void configurare() //

{

//CMCON=7; // PORTA digital > doar pentru pic16f628a

TRISA=7; //

TRISB=0; // PORTB

PORTB=LedKod[0]; // PORTB toate segmentele sunt 0 logic

 

}

void main()

{

configurare(); //

//while(i)

while(1) // bucla infinita

{

if(!UP||!FAST||!DWN)

{

Delay_ms(120); // >180ms< VITEZA 40 >, 180 <

if(!UP) sayi++; //if(!UP&&sayi<19) sayi++; // UP

if(sayi==47) sayi=0; //if(!DWN&&sayi>0) sayi--;

if(!DWN) sayi--; // DWN

if(sayi>47) sayi=46;

//********************ADAUGAT***************

DELAY_ms(10);

if(!FAST) SAYI++;

if (sayi==47) sayi=0;

//********************************************

PORTB=Ledkod[sayi]; // afisare 7segmente la PORTB

//i--;

}

}

}

Link spre comentariu

Salutare tuturor.

As dori sa pun o intrebare celor care se pricep la programarea microcontrolerelor PIC.

Am gasit o schema foarte simpla care cred ca ar interesa pe multi utilizatori.

E vorba de inlocuirea mecanismelor originale ale masinilor de spalat care se defecteaza deseori cu un microcontroler PIC 16F872. Eu am un 16F877A. Ma intrebam daca ar exista posibilitatea de a transpune soful creat pentru un PIC mai micut pe unul mai puternic.

http://www.scribd.com/doc/95680292/Washing-Machine-With-PIC.

Ma intereseaza si cum as putea scapa de parazitii din retea si EMI. Merge doar cu ecranarea montajului sau mai trebuie ceva filtre?.Psibil ca nu am postat unde trebuie. Daca am gresit va rog sa ma atentionati.

Insa nu am facut nici un programal pt pic , doar am copiat codurile direct si deaceea am considerat ca e subiect de incepatori.

Link spre comentariu

Cele mai bune pentru masinile de spalat sunt uC ATMEL.Vezi ca exista un topic cu ceva gen PIC vs AVR, aplicatii comerciale...Nu ai specificat daca masina spala vase sau rufe. ARM, PIC32 ? Pina la urma, care este "intrebarea" ?

Link spre comentariu

softul de pe picul 16F872 sa fie transpus pe 16F877A Pt alte microcontrolere trebuie alt programator deci este exclusa varianta desi e mai buna sugestia dvs dupa cum se pare

Link spre comentariu
Vizitator iulianvalentin

Degeaba nu se defecteaza, poate nu este alimentat si protejat corespunzator?? Diferenta dintre 872 si 877 este capacitatea memoriei si numarul de pini dar per totasl ambele dispun de aceleasi periferice.In schema respectiva am observat ca pinul MCLR este legat direct la alimentare ceea ce nu se face.RB1 conectat direct la un servomotor de care nu stim nimic!!!

Link spre comentariu

Probabil masina de spalat respectiva avea un servo pt ceva.. Cred ca se poate omite asta.Cum ar trebui sa fie conectat circuitul dupa parerea Dvs? Se poate transcrie direct softul si sa folosim doar pinii de intrare si iesire adecvati?

Link spre comentariu
Vizitator iulianvalentin

Probabil masina de spalat respectiva avea un servo pt ceva.. Cred ca se poate omite asta.Cum ar trebui sa fie conectat circuitul dupa parerea Dvs? Se poate transcrie direct softul si sa folosim doar pinii de intrare si iesire adecvati?

In primul rand trebuie respectate indicatiile producatorului privind pinul de reset/programare, personal as investiga PIC-ul defect poate este o defectiune cauzata de alimentare sau o problema de design si montaj.PIC16F872 este pin la pin compatibil cu PIC16F876 iar programul ar trebui sa mearga cu oricare dintre microcontrolerele din familia 873,874,876,877 singura diferenta este memoria, un modul CCP in plus si modulul USART.
Link spre comentariu

nu este vorba de PIC defect ci de a inlocui toata partea electromecanica diabolica cu un pic care sa comane restul perifericilor si mororul.. Deci daca "torn"softul respectiv (HEX) in PIC 16F877a atunci va merge?O alta intrebare. Daca avem HEXul putem obtine programul sursa prin decompilare? M-ar interesa sa fi in BASIC daca se poate. nu am inteles ce nu este bine in schema originala referitor la conectarea picului

Link spre comentariu
Vizitator iulianvalentin

nu este vorba de PIC defect ci de a inlocui toata partea electromecanica diabolica cu un pic care sa comane restul perifericilor si mororul.. Deci daca "torn"softul respectiv (HEX) in PIC 16F877a atunci va merge?O alta intrebare. Daca avem HEXul putem obtine programul sursa prin decompilare? M-ar interesa sa fi in BASIC daca se poate. nu am inteles ce nu este bine in schema originala referitor la conectarea picului

Scuzele de rigoare mi-a ramas in minte fragmentul :

masinilor de spalat care se defecteaza deseori cu un microcontroler PIC 16F872

Se poate face si cu 877A teoretic ar trebui sa mearga atata timp cat registri speciali sunt pe aceleasi pozitii si chiar daca nu accepta hexul montajul se merita facut din moment ce 16F877A este mai mult decat capabil sa controleze cateva relee si un afisaj si poate fi programat cu Mikro basic dupa programul explicat in documentatia respectiva.Modificarile la schema originala sunt minore e vorba de doua rezistente si un condensator.
Link spre comentariu

Ca incepator si "neprogramator" ci doar utilizator de solutii gata nu ma voi descurca daca nu se va incarca.Cum poate fi convins picul sa incarce hexul daca se opune?ce valori au rezistentele si condensatorii si cum se conecteaza?Softul Hex poate fi reafacut in codul sursa pt cazul daca as vrea sa modific anumiti parametri ( e decompliare cumva ce vreau eu)?

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

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