Yine pic16f877a ve bu sefer 00-99 sayıcı devresi aldığım hata.Nasıl çözebilirim?

Başlatan ferhatmacin, 12 Şubat 2012, 17:09:49

ferhatmacin

Arkadaşlar  biliyorum çok fazla  soru soruyorum ama  mazur görün =)   Bir    00-99  sayıcı devresi kurmaya çalıştım  pic16f877a  ile,  yine  7  segment displaylerden biriyle,   ne kadar düşündüysem de hatamı bulamadım.Sizce yanlışım nerede?   Önerilerinizi bekliyorum.Saygılarımla
http://c1202.hizliresim.com/u/d/2nsu5.png
#include<htc.h>
#define _XTAL_FREQ 8000000 
__CONFIG (UNPROTECT & WDTDIS & HS & LVPDIS & PWRTDIS & BORDIS);	
const unsigned char
segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void sayi(char i)
{
PORTC=0x02;
PORTB=segment[i/10];
__delay_ms(5);
PORTC=0x01;
PORTB=segment[i%10];
__delay_ms(5);
	}
	void main(void)
	{
		int i;
		ADCON1=0x07;
		TRISA=0x03;
		TRISB=0x00;
		TRISC=0x00;
		PORTA=0x00;
		PORTB=0x00;
		PORTC=0x00;
		while(1)
		{
			if(RA0==0)
			{
				while(!RA0);
				i++;
				if(i>99)
		{		i=0;
		}
}
		else if(RA1==0)
		{
			while(!RA1);
			i--;
			if(i<0)
		i=99;
		}
		sayi(i);
		}
		}



ferhatmacin


tekosis

programınız ortak katod displaye göre yazılmış ama simülasyonda kullandığınız display ca(ortak anot). displayı aynı özellikte ortak katod kullanın muhtemelen düzelir.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

AsHeS


sfaunl

Zamaninda 3 band bilardo icin 50 saniyeden geriye sayan uzaktan kumandali bir devre yapmistim. Devresini bulabildim ama programini kaybetmisim. Isine yarar mi bilmiyorum ama bir bak istersen...
http://dl.dropbox.com/u/41792030/50sn.zip

ferhatmacin

Sorun çözülmüştür.Gerçekten de yanlış malzmeden kaynaklanıyormuş hata. Sağolun