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

   

رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 06-12-2009, 09:36 PM المشاركة 1225   
x4 لم نصل للحل



اولا اشكر الجميع على مجهوداته ولكن حتى الان لم نصل للمطلوب:
الاخ lahoioui
لقد تم تجربة البرنامج الا انه يحافظ على الحالة حتى لو قمنا بفتح جميع المفاتيح والتي يجب وقتها ان يعود للوضع الطبيعي اي PORTB=0

اعلانات

lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 07-12-2009, 02:24 PM المشاركة 1226   
افتراضي


اولا اشكر الجميع على مجهوداته ولكن حتى الان لم نصل للمطلوب:
الاخ lahoioui
لقد تم تجربة البرنامج الا انه يحافظ على الحالة حتى لو قمنا بفتح جميع المفاتيح والتي يجب وقتها ان يعود للوضع الطبيعي اي PORTB=0
الأخت رانية لقد نسيت أن أضع : بعد rania مما يجعل البرنامج لا يشتغل وقد أصلحت ذلك

هذه الدارة





وهذا هو البرنامج


void main()
{
trisa=0xff;
trisb=0;
portb=0;
rania: while(1){
if(porta.f1==0&&porta.f2==0&&porta.f3==1){portb=3; goto rania;}
if(porta.f1==1&&porta.f2==0&&porta.f3==0){portb=2; goto rania;}
if(porta.f1==0&&porta.f2==1&&porta.f3==0){portb=1; goto rania;}
portb=0;}}

وهو شغال 100 في 100

ملاحظة : لقد نسيت سابقا أن أضع : بعد rania مما يجعل البرنامج لا يشتغل
وقد أصلحت ذلك .

وهذا الملف فيه برنامج المحاكة اذا أردت أن تجربي ذلك على الكمبيوتر
طبعا يجب أن يكون لديك
mikroc 8.2 و proteus 7.5


http://ifile.it/8ay2d0v/lahoioui.rar

وهذا البرنامج و هو يشتغل:







هنا مثلا حالات غير محققة





[IMG][/IMG]

ارجو أن يكون هذا ما أردته
لا تترددي في طرح الأسئلة فما تعلم من خجل من طرح سؤال


التعديل الأخير تم بواسطة : lahoioui بتاريخ 07-12-2009 الساعة 05:09 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

نبيل د
:: مهندس ::
تاريخ التسجيل: Mar 2008
المشاركات: 27
نشاط [ نبيل د ]
قوة السمعة:
قديم 07-12-2009, 05:54 PM المشاركة 1227   
افتراضي


السلام عليكم
ارجو المساعدة في الجملة الشرطية if لقد جربت الكثير من البرامج ولم اوفق والمطلوب هو ارسال الميكروكنترولر البيانات الى الكمبيوتر في المجال من 0الى 1023 و اليكم البرنامج
unsigned char i,j,k;//
unsigned long Vin,Tin;//
unsigned char op[12], temperature[64], Read_buffer[64];//
void interrupt()//
{//
HID_InterruptProc();//
TMR0L = 100; //
INTCON.TMR0IF = 0; //
}//
void main()//
{
ADCON1 = 0x0D;//
TRISA = 0xFF; //
TRISB = 0xFF;//
TRISD = 0xFF;//
INTCON=0;//
INTCON2=0xF5;//
INTCON3=0xC0;//
RCON.IPEN=0;//
PIE1=0;//
PIE2=0;//
PIR1=0;//
PIR2=0;//
UCFG = 0xFF;//

T0CON = 0x47; //
TMR0L = 100; //
INTCON.TMR0IE = 1; //
T0CON.TMR0ON = 1; //
INTCON = 0xA6; //


Hid_Enable(&Read_buffer, &temperature);//
ADCON2 = 0x88; //
for(; //
{

Vin = Adc_Read(1); //
LongToStr(Vin,op); //
for(j=0; j<4; j++)temperature[j]=' ';//
j=0;//
for(i=0;i<=11;i++)//
{
if(op[i] != ' ')
{
temperature[j]=op[i];//
j++;//
}
}

//k = PORTD;
//k = k<<8+PORTB;
if(k<1023)//o
Hid_Write(&temperature,4);//
}
Hid_Disable();//
}


Read more: http://www.qariya.com/vb/showthread.php?t=53468&page=8#ixzz0Z0h4xNIC


رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 07-12-2009, 09:46 PM المشاركة 1228   
x4


الاخ lahoioui :
شكرا جزيلا لك على الرد حيث حل جزء من المشكلة حيث المطلوب كالاتي:
في حالة كان portb=1 ومن ثم جعلت جميع المداخل مفتوحة فان portb يبقى على الحالة الاخيرة والمطلوب عودة ال portb الى حالة الصفر في اي وضع للمداخل غير الحالات الثالثة المطلوبة.


الصورة الرمزية ibrahim.omar
ibrahim.omar
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 60
نشاط [ ibrahim.omar ]
قوة السمعة:
قديم 08-12-2009, 02:10 AM المشاركة 1229   
افتراضي


حمدا لله على السلامه أ / احمد
====================

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

أتمنى ان تستفيدوا ... ومفقين دائما بإذن الله
اجمل خبر سمعته (ربنا ييسر لنا ولك الحال )
==========================
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين لا شريك له وبذلك أمرت وأنا أول المسلمين


ZikaMessi
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 19
نشاط [ ZikaMessi ]
قوة السمعة:
قديم 08-12-2009, 02:11 AM المشاركة 1230   
افتراضي


السلام عليكم جميعا
void main ()
{
trisa=0xff;
trisb=0x00;
portb=0;
while(1)
{
if(porta.f1==0&&porta.f2==1&&porta.f3==0)
portb.f0=1;
delay_ms(100);
if(porta.f1==1&&porta.f2==0&&porta.f3==0)
portb.f1=1;
delay_ms(100);
if(porta.f1==0&&porta.f2==0&&porta.f3==1)
portb=3;
delay_ms(100);
if(porta==0)
portb=0;
}
}
اتمنى اكون قدرت افهم فكرتك صح


رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 08-12-2009, 12:47 PM المشاركة 1231   
Thumbs up شكرا للجميع


الاخ ZikaMessi :
شكرا جزيلا لك فقد تم حل المشكلة ولكن قمت بربط المفاتيح على الارضي وال5 فولت على الpic اي لابد ان ياخذ امرين من مدخلين ليقوم بالتنفيذ ولقد قمت بعمل جميع الاحتمالات وكل شيء على ما يرام فلا مجال في مشروعي للخطا ولو باي شيء حيث من الممكن ان يقوم بدمج مصدرين للكهرباء 6600 فولت وبالتالي حدوث مشكلة على محولين قدرة


رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 08-12-2009, 01:13 PM المشاركة 1232   
افتراضي


ملاحظة :
في حالة تشغيل مفتاح رقم 2+3 يكون portb=2
ولكن عند فصل مفتاح 2 وابقاء 3 موصول وتشغيل بدلا منه 1 يصبح المخرج portb =3
مع العلم انه يجب ان يصفر المخرج الثاني ويبقى الاول .



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