 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:332
|
|
10-03-2012, 10:23 PM
المشاركة 8
|
|
ت- الدخول إلى الحلقة الغير منتهية وفيها يتم :
1- الحساس الأول Sensor A :
كود:
while(1) //infinity loop
{
// Sensor A at AN0 with AN3 as Vref
adc_resultA = ADC_Read(0);
TEMPA_deg =(adc_resultA *98)/1000;// 1000/1024 (mv/div) / 10(mv/C)= 98/1000
ByteToStr(TEMPA_deg,TEMPA_string);// Change TEMPA_deg to string
Lcd_Out(1,9,TEMPA_string); // Display on LCD
Lcd_Chr(1, 12, 223);//Send 233 which is "degree" ASCII symbol
Lcd_Chr(1, 13, 'C');// Send C character
- قراءة الجهد التناظرى للحساس الأول المتصل بالطرف AR0 وتحويله إلى رقم مناظر (يقع بين 0 – 1023 ) بالدالة ADC_Read(0) ونسخ النتيجة للمتغير adc_resultA .
- تحويل محتويات المتغير adc_resultA من رقم يقع بين (0-1023) إلى رقم مناظر يدل على درجة الحرارة المئوية بضرب محتوياته فى 98 وقسمة ناتج الضرب على 1000(adc_resultA *98)/1000 ونسخ النتيجة إلى المتغير TEMPA_deg .
- تحويل الرقم الموجود بالمتغير TEMPA_deg إلى سلسلة نصية مناظرة TEMPA_string لنتمكن من عرضع على وحدة العرض باستخدام دالة التحويل ByteToStr .
- عرض السلسلة النصية الناتجة على وحدة العرض LCDLcd_Out(1,9,TEMPA_string) بالسطر الأول بدءا من العامود التاسع حتى نحصل على عرض متناسق على الشاشة حيث تأخذ أربعة أماكن كما ذكر سابقا .
- عرض رمز أو علامة الدرجة المئوية والتى تساوى العدد 233 بكود أسكى بالسطر الأول عند العامود الثانى عشر أى بعد النص السابق مباشرة باستخدام دالة إرسال حرف Lcd_Chr.
- وأخيرا عرض الحرف "C" ليدل على أن الدرجة مئوية , بعد رمز الدرجة مباشرة باستخدام دالة إرسال حرف Lcd_Chr .
2- الحساس الثانى Sensor B :
نكرر نفس الخطوات :
كود:
// Sensor B at AN1 with AN3 as Vref
adc_resultB= ADC_Read(1);
TEMPB_deg =(adc_resultB*98)/1000;
ByteToStr(TEMPB_deg,TEMPB_string);
Lcd_Out(2,9,TEMPB_string);
Lcd_Chr(2, 12, 223);
Lcd_Chr(2, 13, 'C');
//=============================================
|