السلام عليكم
10 ميكروتانية فوق و10 تحت معناها موجة مربعة بزمن دوري يساوي 20 ميكروتانية أو تردد 50 كيلوهرتز.
المتحكم Pic16F628A يتوفر على 3 تايمرات .
هذا كود بالتايمر2:
كود:
void InitTimer2(){
T2CON = 0x04;
PR2 = 49;
TMR2IE_bit = 1;
INTCON = 0xC0;
}
void Interrupt(){
if (TMR2IF_bit)
{
TMR2IF_bit = 0;
PORTB.F0 = ~PORTB.F0;
}
}
void main()
{
TRISB = 0;
PORTB = 0;
CMCON = 7;
InitTimer2();
while(1)
{
}
}
وهذه صورة الإعدادات التي هيأت بها المشروع في كومبيلر الميكروسي.
كما تلاحظ الطرف RA5 مهيأ كطرف للدخل وليس للريست يعني تتركه بدون توصيل مع الموجب في هذه التجربة.
وتحت الاعدادات صورة محاكاة على بروتوس تفيد أن
الكود يقوم بالمطلوب
لكن عليك بالتنفيذ العملي للحكم عليها: