ADC هو المحول التناظري إلى الرقمي ، الذي يحول البيانات التناظرية إلى تنسيق رقمي ؛ عادة ما يتم استخدامه لتحويل الجهد التناظري إلى تنسيق رقمي. تحتوي الإشارة التناظرية على عدد لا حصر له من القيم مثل الموجة الجيبية أو خطابنا ، وتحولها ADC إلى مستويات أو حالات معينة ، والتي يمكن قياسها بالأرقام على أنها كمية مادية. بدلاً من التحويل المستمر ، تقوم ADC بتحويل البيانات بشكل دوري ، والتي تُعرف عادةً باسم معدل أخذ العينات. مودم الهاتفهو أحد أمثلة ADC ، والذي يستخدم للإنترنت ، فهو يحول البيانات التناظرية إلى بيانات رقمية ، بحيث يمكن للكمبيوتر أن يفهمها ، لأن الكمبيوتر يمكنه فقط فهم البيانات الرقمية الميزة الرئيسية لاستخدام ADC هي أنه يمكن التخلص من الضوضاء بكفاءة من الإشارة الأصلية ويمكن للإشارة الرقمية أن تنتقل بكفاءة أكبر من الإشارة التناظرية. هذا هو السبب في أن الصوت الرقمي واضح جدًا أثناء الاستماع.
في الوقت الحاضر ، هناك الكثير من وحدات التحكم الدقيقة في السوق والتي تحتوي على ADC مع قناة واحدة أو أكثر. وباستخدام سجل ADC الخاص بهم ، يمكننا التفاعل. عندما نختار عائلة متحكم 8051 لعمل أي مشروع ، نحتاج فيه إلى تحويل ADC ، فإننا نستخدم ADC خارجي. بعض رقائق ADC الخارجية هي 0803،0804،0808،0809 وهناك المزيد. اليوم سنقوم بواجهة ADC ذات 8 قنوات مع متحكم AT89s52 وهو ADC0808 / 0809.
المكونات:
- 8051 متحكم (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- المقاوم (1 ك ، 10 ك)
- وعاء (10 كيلو × 4)
- مكثف (10 فائق التوهج ، 1000 فائق التوهج)
- الصمام الأحمر
- لوحة الخبز أو ثنائي الفينيل متعدد الكلور
- 7805
- 11.0592 ميجا هرتز كريستال
- قوة
- توصيل الأسلاك
ADC0808 / 0809:
ADC0808 / 0809 هو جهاز CMOS متآلف ومنطق تحكم متوافق مع المعالج الدقيق وله 28 دبوسًا يعطي قيمة 8 بت في الإخراج ودبابيس إدخال ADC ذات 8 قنوات (IN0-IN7). تبلغ دقتها 8 حتى تتمكن من ترميز البيانات التناظرية في أحد المستويات 256 (2 8). يحتوي هذا الجهاز على ثلاثة خطوط عناوين هي: ADDA و ADDB و ADDC لاختيار القناة. يوجد أدناه مخطط الدبوس لـ ADC0808:
يتطلب ADC0808 / 0809 نبضة ساعة للتحويل. يمكننا توفيره باستخدام المذبذب أو باستخدام متحكم دقيق. في هذا المشروع قمنا بتطبيق التردد باستخدام متحكم دقيق.
يمكننا تحديد أي قناة إدخال باستخدام خطوط العنوان ، مثلما يمكننا تحديد سطر الإدخال IN0 عن طريق الحفاظ على سطور العناوين الثلاثة (ADDA و ADDB و ADDC) منخفضة. إذا أردنا تحديد قناة الإدخال IN2 ، فنحن بحاجة إلى إبقاء ADDA و ADDB منخفضًا و ADDC مرتفعًا. لاختيار جميع قنوات الإدخال الأخرى ، ألق نظرة على الجدول المحدد:
اسم قناة ADC |
رقم التعريف الشخصي ADDC |
ADDB PIN |
ADDA PIN |
IN0 |
منخفض |
منخفض |
منخفض |
في 1 |
منخفض |
منخفض |
عالي |
في 2 |
منخفض |
عالي |
منخفض |
في 3 |
منخفض |
عالي |
عالي |
IN4 |
عالي |
منخفض |
منخفض |
IN5 |
عالي |
منخفض |
عالي |
IN6 |
عالي |
عالي |
منخفض |
IN7 |
عالي |
عالي |
عالي |
سيركويت دسكريبتيون:
تعتبر دائرة "Interfacing ADC0808 بـ 8051" معقدة بعض الشيء وتحتوي على المزيد من أسلاك التوصيل لتوصيل الجهاز ببعضه البعض. في هذه الدائرة ، استخدمنا بشكل أساسي AT89s52 كمتحكم 8051 و ADC0808 ومقياس الجهد وشاشة LCD.
شاشة LCD مقاس 16 × 2 متصلة بمتحكم دقيق 89s52 في وضع 4 بت. يتم توصيل دبوس التحكم RS و RW و En مباشرة بالدبوس P2.0 و GND و P2.2. ويتم توصيل دبوس البيانات D4-D7 بالدبابيس P2.4 و P2.5 و P2.6 و P2.7 من 89s52. يتم توصيل دبوس الإخراج ADC0808 مباشرة بالمنفذ P1 من AT89s52. يتم توصيل دبابيس سطر العنوان ADDA و ADDB و AADC في P3.0 و P3.1 و P3.2.
يتم توصيل ALE (تمكين مزلاج العنوان) و SC (بدء التحويل) و EOC (نهاية التحويل) و OE (تمكين الإخراج) ودبابيس الساعة في P3.3 و P3.4 و P3.5 و P3.6 و P3.7.
وقد استخدمنا هنا ثلاثة مقاييس جهد موصولة عند الطرف 26 و 27 و 28 من ADC0808.
يتم استخدام بطارية 9 فولت ومنظم جهد 5 فولت وهو 7805 لتشغيل الدائرة.
العمل:
في هذا المشروع ، قمنا بتوصيل ثلاث قنوات من ADC0808. وللتوضيح استخدمنا ثلاثة مقاومات متغيرة. عندما نقوم بتشغيل الدائرة ، يقوم المتحكم الدقيق بتهيئة شاشة LCD باستخدام الأمر المناسب ، ويعطي الساعة لشريحة ADC ، ويحدد قناة ADC باستخدام سطر العنوان ويرسل إشارة بدء التحويل إلى ADC. بعد ذلك ، يقرأ ADC أولاً إدخال قناة ADC المحدد ويعطي إخراجها المحول إلى متحكم دقيق. ثم يظهر الميكروكونترولر قيمته عند موضع Ch1 في شاشة LCD. ثم يغير متحكم قناة ADC باستخدام سطر العنوان. ثم يقرأ ADC القناة المحددة ويرسل الإخراج إلى متحكم. وتظهر على شاشة LCD باسم Ch2. ومثل الحكمة للقنوات الأخرى.
عمل ADC0808 يشبه إلى حد كبير عمل ADC0804. في هذا ، يوفر أول متحكم دقيق إشارة ساعة 500 كيلو هرتز إلى ADC0808 ، باستخدام المقاطعة Timer 0 ، حيث تتطلب ADC إشارة الساعة للعمل. الآن يرسل متحكم دقيق إشارة منخفضة إلى عالية المستوى إلى دبوس ALE (دبوسه العالي النشط) من ADC0808 لتمكين المزلاج في العنوان. ثم من خلال تطبيق إشارة HIGH إلى LOW Level على SC (بدء التحويل) ، يبدأ ADC التحويل التناظري إلى الرقمي. ثم انتظر حتى يصبح دبوس EOC (نهاية التحويل) منخفضًا. عندما تصبح EOC منخفضة ، فهذا يعني أن التحويل التناظري إلى الرقمي قد اكتمل وأن البيانات جاهزة للاستخدام. بعد ذلك ، يمكّن الميكروكونترولر خط الإخراج من خلال تطبيق إشارة عالية إلى منخفضة على دبوس OE الخاص بـ ADC0808.
يعطي ADC0808 ناتج تحويل النسبة المتري عند أطراف الخرج. ويتم إعطاء صيغة التحويل الإشعاعي من خلال:
V في / (V fs -V z) = D x / (D max -D min)
أين
V في غير جهد الدخل لتحويل
V خ هو واسع النطاق الجهد
V ض صفر الجهد
D س هو البيانات تشير يجري قياس
D ماكس هو أقصى حد البيانات
D دقيقة هو الحد الأدنى البيانات
شرح البرنامج:
في البرنامج ، أولاً وقبل كل شيء ، نقوم بتضمين رمل ملف الرأس الذي يحدد دبابيس متغيرة ومدخلات ومخرجات لـ ADC و LCD.
# تضمن
تم إنشاء وظيفة لإنشاء التأخير (تأخير باطل) ، جنبًا إلى جنب مع بعض وظائف LCD مثل تهيئة LCD وطباعة السلسلة وأوامر LCD وما إلى ذلك. يمكنك العثور عليها بسهولة في Code. تحقق من هذه المقالة لمعرفة واجهة LCD مع 8051 ووظائفها.
بعد هذا في البرنامج الرئيسي ، قمنا بتهيئة شاشة LCD وتعيين دبابيس EOC و ALE و EO و SC وفقًا لذلك.
باطل رئيسي () {int i = 0 ؛ eoc = 1 ؛ ale = 0 ؛ oe = 0 ؛ الشوري = 0 ؛ TMOD = 0x02 ؛ TH0 = 0xFD ؛ lcd_ini () ، lcdprint ("ADC 0808/0809") ؛
ثم يقرأ البرنامج ADC ويخزن ناتج ADC في متغير ثم يرسله إلى LCD بعد النظام العشري لتحويل ASCII ، باستخدام دالات read_adc () void و void adc (int i):
read_adc باطل () {number = 0 ؛ ale = 1 ؛ الشوري = 1 ؛ تأخير (1) ؛ ale = 0 ؛ الشوري = 0 ؛ بينما (eoc == 1) ؛ بينما (eoc == 0) ؛ oe = 1 ؛ رقم = منفذ إدخال ؛ تأخير (1) ؛ oe = 0 ؛ } void adc (int i) {switch (i) {case 0: ADDC = 0؛ ADDB = 0 ؛ ADDA = 0 ؛ lcdcmd (0xc0) ؛ read_adc () ،