|
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
|
|
نشاط [ مشتاق الله ]
قوة السمعة:
|
|
01-10-2016, 09:51 PM
المشاركة 270
|
|
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
جرب هذا المفروض يعرض الحروف لنصف دائرة تقريبا و الكود باللون الاحمر قم بزيادة الرقم 128 الى 200 فاكثر او تقليله و راقب الفرق و الله المستعان .
كود:
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};
unsigned int i=0, shift=0, count=0;
void varDelay_us( unsigned int uss);
void interrupt() iv 0x0004 ics ICS_AUTO {
if(INTCON.TMR0IF==1)
{
INTCON.TMR0IF=0;
count++;
if(count>=3)
{
count=0;
shift++;
}
}
if(INTCON.INTF==1)
{
shift++;
if(shift > 128){shift=0;}
vdelay_ms(shift/5);
INTCON.INTF=0;
// porta=~porta;
for(i=0;i<6;i++){portb=letter_p[i]<<1; delay_us(300);}
portb=0; delay_us(500);
for(i=0;i<6;i++){portb=letter_i[i]<<1 ; delay_us(300);}
portb=0; delay_us(500);
for(i=0;i<6;i++){portb=letter_c[i]<<1 ; delay_us(300);}
portb=0;
}
}
void varDelay_us( unsigned int uss){
for (i=0; i<(uss/5); i++)
{
delay_ms(5);
}
}
void main() {
INTCON.GIE= 1;
INTCON.INTE=1;
OPTION_REG.INTEDG=1;
/*INTCON.T0IE=1;
OPTION_REG &=~1<<T0CS &~1<<PSA ;
OPTION_REG |=0X07;*/
trisa=0;
porta=0;
trisb=1;
portb=0;
//cmcon=7;
while(1){ }
}
الله ولى التوفيق
اللهم اجعلنا مؤمنين حقا
و علمنا ما ينفعنا و ينفع بنا
اللهم اكتب حياة ترضيك و ميتة تضحكك منا
و احفظ حلب و اهلها و سائر بلادنا
|