PIC16F84A - 7 Segmentni Displej

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
Vuzee01
Posts: 14
Joined: 19-03-2016, 10:05

PIC16F84A - 7 Segmentni Displej

Post by Vuzee01 »

Pozdrav svima, ucim se podesavanju input/output portova i imam sada 1 problem.

imam ovaj kod:

Code: Select all

#include <PIC.h>
void IO_inic(void)
{
	TRISB = 0;
	PORTB=164;
}


void main(void)
{
	IO_inic();
}
i po objasnjenu od pedja089 164 bi trebao biti broj 2, ali kod mene je broj 5, i kada npr stavim 146 za broj 5 meni onda bude broj 2, kao da obrne...

SLIKA: http://i.imgur.com/PaDmZGi.png
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: PIC16F84A - 7 Segmentni Displej

Post by pedja089 »

Verovatno nesto nije spojeno kako treba... Ili sam ja mozda pomesao brojeve. Ali to nije bitno...
U svakom slucaju postavi 7 tastera od displeja prema masi, vidi gde ti dodje koji segment, koji segmenti trebaju biti upaljeni za koji broj. Zatim spoj segmente na pinove mikrokontrolera, ispisi binarne kombinacije za sve cifre, pretvori ih u decimalne ili ne, po tvom izboru, i te brojeve salji na port. I onda ce ti sigurno raditi sa bilo kojim displejem i bilo kako da je spojeno na mikrokontroler.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: PIC16F84A - 7 Segmentni Displej

Post by Kukinjos »

Okrenuo si pinove na displeju, idu obrnutim redom.
Image
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
Vuzee01
Posts: 14
Joined: 19-03-2016, 10:05

Re: PIC16F84A - 7 Segmentni Displej

Post by Vuzee01 »

Hvala vam na brzim odgovorima, kao sto je rekao Kukinjos, pogresno sam pinove spoio, HVALA!

Dobar sam u c++ pa se trenutno samo ucim sa ovim I/O i kako da znam koji tris kad plaim i to :D Samo me zanima ako mi mozete objasniti ovo: Recimo ja hocu da upalim samo RB1, RB3, RB7, tj da im stavim logicke jedinice, kako da to zapisem u decimalnom obliku?

Usput evo kod, mozda ce nekome posluziti, znaci koristi se PIC16F84A i spojen je na 7 segmentni LED Display, i broji od 0 do 9 pa od 9 do 0 i tako kruzi (HI TECH C COMPILER koristen za kompaliranje):

Code: Select all

#include <PIC.h>
#define _XTAL_FREQ 4000000

int count = 0, stigao = 0, ms;

void Broji(int broj) {

	if(broj == 0) {
		PORTB = 192;
	}
	else if(broj == 1) {
		PORTB = 249;
	}
	else if(broj == 2) {
		PORTB = 164;
	}
	else if(broj == 3) {
		PORTB = 176;
	}
	else if(broj == 4) {
		PORTB = 153;
	}
	else if(broj == 5) {
		PORTB = 146;
	}
	else if(broj == 6) {
		PORTB = 130;
	}
	else if(broj == 7) {
		PORTB = 248;
	}
	else if(broj == 8) {
		PORTB = 128;
	}
	else if(broj == 9) {
		PORTB = 152;
	}
}

void IO_inic(void) {
	TRISB = 0;
	PORTB = 192;
}


void main(void) {
	IO_inic();
	while(1) {
		__delay_ms(200);
		if(stigao == 0) {
			count ++;
			if(count >= 9) {
				stigao = 1;
			}
			Broji(count);
		}
		else if(stigao == 1) {
			count --;
			if(count <= 0) {
				stigao = 0;
			}
			Broji(count);
		}
	}
}
kome treba proteus simulacija neka mi posalje PM!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: PIC16F84A - 7 Segmentni Displej

Post by pedja089 »

Treba i to da ima u kursu...
Ali nije mi jasno sta tacno ne razumes.
Kako se dodje do binarnog oblika? Ili samo pretvaranje iz binarnog u decimalni i obrnuto?
Vuzee01
Posts: 14
Joined: 19-03-2016, 10:05

Re: PIC16F84A - 7 Segmentni Displej

Post by Vuzee01 »

Kako dodje do binarnog, kako da ja napisem u binarnom kodu recimo samo da su upaljeni RB7, RB3, RB1 a ostale da ugasim kako da to zapisem u binarnom obliku ?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: PIC16F84A - 7 Segmentni Displej

Post by pedja089 »

Pogledaj datasheet za pic i pogledaj od cega se sastoji registar PORTx. I vrati se malo na registre i od cega se oni sastoje.
Post Reply