قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 20-01-2018, 12:47 PM المشاركة 1   
ha مشكلة بالبك 16f877A Twitter FaceBook Google+




السادة الافاضل
هل ممكن ان اجعل البورت A في البك 16f877a يقوم بقراءة الفولت وايضا اتعامل معه على انه digital i/o
على سبيل المثال :-
porta.b0 as ADC
porta.b1 as digital output
porta.b2 as digital input
porta.b3 as digital input
porta.b4 as digital input
porta.b5 as digital input
وكيفية كتابة الكود
ارجوا الافادة
وشكرا

اعلانات

محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 20-01-2018, 08:07 PM المشاركة 2   
افتراضي



السادة الافاضل
هل ممكن ان اجعل البورت A في البك 16f877a يقوم بقراءة الفولت وايضا اتعامل معه على انه digital i/o
على سبيل المثال :-
porta.b0 as ADC
porta.b1 as digital output
porta.b2 as digital input
porta.b3 as digital input
porta.b4 as digital input
porta.b5 as digital input
وكيفية كتابة الكود
ارجوا الافادة
وشكرا
1- ممكن ..
علما بان porta.b4 دائما digital input
ولا يمكن برمجته دخل أنالوج:


2- المسجل الذي يحدد هل الدخول ديجتال أم أنالوج هو المسجل adcon1
وبالضبط البتات الاربع الاولى من bit0 إلى bit3.
في حالتك قيمة هذه البتات الاربع هي 1110 ،كما ستلاحظ في الصورة المرافقة.
يكفي إذن أن تكتب هذا السطر في مكان الاعدادات:
كود:
adcon1=0b10001110;
(كتبت القيمة بالتنائي ممكن كتابتها بالعشري أو غيره) ..
طبعا مع برمجة porta كدخل بالتعليمة المعروفة:
كود:
 trisa=255;
طبعا تضيف تعليمات تشغيل المحول أنالوج / ديجتال المعروفة
إضافة إلى تعليمات الدخول التي تريد .

3- الجدول من الداتا شيت مع بعض التوضيحات:

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 21-01-2018, 08:12 PM المشاركة 3   
افتراضي مثال بسيط فلاشر متحكم في سرعته للتوضيح..


متابعة لما سبق هذا مثال عن كود بسيط للتوضيح :
كود:
char select= 0;
unsigned int adc;
void main()
{
        adcon1=0b10001110; // or:   adcon1= 0x8E ;
        porta = 0;
        trisa = 255;
        trisb = 0; portb = 0;

        while (1)
        {    adc = ADC_Read(0); 
                
                // 1
                if (porta.f1 == 1)
                 { delay_ms(100); select= 1;}
                if (select== 1)
                 { portb = 0b11111111; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
                         
                 //2
                if (porta.f2 == 1)
                 { delay_ms(100); select= 2;}
                if (select== 2)
                 { portb = 0b01010101; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
                          
                 //3
                if (porta.f3 == 1)
                 { delay_ms(100); select= 3;}
                if (select== 3)
                 { portb = 0b11110000; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
                            
                 // 4
                if (porta.f4 == 1)
                 { delay_ms(100); select= 4;}
                if (select== 4)
                 { portb = 0b00001111; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
                         
                         
                 // off
                if (porta.f5 == 1)
                 { delay_ms(100); select= 0; portb = 0;}
                         
                         
        }
}
التطبيق عبارة عن برمجة طرف واحد من Porta هو الطرف RA0 كدخل أنالوج موصول بالرجل الوسطى لمقاومة متغيرة .
على هذه الرجل نحصل على فولت متغير يدخل على الدخل الأنالوج.
و باقي الأطراف كبرمجت كدخول ديجيتال موصولة ب 5 مفاتيح .
والفكرة هي فلاشر بسيط ب 4 حركات ضوئية.
يتم اختيار الحركات بواسطة 4 أزرار
والزر الخامس off يوقف كل الحركات.
والمقاومة المتغيرة تتحكم في السرعة :


محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 22-01-2018, 11:00 AM المشاركة 4   
افتراضي


لو لديك أسئلة ممكن تضعها..

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 12:58 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025