بسم الله الرحمن الرحيم
بعد اذن البشمهندسين
الامر سهل تماما فى البرمجة ان شاء الله
ولكن هل ستستخدم الميكروكنترولر من اجل عمل تاخير زمنى فقط
فهذا اهدار للميكرو فى الحقيقة
ولو كان الامر كذلك يبقى حلول البشمهندس ماجد عباس افضل 100 مرة
وهى باستخدام دوائر التوقيت المعتمدة على 555 وغيرة
وعموما هذا كود بسيط للتاخير كما تريد كما قال البشمهندس حيدر علاء
بعتبار ان طرف الخرج فى الميكرو على البورت B الطرف الاول يعنى PORTB.f0
وعند ادخالك نبضة سالبة على الطرف الاول من البورت A اى PORTA.f0
سيقوم البك بتشغيل الريلية لمدة 4 ثوانى اى هذا مجرد زر او ماشابة
كود:
void main(){
TRISA=1;TRISB=0;portb=0;
while(1){
if(porta.f0==0){portb.f0=1;delay_ms(4000);portb.f0=0;}
}
}
وللعلم هناك طرق لكى يعمل البك تاخير لاى وقت تريدة وهناك طرق دقيقة ايضا لفعل ذلك