وهذا عداد أخر
http://up.top4top.net/downloadf-top4...d9401-rar.html
حيث يعد لغايه 9999 ويتم خزن قراءه في ايبروم بحيث من تنطفئ الكهرباء فعند تشغيله مره اخرى يكمل العد من اخر رقم وصل اليه
الكود
كود:
#define segment portb
char y=0,kk=0 ,old1,old2;
int x=0 , old=0;
//char segment[]={192,249,164,176,153,146,130,248,128,144};
char seg[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()
{
cmcon=7;// disable analoge
trisb=0;
trisa=0;
if( eeprom_read(2)!=0xff ) {
old=(eeprom_read(2)*100)+EEPROM_Read(3) ;
}
delay_ms(50);
while(1)
{ //
for( x=old ;x<=9999;x++)
{
show_number();
old1=x/100;
// store value in eeprom
EEPROM_Write(2,old1); // x=1234/100 =12.34=12
EEPROM_Write(3,x%100); //%100 =34
}
old=0;
}
}
void show_number()
{
for( y=0; y<50;y++) // control of time by choising max value for y ;
{
porta.f0=0; porta.f1=1;porta.f2=1; porta.f3=1;
segment=seg[x/1000];
delay_ms(2);
segment=0;
//***********************************************//
porta.f0=1; porta.f1=0;porta.f2=1; porta.f3=1;
segment=seg[x%1000/100];
delay_ms(2);
segment=0;
//********************************************//
porta.f0=1; porta.f1=1;porta.f2=0; porta.f3=1;
segment=seg[x%1000%100/10];
delay_ms(2);
segment=0;
//******************************//
porta.f0=1; porta.f1=1;porta.f2=1; porta.f3=0;
segment=seg[x%1000%100%10];
delay_ms(2);
segment=0;
}
}
كما يمكن التعديل على داله show_number
كود:
void show_number()
{
for( y=0; y<50;y++) // control of time by choising max value for y ;
{
porta.f0=0; porta.f1=1;porta.f2=1; porta.f3=1;
segment=seg[x/1000];
delay_ms(2);
segment=0;
//***********************************************//
porta.f0=1; porta.f1=0;porta.f2=1; porta.f3=1;
segment=seg[(x/100)%10];
delay_ms(2);
segment=0;
//********************************************//
porta.f0=1; porta.f1=1;porta.f2=0; porta.f3=1;
segment=seg[(x/10)%10];
delay_ms(2);
segment=0;
//******************************//
porta.f0=1; porta.f1=1;porta.f2=1; porta.f3=0;
segment=seg[x%10];
delay_ms(2);
segment=0;
}
}
حيث التعديل في كيفيه في كود بلون احمر
تحياتي