Sari la conținut

Pic prajit?


Postări Recomandate

Salut,

am si eu 2 intrebari poate prostesti pentru unii: Eu unu pana acum am programat in c si vreau sa ma apuc sa programez pic-uri.

Ideea e ca mi-am luat un programator si un pic 16f877

L=am progamat portul c sa fie output-ul adica i-am dat valoarea 0x00.Am bagat soft-ul in programator, l-am scris pe procesor, am testat softul pe simulatoare si era ok.

Am alimentat pic-ul la 5 v am masurat un pin din portul c imi scotea 5 v si dupa o secunda 0 pentru ca ii pusesem delay 1 sec. Adica cred ca mergea :)).

Din greseala a doua oara cand am incercat iar am conectat pic-ul dar am inversat firele adica am pus din greseala plusul(vdd) la minus si vss-ul la plus

dupa cele intamplate l-am schimbat am incercat iar sa masor pe pinii din portul c si imi dadea 0 incontinuu.

L-am bagat in programator si i-am dat sa citeasca read..., si apoi sa rescrie programul ( fisier.HEX) si mergea sa il scriu dar cand il masuram iar nu scoatea nimic pe portul c.

Intrebarea mea: S-a prajit?

Desi ma descurc cu programarea sunt praf in electronica si as avea si eu nevoie de la voi de o schema pentru un led care sa pot sa il aprind si sa il sting la un anumit interval.

Mulktumesc frumos!!! pls help me

Editat de crazydream
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/3299-pic-prajit/
Distribuie pe alte site-uri

Incearca sa testezi PIC-ul cu urmatoarea schema:

post-6950-002432900 1289482011_thumb.jpg

si cu acest compilator:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en542849

 

Mai jos ai programul care merge adaptat pe orice PIC modificand corespunzator linia:

//16F84 configuration 
__CONFIG(0x3FF1);

 

Si programul test:

//include file
#include <pic.h>

//16F84 configuration 
__CONFIG(0x3FF1);

//portb  macro
#define PORTBIT(adr, bit)	((unsigned)(&adr)*8+(bit))

//portb pin assignment
static bit LED0 @ PORTBIT(PORTB, 0);
static bit LED1 @ PORTBIT(PORTB, 1);
static bit LED2 @ PORTBIT(PORTB, 2);
static bit LED3 @ PORTBIT(PORTB, 3);
static bit LED4 @ PORTBIT(PORTB, 4);
static bit LED5 @ PORTBIT(PORTB, 5);
static bit LED6 @ PORTBIT(PORTB, 6);
static bit LED7 @ PORTBIT(PORTB, 7);

//global variables
unsigned int i;		//for loop pause
unsigned int c;		//for loop event loop

//functions
void pause_action();		//pause
void blink_redgreen();		//blink red then green
void blink_baf();		//blink red and green back and forth
void alt_blink();		//every other red then green
void blink_sequence();		//blinks red one at a time
//end functions

//main function
void main(void)
{	
TRISB = 0x00;
PORTB = 0b00000000;	

while(1)
{

	blink_redgreen();
	blink_baf();
	alt_blink();
	blink_sequence();
	
};

}
//end main function

void pause_action()
{

for(i=0; i<4000; i++);
for(i=0; i<4000; i++);
for(i=0; i<4000; i++);
for(i=0; i<4000; i++);
for(i=0; i<4000; i++);
for(i=0; i<4000; i++);

};

void blink_redgreen()
{

for(c=0; c<10; c++)
{
		
	PORTB = 0b10101010;
	pause_action();			

	PORTB = 0b01010101;
	pause_action();
					
};

};

void blink_baf()
{

for(c=0; c<10; c++)
{

	PORTB = 0b10100101;
	pause_action();
					
	PORTB = 0b01011010;
	pause_action();
					
};

};

void alt_blink()
{

for(c=0; c<10; c++)
{

	PORTB = 0b10011001;
	pause_action();
					
	PORTB = 0b01100110;
	pause_action();
					
};

};

void blink_sequence()
{

for(c=0; c<10; c++)
{

	PORTB = 0b10010101;
	pause_action();
		
	PORTB = 0b01100101;
	pause_action();
		
	PORTB = 0b01011001;
	pause_action();
		
	PORTB = 0b01010110;
	pause_action();
		
};

};

 

Succes!

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/3299-pic-prajit/#findComment-30084
Distribuie pe alte site-uri

Daca solutia propusa mai sus vi se pare... complexa, atunci incercati sa testati microcontrolerul cu ajutorul acestui hex din arhiva:

Test PIC16F877.rar

In schema folositi un Q=8MHz si conectati niste leduri cu diam. de 3mm in serie cu niste rezistente de 470 Ohm la iesirea portului C, pe care il suspectati ca fiind defect. Daca portul C functioneaza, atunci ar trebui ca ledurile conectate la acel port sa se inchida /deschida la o secunda.

 

Numai Bine

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/3299-pic-prajit/#findComment-30087
Distribuie pe alte site-uri

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
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock