بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
نسخة البرنامج الاخيرة , ان شاء الله قم بتقليل قيمة count مثلا count >= 4 لزيادة السرعة ثم جرب معها زيادة التاخير مثلا vdelay_ms(shift *3);.
نسخة البرنامج :
كود:
char letter_p[] ={0xff,0xff,0x09,0x09,0x0f,0x06};
char letter_i[] ={0x00,0x81,0xff,0xff,0x81,0x00};
char letter_c[] ={0x1c,0x3e,0x41,0x41,0x41,0x22};
char i=0, shift=0, count=0;
void TIMER0()iv 0x0004 ics ICS_AUTO{
if(INTCON.TMR0IF==1){INTCON.TMR0IF=0;
count++;
if(count>=8)
{
count=0;
shift++;
}
}
}
void main() { INTCON |=1<<GIE| 1<<T0IE;
OPTION_REG &=~1<<T0CS &~1<<PSA;
OPTION_REG |=0X07;
trisb=0;
portb=0;
cmcon=7;
trisa=0x01;
while(1){
while(porta.b0==1){}
vdelay_ms(shift *1);
for(i=0;i<6;i++){portb=letter_p[i]; delay_us(300);}
portb=0; delay_us(500);
for(i=0;i<6;i++){portb=letter_i[i] ; delay_us(300);}
portb=0; delay_us(500);
for(i=0;i<6;i++){portb=letter_c[i] ; delay_us(300);}
portb=0; delay_us(500);
}
}
و الله ولى التوفيق
اللهم اجعلنا مؤمنين حقا
و علمنا ما ينفعنا و ينفع بنا
اللهم اكتب حياة ترضيك و ميتة تضحكك منا