ا
السلام عليكم ورحمه الله ...
بفضل الله على اجزت مشروع عداد تصاعدى .. تنازلى بستخدام العرضات .. 7 segment ..
واريد الاحتفاظ بموقع البرنامج فى حال انقطاع التيار الكهربى ... بمعنى لو تم فصل التيار عن الدائرة ... وعند رجوع التيار ... البرنامج يكمل من أخر نقطة واقف عندها قبل ما التيار يفصل ...
وهذا كود البرنامج
كود:
unsigned short mask(unsigned short num);
unsigned int a1=0,m1=0,e1=0,w1=0;
void interrupt(){
portb=1;
portd=mask(a1);
delay_ms(2);
portb=2;
portd=mask(m1);
delay_ms(2);
portb=4;
portd=mask(e1);
delay_ms(2);
portb=8;
portd=mask(w1);
delay_ms(2);
INTCON=0b00100000;
TMR0=0;
}
#define D3 porte.f1=1;delay_ms(60);porte.f1=0;
void main() {
int m=0;
int a=0;
int e=0;
int w=0;
int x;
int k=0;
OPTION_REG=0b10000101;
INTCON=0b10100000;
TMR0=217;
trisb=0; portb=0;
trisd=0; portd=0;
trisc=1; portc=0;
trisa=0; porta=0;
trise=0; porte=0;
for(;;){
abdalla:
k=0;
if(k==0){porta.f0=0;}
porte.f1=0;
if(portc.f5==1){ porte.f1=1;delay_ms(300);porte.f1=0;porte.f1=1;delay_ms(300);porte.f1=0;porte.f1=1;delay_ms(300);porte.f1=0; k=1;if(k==1){ porta.f0=1;} goto loop;}
if(portc.f4==1){D3 porte.f0=1; delay_ms(300);porte.f0=0; delay_ms(300);}
if(portc.f0==1){D3 m1++;m++;delay_ms(200); if(m1==10){m1=0;}}
if(portc.f1==1){D3 a1++;a++;delay_ms(200); if(a1==10){a1=0;}}
if(portc.f2==1){D3 e1++;e++;delay_ms(200); if(e1==10){e1=0;}}
if(portc.f3==1){D3 w1++;w++;delay_ms(200); if(w1==10){w1=0;}}
/*a=a1;
e=e1;
w=w1;
m=m1;*/
}
start:
for(x=0;x<15;x++){porte.f1=1;delay_ms(30); porte.f1=0;delay_ms(30); }
goto abdalla;
loop:
a1=0;e1=0;m1=0;w1=0;
for(;;){
if(portc.f4==1){porte.f0=1; delay_ms(1);porte.f0=0; delay_ms(1);
a1++;
//if(k==1){ porta.f0=1;}
if(a1==10){a1=0;m1++;}
if(e1==10){e1=0;w1++;}
if(m1==10){m1=0;e1++;}
if(w1==10){w1=0;}
if(a1==a && e1==e && m1==m && w1==w){ goto start;}
}
}
}
unsigned short mask(unsigned short num){
switch (num){
case 0 : return 0xC0;
case 1 : return 0xCF;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x83;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;
}
}
مشكورر جدااا لكل من يحاول المساعدة