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

   

الصورة الرمزية azouvb.net
azouvb.net
:: عضو فضي ::
تاريخ التسجيل: May 2009
المشاركات: 152
نشاط [ azouvb.net ]
قوة السمعة:
قديم 12-01-2013, 03:42 PM المشاركة 9   
افتراضي



سلام عليكم

اخي ليس هناك مشكلة فقط اطلعنا على ما تريد و الى اين وصلت في مشروعك
و باذن الله سنساعدك بما نستطيع

في انتظارك اخي

اعلانات

م الاسكندرانى
:: مهندس متواجد ::
تاريخ التسجيل: May 2004
المشاركات: 143
نشاط [ م الاسكندرانى ]
قوة السمعة:
قديم 12-01-2013, 04:04 PM المشاركة 10   
افتراضي


شوف المشروع دا احد مشاريع التخرج خد منه بعض البيانات

http://www.kutub.info/downloads/1089...VR0XNpmY%3D%0A
اخى ميكرومان اكرمك الله الملف المرفق اكثر من رائع

وبه شرح وافى لكن انا اريد برنامج لو ضغط على رقم 1 مثلا يخرج نبضه على طرف كذا لمدة ثانيه مثلا مع اصدار صوت على buzer ولو ضغط على الرقم 4 يخرج 1 على طرف كذا ولو ضغط عليه مره اخرى يخرج 0 وهكذا ولو ضغط على مفتاح * مثلا يخرج اصوات تحذيريه متقطعه وان ضغط * مرة اخر الاصوات تفصل

هذا تصور بسيط لما اريد ان افعله فلذلك اريد منكم تعليمى التعامل مع dtmf حتى لااكون طالب ثقيل عليكم وجزاكم الله بكل الخير

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

م الاسكندرانى
:: مهندس متواجد ::
تاريخ التسجيل: May 2004
المشاركات: 143
نشاط [ م الاسكندرانى ]
قوة السمعة:
قديم 12-01-2013, 04:16 PM المشاركة 11   
افتراضي


سلام عليكم

اخي ليس هناك مشكلة فقط اطلعنا على ما تريد و الى اين وصلت في مشروعك
و باذن الله سنساعدك بما نستطيع

في انتظارك اخي
[CENTER]
اشكرك اخى على المتابعه

اولا - بالضغط على رقم 1 يخرج نبضه على كذا لمده ثانيه

ثانيا- باضغط على رقم 2 يخرج نبضه على كذا لمدة ثانيه

ثالثا- بالضغط على رقم 3 يخرج 1 وهكذا رقم 4-5-6-7 ثم بلضغط مره اخرى على اى منهم يخرج 0 بمعنى الرقم الواحد من 3-4=5=6=7 يعمل on=off

رابعا بالضغط على الرقم 8 يخرج صوت متقطع الى ان يتم فصله باضغط مره اخرى

خامسا - ال pin الذى سيكون عليه خرج الرقم 8 يخرج ايضا صوت فى حالة لو تم الضغط على sw متصل بالارضى ولايتم فصله الا من خلال الضغط على رقم 8 فقط بمعن انه لو ضغط عل السويتش مره اخرى لايبطل الصوت

سادسا- مفتاح * اذا تم الضغط عليه يفعل كل الاوامر

سابعا- مفتاح# اذا تم الضغط عليه يلغى كل الاوامر

ثامنا مفتاح 0 يلغى من العمل ولا يكون لى اى تاثير على الدائره

[/CENTER
]


الصورة الرمزية azouvb.net
azouvb.net
:: عضو فضي ::
تاريخ التسجيل: May 2009
المشاركات: 152
نشاط [ azouvb.net ]
قوة السمعة:
قديم 12-01-2013, 11:26 PM المشاركة 12   
افتراضي


سلام عليكم

اخي تفضل هذا الكود بالميكروسي و انت حوله للفلوكود
كما ذكرت سابقا ضع مخارج الايسي الاربعة في البورت فليكن البورت د بترتيب
portd.f0 = 8870 Q 1
portd.f1 = 8870 Q 2
portd.f2 = 8870 Q 3
portd.f3 = 8870 Q 4
اما الخرج رقم 5 والذي يحمل اسم STD
يمكنك عمله كرجل لاختبار لانه عند اتصال بهاتف المربوط ب 8870 و الضغط على اي رقم يخرج هذا الرجل 5 فولت لمدة قليلة جدا
لهذا يمكن القول في الكود

if(portd.f7==1){

هنا الكود الذي يلي اختبار الضغط على ازرار في الهاتف
..... اعمل كذا و كذا .......
}

و بهذا نصل لنهاية بهذا الكود

كود:
while(1){
if(porte.f0==1){
   if(porte.f0=0){
switch (portd){
               case 1:portb.f0=~portb.f0;delay_ms(65);                          
               case 2:portb.f1=~portb.f1;delay_ms(65);                           
               case 3:portb.f2=~portb.f2;delay_ms(65);                            
               case 4:portb.f3=~portb.f3;delay_ms(65);                           
               case 5:portb.f4=~portb.f4;delay_ms(65);                       
               case 6:portb.f5=~portb.f5;delay_ms(65);                           
               case 7:portb.f6=~portb.f6;delay_ms(65);                           
               case 8:portb.f7=~portb.f7;delay_ms(65);                           
               case 9:porta.f0=~porta.f0;delay_ms(65);                           
               case 10:porta.f1=~porta.f1;delay_ms(65);                          
               case 11:portb=0;porta=0;delay_ms(65);                             
                default:break;
   }
}      
}
}
اذن الكود هنا ماذا يقول لاحظ جيدا

1- جملة while لتكرار الكود بينه
2- جملة IF لاختبار كما قلنا الضغط على اي زر على الهاتف
3- جملة IF الثانية و هي اذا اصبحت رجل اختبار ازرار تساوي صفر بعدها نفذ الكود
الذي يليه
4 - SELECT CASE جعلت اسمه سويتش يمكنك تغيره بعد اعلان عنه في بداية الكود و يقتبر هنا بورت د و هو بورت الذي تضع فيه Q1.Q2.Q3.Q4
5 - نصل للاهم اختبار و هو قيمة البورت اذا كانت تساوي واحد يعني 00000001
ماذا يفعل اجعل PORTB.F0=1 بواحد يعني يشغل مثلا ليد و اذا قمت بضغط مرة اخرى
يجعل عكس حالة PORTB.F0=0 و هكذا لنهاية الكود حسب كل زر من ازرار
و انت طوره و غير ما تريد في مشروعك

في الاخير ارجو انني وصلت لك فكرة العمل و بالتوفيق للجميع
وسلام عليكم


م الاسكندرانى
:: مهندس متواجد ::
تاريخ التسجيل: May 2004
المشاركات: 143
نشاط [ م الاسكندرانى ]
قوة السمعة:
قديم 13-01-2013, 12:57 AM المشاركة 13   
افتراضي


سلام عليكم

اخي تفضل هذا الكود بالميكروسي و انت حوله للفلوكود
كما ذكرت سابقا ضع مخارج الايسي الاربعة في البورت فليكن البورت د بترتيب
portd.f0 = 8870 Q 1
portd.f1 = 8870 Q 2
portd.f2 = 8870 Q 3
portd.f3 = 8870 Q 4
اما الخرج رقم 5 والذي يحمل اسم STD
يمكنك عمله كرجل لاختبار لانه عند اتصال بهاتف المربوط ب 8870 و الضغط على اي رقم يخرج هذا الرجل 5 فولت لمدة قليلة جدا
لهذا يمكن القول في الكود

if(portd.f7==1){

هنا الكود الذي يلي اختبار الضغط على ازرار في الهاتف
..... اعمل كذا و كذا .......
}

و بهذا نصل لنهاية بهذا الكود

كود:
while(1){
if(porte.f0==1){
   if(porte.f0=0){
switch (portd){
               case 1:portb.f0=~portb.f0;delay_ms(65);                          
               case 2:portb.f1=~portb.f1;delay_ms(65);                           
               case 3:portb.f2=~portb.f2;delay_ms(65);                            
               case 4:portb.f3=~portb.f3;delay_ms(65);                           
               case 5:portb.f4=~portb.f4;delay_ms(65);                       
               case 6:portb.f5=~portb.f5;delay_ms(65);                           
               case 7:portb.f6=~portb.f6;delay_ms(65);                           
               case 8:portb.f7=~portb.f7;delay_ms(65);                           
               case 9:porta.f0=~porta.f0;delay_ms(65);                           
               case 10:porta.f1=~porta.f1;delay_ms(65);                          
               case 11:portb=0;porta=0;delay_ms(65);                             
                default:break;
   }
}      
}
}
اذن الكود هنا ماذا يقول لاحظ جيدا

1- جملة while لتكرار الكود بينه
2- جملة IF لاختبار كما قلنا الضغط على اي زر على الهاتف
3- جملة IF الثانية و هي اذا اصبحت رجل اختبار ازرار تساوي صفر بعدها نفذ الكود
الذي يليه
4 - SELECT CASE جعلت اسمه سويتش يمكنك تغيره بعد اعلان عنه في بداية الكود و يقتبر هنا بورت د و هو بورت الذي تضع فيه Q1.Q2.Q3.Q4
5 - نصل للاهم اختبار و هو قيمة البورت اذا كانت تساوي واحد يعني 00000001
ماذا يفعل اجعل PORTB.F0=1 بواحد يعني يشغل مثلا ليد و اذا قمت بضغط مرة اخرى
يجعل عكس حالة PORTB.F0=0 و هكذا لنهاية الكود حسب كل زر من ازرار
و انت طوره و غير ما تريد في مشروعك

في الاخير ارجو انني وصلت لك فكرة العمل و بالتوفيق للجميع
وسلام عليكم
السلام عليكم اشكرك اخى الغالى على اهتمامك ومجهودك جارى التجربه وساقوم بالرد عليكم


م الاسكندرانى
:: مهندس متواجد ::
تاريخ التسجيل: May 2004
المشاركات: 143
نشاط [ م الاسكندرانى ]
قوة السمعة:
قديم 13-01-2013, 03:21 PM المشاركة 14   
ha


السلام عليكم

رجاء شرح برنامج mplab لمعرفة كيفية كتابة الكود بداخله ونعتذر عن الاطاله على سيادتكم


م الاسكندرانى
:: مهندس متواجد ::
تاريخ التسجيل: May 2004
المشاركات: 143
نشاط [ م الاسكندرانى ]
قوة السمعة:
قديم 16-01-2013, 07:05 PM المشاركة 15   
افتراضي


الا يوجد شروحات بالقريه



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