التحويل من تناظرى لرقمى A / D converter ولغة Basic والمترجم Proton :
مقدمة : الدالة (الروتين الفرعى) Adin :
الصيغة :
كود:
Variable = Adin channel number
الغرض :
قراءة القيمة من المحول من تناظرى إلى رقمى الموجود ضمن بناء الميكروكونترولر PIC .
العوامل :
Variable : هو متغير يتم تعريفه بمعرفة المستخدم .
Channel number : يمكن أن يكون ثابت أو متغير أو تعبيير .
مثال : قراءة القيمة من القناة "0" للمحول ADC ووضع النتيجة فى المتغير Var1 :
كود:
' Read the value from channel 0 of the ADC and place in variable Var1.
Declare Adin_Res = 10 ' 10-bit result required
Declare Adin_Tad = FRC ' RC OSC chosen
Declare Adin_Stime = 50 ' Allow 50us sample time
Dim Var1 as Word
TRISA = %00000001 ' Configure AN0 (PortA.0) as an input
ADCON1 = %10000000 ' Set analogue input on PortA.0
Var1 = Adin 0 ' Place the conversion into variable Var1
لعلك لاحظت وجود ثلاثة إعلانات قبل استخدام دالة قراءة الدخل التناظرى Adin .
إعلانات الأمر Adin :
يوجد ثلاثة إعلانات لتوجيهات من أجل الاستخدام مع الدالة Adin ، وهى :
الإعلان الأول : تحديد عدد بتات (دقة) نتيجة التحويل
الصيغة :
كود:
Declare Adin_Res 8, 10, or 12
الغرض :
تحديد عدد بتات النتيجة ، أو دقة التحويل .
إذا لم يتم استخدام هذا الإعلان ، عندئذ يكون الوضع الافتراضى للميكروكونترولر PIC هو المستخدم . على سبيل المثال ، سلسلة الميكروكونترولر 16F87X وضعها الافتراضى 10-bit .
الإعلان الثانى : تحديد مصدر ساعة المحول ADC
الصيغة :
كود:
Declare Adin_Tad 2_FOSC, 8_FOSC, 32_FOSC, 64_FOSC, or FRC.
الغرض :
تحديد مصدر ساعة المحول من تناظرى لرقمى . يوجد أربع خيارات لمصدر الساعة المستخدم بواسطة المحول من تناظرى لرقمى . الاختيار FRC يعنى استخدام المذبذب RC الداخلى وهو الوضع الافتراضى .
الإعلان الثالث : تحيد زمن أخذ العينات
الصيغة :
كود:
Declare Adin_Stime 0 to 65535 microseconds (us).
الغرض :
زمن أخذ العينة يسمح للمكثفات الداخلية للشحن بالكامل قبل أخذ العينة . هذا الزمن قد تكون قيمته من 0 إلى 65535 ميكروثانية . القيمة النموذجية تكون من 50 إلى 100 ميكروثانية . القيمة الافتراضية هى 50 ميكروثانية .
ملاحظات :
قبل استخدام الدالة Adin :
· يجب تحديد السجل TRIS لطرف الدخل المطلوب .
· أيضا ، يجب تحديد السجل ADCON1 تبعا للطرف المطلوب أن يكون دخل تناظرى ، وفى بعض الحالات يتم إعداد شكل نتيجة التحويل (المحازاة) .
· فى حالة تنفيذ تحويلات متعددة ، يجب استخدام تأخير زمنى صغير بعد الدالة Adin . وهذ يسمح بالمكثفات الداخلية للمحول من تناظرى لرقمى بالتفريغ الكامل كما يلى :
كود:
Again:
Var1 = Adin 3 ' Place the conversion into variable Var1
DelayUs 1 ' Wait for 1us
Goto Again ' Read the ADC forever
التحويل من تناظرى إلى رقمى مع الميكروكونترولر PIC16F87X :