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

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

ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 253
نشاط [ ahmadazez ]
قوة السمعة:0
قديم 08-03-2019, 09:39 PM المشاركة 1   
افتراضي دائرة حساس منسوب المياه في الخزان + ملئ تلقائي للخزان Twitter FaceBook Google+



دائرة للتحكم بتعبئة خزان ماء اوتوماتيكيا وعرض حالة الخزان على ليدات وشاشة LCD ومنع تشغيل المضخة في حال تعطل احد الحساسات

https://up.top4top.net/downloadf-1162yswfz1-rar.html



كود:
#include <mega32.h>       // تعريف المايكرو المستخدم من اجل التعامل مع مكتبة هذا المايكرو

bit x=0,y=0,z=0,on=0;    // تعريف اربع متحولات من نوع بت 

#include <alcd.h>        // تعربف مكتبة ال سي دي من اجل استخدام الدوال الخاصة بها
/////////////////////////////////////////////////////////////////////////////////////
void main(void)         
{                       
PORTA=0x07;            
DDRA=0xF8;

PORTC=0x00;
DDRC=0x00;

lcd_init(16);

WDTCR=0x0B;
//////////////////////////////////////////////////////////////////////////////////////
while (1)  
      {   
        #asm("wdr")   
                      
        /////////////////////////////////////
        if((PINA.0==0&&PINA.1==1&&PINA.2==1)||(PINA.0==1&&PINA.1==0&&PINA.2==1)||(PINA.0==0&&PINA.1==0&&PINA.2==1)||(PINA.0==0&&PINA.1==1&&PINA.2==0))
          { 
            PORTA.7=1; 
            PORTA.6=0; 
            PORTA.5=0;
            PORTA.4=0;
            PORTA.3=0;
            lcd_gotoxy(5,0);         //هذا الشرط اذا تم تعطل احد الحساسات الموجودة في الخزان 
            lcd_puts("ERROR");       //ستتوقف المضخة ويعطي كلمة خطأ على الشاشة
          }
        
         //////////////////////////////////////////////
        if(x!=PINA.0||y!=PINA.1||z!=PINA.2)
         { 
           x=PINA.0;         //هذا الشرط لعمل مسح للشاشة فقط عند تغير حالة احد الحساسات 
           y=PINA.1;         
           z=PINA.2;
           lcd_clear();
         } 
         //////////////////////////////////////////////
        if(PINA.0==0&&PINA.1==0&&PINA.2==0) // هذا الشرط عندما تكون الثلاث حساسات مغلقة دليل على ان الخزان ممتلئ
                                            //سيتم الدخول وتنفيذ التعليمات الموجودة ضمن الاقواس
          { 
            on=0;        //هذا البت تكون حالته البدائية صفر وعند فراغ الخزان سيتحول الى واحد ليمنع توقف المضخة اثناء تعبئة الخزان سنستعمله في الشروط قي الاسفل
            PORTA.6=0;   //مخرج المضخة متوقف عندما يكون الخزان ممتلئ
            PORTA.3=1;   //ليد الدلالة على ان الخزان ممتلئ
            PORTA.4=0;   //ليد الوسط مطفئ
            PORTA.5=0;   //ليد الافراغ مطفئ 
            PORTA.7=0;
            lcd_gotoxy(4,0); //مكان الكتابة على الشاشة في السطر صفر يعني العلوي والعامود الرابع يعني سنترك اربع محارف بدون الكتابة عليها ونكتب من بعدها لتكون الكلمة في الوسط
            lcd_puts("Full of"); //كلمة تعني ان الخزان ممتلئ يمكن تغييرها بالمعنى اللذي تريدين
            lcd_gotoxy(0,1);     // مكان الكتابة في السطر الثاني   
            lcd_puts(">>>>>>>>>>>>>>>>"); //كتابة هذا الرسم ليدل على امتلائ الخزان
          }
         //////////////////////////////////////////////
        if(PINA.0==1&&PINA.1==0&&PINA.2==0&&on==0) //هذا الشرط سيتم الدخول اليه عند الافراغ عندما يتم تغير حالة الحساسات من الاعلى نحو الاسفل 
                                                   //ويكون البت اللذي ذكرناه قيمته صفر دليل على اننا في حالة افراغ للخزان 
          {
            PORTA.6=0;
            PORTA.3=0;                          //هي التعليمات صارت واضحة مافي داعي لكتابتها 
            PORTA.4=1;
            PORTA.5=0;
            PORTA.7=0; 
            lcd_gotoxy(2,0);
            lcd_puts("Second Level");
            lcd_gotoxy(0,1);
            lcd_puts("<<<<<<<<<<<<....");
          }
         else if(PINA.0==1&&PINA.1==0&&PINA.2==0&&on==1) //هذا الشرط تتمة للشرط اللذي قبله ولكن عندما يكون الخزان قد افرغ سيتحول البت اون الى واحد 
                                                         //ليمنع ايقاف المضخة اثناء التعبئة والدلالة على اننا في حالة ملئ للخزان
          {
            PORTA.6=1;
            PORTA.3=0; 
            PORTA.4=1;
            PORTA.5=0;
            PORTA.7=0; 
            lcd_gotoxy(2,0);
            lcd_puts("Second Level");
            lcd_gotoxy(0,1);
            lcd_puts(">>>>>>>>>.......");
          }  
         ////////////////////////////////////////////// 
        if(PINA.0==1&&PINA.1==1&&PINA.2==0&&on==0)  // نفس الشرط السابق ولكن تحت الوسط
          {
            PORTA.6=0;
            PORTA.3=0; 
            PORTA.4=0;
            PORTA.5=1; 
            PORTA.7=0;
            lcd_gotoxy(3,0);
            lcd_puts("Level One");
            lcd_gotoxy(0,1);
            lcd_puts("<<<<<<<.........");
          } 
         else if(PINA.0==1&&PINA.1==1&&PINA.2==0&&on==1)
          {
            PORTA.6=1;
            PORTA.3=0; 
            PORTA.4=0;
            PORTA.5=1;
            PORTA.7=0; 
            lcd_gotoxy(3,0);
            lcd_puts("Level One");
            lcd_gotoxy(0,1);
            lcd_puts(">>..............");
          } 
         //////////////////////////////////////////////
        if(PINA.0==1&&PINA.1==1&&PINA.2==1)  //عند فراغ الخزان ستصبح قيمة جميع الحساسات واحد 
          { 
            on=1;      //سيصبح قيمة هذا البت المهم واحد  وتعمل المضخة والليد الخاص بالفراغ 
            PORTA.6=1;
            PORTA.3=0; 
            PORTA.4=0;
            PORTA.5=1;
            PORTA.7=0;
            lcd_gotoxy(5,0);
            lcd_puts("Empty");
            lcd_gotoxy(0,1);
            lcd_puts("................");
          }
         //////////////////////////////////////////////
           
      }
}

اعلانات
إضافة رد

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

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

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


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

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