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

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

abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:0
قديم 13-05-2016, 09:35 AM المشاركة 1   
افتراضي مساعدة رجاء في برمجة بلغة المكرو سي Twitter FaceBook Google+



السلام عليكم
اساتذتنا الافاضل

احتاج مساعدة في البرمجة لجعل البك ينفذ برنامجين معا

مثلا ان يختبر درجة الحرارة بشكل دائم وينفذ بعض الاشياء للمحافظة عليها وبنفس الوقت يقوم بتشغيل حمل في وقت معين مثلا كل ساعتين

وهذا الكود الذي كتبته
// LCD module connections
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISD2_bit;
sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
// End LCD module connections

int temp; int i ; char txt[7];

void main()
{

trisc.B1=0; portc.B1=0;
trisc.B0=0; portc.B0=0;
ADC_Init(); Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,1,"Hatchery eggs");
delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"designd by");
delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"abo hosen");
delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1,1,"Temp=");


while(1)
{
temp = ADC_Read(0);
temp=temp*500.0/1023.0;
IntToStr(temp, txt);
Lcd_Out(1,8,txt);

if(temp>38)
{
portc.B0=0;
Lcd_out (2,1,"Overheat");
}


else
{
PORTC.B0=1;

Lcd_out (2,1,"Normal " );
delaY_ms(500);
}

if(temp<36)
{
portc.B1=0;

Lcd_out (2,10,"fan off");
}
else
{
PORTC.B1=1;

Lcd_out (2,10,"fan on " );
}

}
}

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-05-2016, 10:05 AM المشاركة 2   
افتراضي


طلبك غير واضح ...

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

abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:0
قديم 13-05-2016, 01:27 PM المشاركة 3   
افتراضي


اخي العزيز
طلبي انه بدي حرك محرك كل ساعتين واتحكم بالحرارة مع عرضها على lcd
انا كتبت برنامج الحرارة ووضعتة ضمن حلقة while اللانهائية ولكن كيف استطيع
ان اجعل المعالج ينفذ امر التحريك كل ساعتين وهو داخل حلقة اللانهائية لمقياس الحرارة


ABOUYAGINE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2012
المشاركات: 61
نشاط [ ABOUYAGINE ]
قوة السمعة:0
قديم 13-05-2016, 01:43 PM المشاركة 4   
افتراضي


اخي العزيز
طلبي انه بدي حرك محرك كل ساعتين واتحكم بالحرارة مع عرضها على lcd
انا كتبت برنامج الحرارة ووضعتة ضمن حلقة while اللانهائية ولكن كيف استطيع
ان اجعل المعالج ينفذ امر التحريك كل ساعتين وهو داخل حلقة اللانهائية لمقياس الحرارة
السلام عليكم
اذا يكون اردت ان يكون الخرج بهد ساعتين بالضبط فلابد من الاستعانة ببرنامج ساعة
اما اذا كان كونتر فذلط شئ اخر ,كما اشار الاستاذ حيدر فطلبك غير واضح


abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:0
قديم 13-05-2016, 02:12 PM المشاركة 5   
افتراضي


اخي انا جربت الكونتر ضمن الحلقة بس صار في تأخير على برنامج الحرارة
فا اريد الاستعانة ببرنامج الساعة الذي ذكرت بحيث اشغل الحمل وهو ميتور كل ساعتين مقدار دقيقة ونصف ويكون ضمن المكرو دون استخدام العدادات مثال اي سي 4060
ثانيا اخي هل قرأت البرنامج الذي كتبته؟؟
انا اخي اعمل على دارة لفقاسة بيض تحكم الي كامل من جهة درجة الحرارة والرطوبة وتقليب البيض واريد من المكرو ان يبقى يراقب درجة الحرارة بدقة وبنفس الوقت يعد دقائق بحيث مرت ساعتين يشغل ميتور التقليب دون التأثير على دقة مقياس الحرارة هذا كل ما اريده وشكرا على ردكم
ملاحظة المعالج المستخدم pic16f877a


التعديل الأخير تم بواسطة : abo hosen بتاريخ 13-05-2016 الساعة 02:20 PM

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-05-2016, 02:20 PM المشاركة 6   
افتراضي


داخل الحلقة التكرارية تعمل عداد متزايد و ليكن اسمه counter
بعدها تكتب عبارة تأخير زمني بمقدار 1 ثانية
بعدها تختبر قيمة العداد اذا كانت اكبر من 7200 تصفر العداد و تدور المحرك

كود:
while(1)
{i++;
delay_ms(1000);
if(i > 7200){i=0;portb.f0=1;}
}

حيدر علاج حسن

abo hosen
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2015
الدولة: turky
المشاركات: 115
نشاط [ abo hosen ]
قوة السمعة:0
قديم 13-05-2016, 02:22 PM المشاركة 7   
افتراضي


ممكن اخي البرنامج كاملالتعديل كامل لو بدي اخذ من وقتك قليلا ومشكور على الرد السريع


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-05-2016, 02:31 PM المشاركة 8   
افتراضي


اوك راح اكتبلك كود المحرك وانت اضف كود الشاشة عليه .
لكن على اي منفذ ستوصل المحرك ؟

حيدر علاج حسن
إضافة رد

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

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

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


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

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