السلام
بعد شرح الاخ ناصر لعمل ليد متريكس تم وبحمد الله كتابة كلمت متحركة
لاكن انا اريد ان اضيف سوتش عند الضغط عليه يشتعل ليد
لاكن لم لنجخ مع ان استخدمة جملة IF
ارجو منكم تعديل الكود
المشروع في المرفقات
التعديل عند الضغط sw1 يشتعل الليد الاول و عند الضغط على sw2
يشتعل الليد الثاني
http://www.4shared.com/rar/CY2UIUsDba/matrix88.html
|
وعليكم السلام ورحمة الله وبركاتة
المشكلة ليست لديك انما فى البورت A فهو بة بعض الرجول لا تعمل الا بتفعيل الكود
ماعليك من ذلك الان لانى انا نفسى لا اتذكرها الان هل هى ادكون او كمكون .
المهم :
يكفيك ان تتعرف كيف تجرى الامور وتابع الشروحات
لانك مازلت فى البدايات الاولى وسوف تجد ان القادم افضل من ناحية استخدام مسجلات ازاحة وحجم ماتركس اكبر وكود مرتب ومختصر قليلا
بالرغم من انى لم اختصر الاكواد لكى نفهم سويا الامور خطوة بخطوة
قم بوضع سويتش على البن رقم 1من البورت A لتشغيل الماتركس واضائة البن 0 من البورت سى كما اردت فى الكود
وايضا قم بوضع سويتش اخر على البن 5 من البورت A
ولاحظ الفرق بين الكود هذا وكودك
كود:
char x41= 0b00000000;
char x40= 0b10110100;
char x39= 0b10110100;
char x38= 0b11111100;
char x37= 0b11111100;
char x36= 0b00000000;
char x35= 0b00100000;
char x34= 0b00110000;
char x33= 0b00111100;
char x32= 0b00000000;
char x31= 0b00111100;
char x30= 0b00100100;
char x29= 0b11111100;
char x28= 0b00000000;
char x27= 0b10111100;
char x26= 0b10111100;
char x25= 0b00000000;
char x24= 0b00001100;
char x23= 0b00001100;
char x22= 0b11111100;
char x21= 0b11111100;
//////// libre
char x20= 0b00000000;
char x19= 0b10111100;
char x18= 0b10111100;
char x17= 0b00000000;
char x16= 0b00000000;
char x15= 0b11001100;
char x14= 0b01111000;
char x13= 0b00110000;
char x12= 0b01111000;
char x11= 0b11001100;
char x10= 0b00000000;
char x9= 0b11111100;
char x8= 0b10100000;
char x7= 0b11111100;
char x6= 0b00000000;
char x5= 0b11000000;
char x4= 0b11111100;
char x3= 0b11111100;
char x2= 0b11000000;
char x1= 0b00000000;
//////// TAXi
char n;
void main()
{
ADCON1=0x0F; // Configure AN pins as digital
CMCON= 7;
trisA.f0=1 ;
TRISB=0;
PORTB=0;
TRISc=0;
PORTc=0;
TRISd=0;
PORTd=0;
while (1) {
if ( portA.f1==1){ portc.f0=1; delay_ms(50); }
if ( portA.f5==3){ portc.f0=0; portb=0; portd=0; delay_ms(50); }
if(portc.f0==1){
for(n=0;n<100;n++){
/////////////
PORTd=0B11111011;
PORTB=x6; delay_us(300);
////////////
PORTd=0B11110111;
PORTB=x5; delay_us(300);
///////////
PORTd=0B11101111;
PORTB=x4; delay_us(300);
///////////////////
PORTd=0B11011111;
PORTB=x3; delay_us(300);
////////////
PORTd=0B10111111; // ÒíÏ ÇáÇÚãÏÉ
PORTB=x2; delay_us(300);
///////////
PORTd=0B01111111;
PORTB=x1; delay_us(300);
// set switch is pressed
}
//
x1=x2;
x2=x3;
x3=x4;
x4=x5;
x5=x6;
x6=x7;
x7=x8;
x8=x9;
x9=x10;
x10=x11;
x11=x12;
x12=x13;
x13=x14;
x14=x15;
x12=x13;
x13=x14;
x14=x15;
x15=x16;
x16=x17;
x17=x18; ////////////////// ÇáÇÓØÑ
x18=x19;
x19=x20;
x20=x21;
x21=x22;
x22=x23;
x23=x24;
x24=x25;
x25=x26;
x26=x27;
x27=x28;
x28=x29;
x29=x30;
x30=x31;
x31=x32;
x32=x33;
x33=x34;
x34=x35;
x35=x36;
x36=x37;
x37=x38;
x38=x39;
x39=x40;
x40=x41;
x41=x1;
}
}
}
وعموما يمكنك التعديل واستخدام البورت سى لعمل السوتشات
او تابع الشروحات واى استفسار سوف تجد الردود باذن الله
بالتوفيق ان شاء الله