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

   

magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 339
نشاط [ magdy_3 ]
قوة السمعة:
قديم 20-01-2016, 04:03 AM المشاركة 9   
افتراضي



السلام عليكم
اخى الكريم اسف على التاخير
ده كود جديد يارب يفى بلغرض
كود:
char kp,x;
const char g[]={0,1,4,7,15,2,5,8,0,3,6,9,15};
char keypadport at portd;
/////////////////////////////////////////////
void init_pic(){
trisb=trisc=0;
portb=portc=0; }
/////////////////////////////////////////////
void main(){
init_pic();
while (1){
kp=keypad_key_click();
while (kp&&kp!=4&&kp!=12){
 for(x=0;x<12;x++){
 if(kp)
 portb=g[kp];
 portc=0;
 delay_ms(250);
 kp=keypad_key_click();
 if(kp&&portb){
 portc=portb;
 portb=g[kp];
 kp=0;
break ; }}}}}

اعلانات

badr nahed
:: مهندس ::
تاريخ التسجيل: Sep 2015
المشاركات: 23
نشاط [ badr nahed ]
قوة السمعة:
قديم 21-01-2016, 11:44 AM المشاركة 10   
x1


جزاك الله ياصديقي الكود يعمل بطريقة رائعة وهو بسيط , تبقت مشكلة واحيدة بالكود
اظن انك لم تلحظها وهي عند متلا لو اريد الرقم خمسة يظهر لي ساظغط عليه تم جلست لوقت معين وعدت الرقم خمسة مزال ظاهر على الشاشة الاولة صفر على الشاشة التانية وانا اريد هده المرة الرقم 8 ساظغط عليه هنا تقع المشكلة سيظهر 58 بدلا من 8 حتى لو جلست بين الظغطتين يوم كامل لن تتغير النتيجة اتمنى ان تفهمني وشكر قبل كل شيء وفقك الله

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 21-01-2016, 12:05 PM المشاركة 11   
x4


جزاك الله ياصديقي الكود يعمل بطريقة رائعة وهو بسيط , تبقت مشكلة واحيدة بالكود
اظن انك لم تلحظها وهي عند متلا لو اريد الرقم خمسة يظهر لي ساظغط عليه تم جلست لوقت معين وعدت الرقم خمسة مزال ظاهر على الشاشة الاولة صفر على الشاشة التانية وانا اريد هده المرة الرقم 8 ساظغط عليه هنا تقع المشكلة سيظهر 58 بدلا من 8 حتى لو جلست بين الظغطتين يوم كامل لن تتغير النتيجة اتمنى ان تفهمني وشكر قبل كل شيء وفقك الله
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله و بركاته

اخي العزيز بخصوص هذه النقطة حضرتك ممكن تضغط على مفتاح شباك #
ليقوم البرنامج بمسح الشاشتين و بعدها اكتب الرقم الجديد .
الحل الثاني هو برنامج الاخ magdy .


و لو عندك اسئلة تحت امرك ربنا يوفقك


و الله المستعان و الموفق
و لينصرن الله من ينصره



badr nahed
:: مهندس ::
تاريخ التسجيل: Sep 2015
المشاركات: 23
نشاط [ badr nahed ]
قوة السمعة:
قديم 22-01-2016, 08:15 PM المشاركة 12   
Unhappy


السلام عليكم
اخى الكريم اسف على التاخير
ده كود جديد يارب يفى بلغرض
كود:
char kp,x;
const char g[]={0,1,4,7,15,2,5,8,0,3,6,9,15};
char keypadport at portd;
/////////////////////////////////////////////
void init_pic(){
trisb=trisc=0;
portb=portc=0; }
/////////////////////////////////////////////
void main(){
init_pic();
while (1){
kp=keypad_key_click();
while (kp&&kp!=4&&kp!=12){
 for(x=0;x<12;x++){
 if(kp)
 portb=g[kp];
 portc=0;
 delay_ms(250);
 kp=keypad_key_click();
 if(kp&&portb){
 portc=portb;
 portb=g[kp];
 kp=0;
break ; }}}}}
شكرا لك استاد مجدي كود بطريقة صحيحة جزاك الله خير معي طلب بسيط هناك بعض الاكواد في الكود بتاعك جديدة علي لو تشرحها لي وجزاك الله الف خير , الاكواد التي اريد شرحها في الصورة التالية


magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 339
نشاط [ magdy_3 ]
قوة السمعة:
قديم 23-01-2016, 01:46 AM المشاركة 13   
افتراضي


شكرا لك استاد مجدي كود بطريقة صحيحة جزاك الله خير معي طلب بسيط هناك بعض الاكواد في الكود بتاعك جديدة علي لو تشرحها لي وجزاك الله الف خير , الاكواد التي اريد شرحها في الصورة التالية
السلام عليكم
الشكر لله اخى
بنسبة للكواد التى لا تعرفها
اول كود دى مصفوفة مثل المتغير ولاكن بها اكثر من قيمة
وكل قيمة لها ترتيب فى المصفوفة
فا اول عنصر هو ترتيبه هو صفر وثانى عنصر ترتيبه 1 وهكذا
وعندما اريد القيمة الذى فى الترتيب 1 مثلا اكتب [ portb=g[1
ولاحظ هنا ان العنصر الذى فى الترتيب 1 هو العنصر رقم 2 فى المصفوفة
وهنا استفدت منها بدل من switch case
وتانى كود دى داله خارجية بكتب بها اوامر معينة وبستدعيها وقت الحاجة
فى هذه الدالة كتبت بها اوامر تهيئة البيك
كود:
trisa=trisb=0;
porta=portb=0;
وممكن الاستغناء عنها وكتابه هذه الاومر داخل الدالة الرائيسية

الكود الثالث هو استدعاء الداله حتى اهيء البيك
وكما ذكرت ممكن الاستغناء عنها بكتابة الاومر مباشرتا داخل الدالة الرائيسية
والكود الرابع
هو مثل
كود:
while(1)
ولاكن بشرط او اكثر وهنا ثلاثة
اول شرط ان تكون kp لا تساوى صفر
والثانى انها لا تساوى 4
والثالث لا تساوى 12
لان الصفر معناها انك لم تطغط على اى مفتاح
و 4 معناها انك طغط على *
و12 معناها طغط على #

الكود الخامس نفس شرح الرابع
والسادس قد شرح مع الكود الاول
واى سوال انا تحت امرك



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