السلام عليكم
اخي العزيز تفضل هذا كود يعمل
قمت بتعريف كل بت على حدا وهذا أفضل بكثير خصوصا عندما تتعامل مع مداخل ىنك لو عرفت الاطراف كمداخل ومن ثم لم تستخدمها في مشروع يعني لم يتم ربط معها مقاومه للحصول على Logic 0 or logic 1 فأن ذلك سيسبب لك تشويش كبير على البيك ولن يعمل مشروع لذا عليك أنتباه لهذه النقطه
لذا أقترح عليك حل هذه مشكله بتباع التعريف الاطراف الي انت تستخدمها وهذه تنفعك ب
1- سهوله تغير اي طرف البيك دون تغير الكود فكل ماعليك تغير في كود تعريف فقط
2- يحول لك ايعاز او كلمه البرمجيه الى كلمه مناسبه للحدث اوكلمه انت تعرفها وبتالي يكون فهم البرنامج أفضل
كود:
sbit sw1 at RA0_bit;
sbit sw1_dir at TRISA0_bit;
sbit sw2 at RA1_bit;
sbit sw2_dir at TRISA1_bit;
sbit sw3 at RA2_bit;
sbit sw3_dir at TRISA2_bit;
sbit sw4 at RA3_bit;
sbit sw4_dir at TRISA3_bit;
sbit sw5 at RA4_bit;
sbit sw5_dir at TRISA4_bit;
sbit sw6 at RA5_bit;
sbit sw6_dir at TRISA5_bit;
sbit output1 at RE0_bit;
sbit output1_dir at TRISE0_bit;
sbit output2 at RE1_bit;
sbit output2_dir at TRISE1_bit;
sbit output3 at RE2_bit;
sbit output3_dir at TRISE2_bit;
sbit output4 at RB0_bit;
sbit output4_dir at TRISB0_bit;
sbit output5 at RB1_bit;
sbit output5_dir at TRISB1_bit;
char output_flag=0;
void main()
{
adcon1=6;
/// define switches are input
sw1_dir=1; sw2_dir=1; sw3_dir=1;
sw4_dir=1; sw5_dir=1; sw6_dir=1;
// off all output
output1=0; output2=0; output3=0;
output4=0; output5=0;
/// define outputs are output
output1_dir=0; output2_dir=0; output3_dir=0;
output4_dir=0; output5_dir=0;
while(1)
{
if(sw1==1 && output_flag.f0==0)
{
output1=1;
output4=1;
output_flag.f0=1;
delay_ms(250);
}
if(sw2==1 && output_flag.f1==0)
{
output2=1;
output4=1;
output_flag.f1=1;
delay_ms(250);
}
if(sw3==1 && output_flag.f2==0)
{
output3=1;
output4=1;
output_flag.f2=1;
delay_ms(250);
}
if(sw4==1 && output_flag.f3==0)
{
output1=1;
output5=1;
output_flag.f3=1;
delay_ms(250);
}
if(sw5==1 && output_flag.f4==0)
{
output2=1;
output5=1;
output_flag.f4=1;
delay_ms(250);
}
if(sw6==1 && output_flag.f5==0)
{
output3=1;
output5=1;
output_flag.f5=1;
delay_ms(250);
}
if(sw1==0 && output_flag.f0==1)
{
output1=0;
output4=0;
output_flag.f0=0;
}
if(sw2==0 && output_flag.f1==1)
{
output2=0;
output4=0;
output_flag.f1=0;
}
if(sw3==0 && output_flag.f2==1)
{
output3=0;
output4=0;
output_flag.f2=0;
}
if(sw4==0 && output_flag.f3==1)
{
output1=0;
output5=0;
output_flag.f3=0;
}
if(sw5==0 && output_flag.f4==1)
{
output2=0;
output5=0;
output_flag.f4=0;
}
if(sw6==0 && output_flag.f5==1)
{
output3=0;
output5=0;
output_flag.f5=0;
}
}
}
http://up.top4top.net/downloadf-top4...dd331-rar.html