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

   

الصورة الرمزية facenewlife
facenewlife
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2011
الدولة: المغرب
المشاركات: 77
نشاط [ facenewlife ]
قوة السمعة:
قديم 17-12-2014, 12:13 AM المشاركة 193   
ha التحويل الى الكومبايلر Mikroc



السلام اخواني الكرام و جزاكم الله خيرا .

هذا المشروع كما ادرجه حسن هادي محمود يحتوي يظهر الوقت و التاريخ و درجة الحرارة على 7seg . http://up.top4top.net/downloadf-top4...298e1-rar.html

اخي حسن هادي محمود شكرا لك . هل بامكانك تحويل المشروع ليتناسب مع ال pic16f628 او pic16f877a .

لاني استخدم الكومبايلر Mikroc ولم اعرف كيف اتعامل مع هذا الكود لكي اعدل فيه و جزاك الله خيرا .


التعديل الأخير تم بواسطة : facenewlife بتاريخ 17-12-2014 الساعة 12:42 AM
اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 17-12-2014, 05:36 AM المشاركة 194   
افتراضي


السلام اخواني الكرام و جزاكم الله خيرا .

هذا المشروع كما ادرجه حسن هادي محمود يحتوي يظهر الوقت و التاريخ و درجة الحرارة على 7seg . http://up.top4top.net/downloadf-top4...298e1-rar.html

اخي حسن هادي محمود شكرا لك . هل بامكانك تحويل المشروع ليتناسب مع ال pic16f628 او pic16f877a .

لاني استخدم الكومبايلر Mikroc ولم اعرف كيف اتعامل مع هذا الكود لكي اعدل فيه و جزاك الله خيرا .
السلام عليكم
أخي كريم هذا المشروع ليس لي لاني أصلا أتعامل مع البيك وكومبايلر مايكروسي برو
تحياتي

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

الصورة الرمزية facenewlife
facenewlife
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2011
الدولة: المغرب
المشاركات: 77
نشاط [ facenewlife ]
قوة السمعة:
قديم 17-12-2014, 11:57 PM المشاركة 195   
ha


السلام عليكم
أخي كريم هذا المشروع ليس لي لاني أصلا أتعامل مع البيك وكومبايلر مايكروسي برو
تحياتي
اخي حسن هل يمكنك مساعدتي في اظهار الوقت ثم التاريخ ثم درجة الحرارة على التوالي على 4 وحدات من السفن سيجمنت . كما المثال الذي ارفقت في المشروع اعلاه .

تحياتي اخي الطيب ,


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 18-12-2014, 05:45 AM المشاركة 196   
افتراضي


اخي حسن هل يمكنك مساعدتي في اظهار الوقت ثم التاريخ ثم درجة الحرارة على التوالي على 4 وحدات من السفن سيجمنت . كما المثال الذي ارفقت في المشروع اعلاه .

تحياتي اخي الطيب ,
السلام عليكم
جرب هذا المشروع أخي
http://up.top4top.net/downloadf-top4...d1371-rar.html

على فكره هذا المشروع ذكرته في منتدى أعتقد في نفس هذا الموضوع ولكن لاأعرف رقم مشاركه
تحياتي


الصورة الرمزية facenewlife
facenewlife
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2011
الدولة: المغرب
المشاركات: 77
نشاط [ facenewlife ]
قوة السمعة:
قديم 18-12-2014, 06:35 PM المشاركة 197   
Thumbs up


السلام عليكم
جرب هذا المشروع أخي
http://up.top4top.net/downloadf-top4...d1371-rar.html

على فكره هذا المشروع ذكرته في منتدى أعتقد في نفس هذا الموضوع ولكن لاأعرف رقم مشاركه
تحياتي

جزاك الله خيرا اخي حسن سأنفذ المشروع على ارض الواقع و أرد عليك .

لاني سبق و ان جربت مثل هذا المشروع في احد المشاركات و لم تنجح معي http://arabsh.com/files/0c3343426df6...hc595-rar.html رغم اني قمت بتعديل الFUSES uعدة مرات


hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 23-12-2014, 12:31 PM المشاركة 198   
x6 بوركت وطاب مسعاك


السلام عليكم
اخي الحبيب / حسن هادي اعتذر عن ازعاجك
ولكن نفس المشكلة قائمة
اريد ان تشرح لي هذا الكود

كود:
void display_7seg()
{
  char y;
  GIE_bit=0;
 for(x=0;x<16;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;
 
 for(x=0;x<8;x++) // ???? ????? ????? ???? ???? ??? ???? ?? ????
                         {
                          if(Check_bit(segbit[7-colomn],7-x))ds1=1;
                          else DS1=0;
                          SH1=0;SH1=1;
                         }
                         
 for(x=0;x<8;x++) //
               {
                 if(Check_bit(segment[num[colomn]],7-x))DS1=1;
                 else DS1=0;
                 SH1=0;SH1=1;
               }
  ST1=1; ST1=0;
  colomn++;
  if(colomn==6)colomn=0;
  GIE_bit=1;
}
ولماذ تظهر التعليقات عندي كعلامات الإستفهام
اشكرك اخي وبارك الله لك


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-12-2014, 05:17 PM المشاركة 199   
افتراضي


السلام عليكم
اخي الحبيب / حسن هادي اعتذر عن ازعاجك
ولكن نفس المشكلة قائمة
اريد ان تشرح لي هذا الكود

كود:
void display_7seg()
{
  char y;
  GIE_bit=0;
 for(x=0;x<16;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;
 
 for(x=0;x<8;x++) // ???? ????? ????? ???? ???? ??? ???? ?? ????
                         {
                          if(Check_bit(segbit[7-colomn],7-x))ds1=1;
                          else DS1=0;
                          SH1=0;SH1=1;
                         }
                         
 for(x=0;x<8;x++) //
               {
                 if(Check_bit(segment[num[colomn]],7-x))DS1=1;
                 else DS1=0;
                 SH1=0;SH1=1;
               }
  ST1=1; ST1=0;
  colomn++;
  if(colomn==6)colomn=0;
  GIE_bit=1;
}
ولماذ تظهر التعليقات عندي كعلامات الإستفهام
اشكرك اخي وبارك الله لك
السلام عليكم
علامه الاستفهام تعني ان هناك تعليقات بلغه العربيه لربما يحدث أحيانا خربطه او عدم أظهار لغه العربيه ولا أعرف حقيقه السبب

على عموم انا معاك أخي الى أن تحل مشكله وسأكون بمشيئه الله متابع معك اول بأول
شرح الكود//
كود:
char y;
  GIE_bit=0;
تعريف متغير سميته y , والايقاف الانتربت لضمان عرض البيانات بشكل صحيح لان بدون ذلك سبب ارتعاش في سفن سكمنت وهذا بسبب عدم ظهور بيانات بشكل كامل لانه وقت ألانتربت قليل فعندما يريد تشغيل او تنفيذ أمر يخص سفن سكمنت فيحدث مقاطعه مسببه عدم تنفيذ الاوامر بشكل صحيح

بعدها وهذا أمر ضروري جدا جدا هو أطفاء سفن سكمنت قبل تشغيل لضمان الاضاءه كامله وايضا لضمان حدوث عمليه خداع البصري بشكل جيد
وهذا هو كود
كود:
 for(x=0;x<16;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;
تلاحظ انه يتم ارسال 1 مع عمل شفت ولكن رقم 16 يعني عندك 2 من 74hc959
اخي عندي ملاحظه بدلا من ترسل 1 ارسل 0 لان كمن كاثود سفن سكمن تكون مطفيه عندما نرسل 0 لذا أخي قم بتصحيح الكود ليصبح كتالي
كود:
 for(x=0;x<16;x++){ds1=0;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;

وبعد ذلك نقوم بأظهار بيانات عن طريق ارسال نبضه الى store
كود:
ST1=1;st1=0;
الان سفن سكمنت أنطفت بالكامل وهذا امر ضروري جدا قبل تشغيل سفن سكمنت

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

كود:
 for(x=0;x<8;x++)
                         {
                          if(Check_bit(segbit[7-colomn],7-x))ds1=1;
                          else DS1=0;
                          SH1=0;SH1=1;
                         }
تلاحظ اني ارسل البيانات اولا الى الاطراف enable لسفن سكمنت
بعد ذلك ارسل البيانات داتا الى سفن سكمنت
اي
كود:
for(x=0;x<8;x++) //
               {
                 if(Check_bit(segment[num[colomn]],7-x))DS1=1;
                 else DS1=0;
                 SH1=0;SH1=1;
               }
بعد نرسل بيانات الى سفن سكمنت بدفعه واحده لان هذه البيانات لاتزال مخزونه في ذاكره متكامله 74hc595 ولم يتم أظهارها الا بعد أعطاء نبضه
كود:
ST1=1; ST1=0;

تلاحظ اني ارسلت بيانات الى enable لسفن سكمنت اولا بعدين الى الاطراف سفن سكمنت لانه حسب ماتعرف المتكامله 74hc595 ترسل البيانات بشكل معكوس يعني اول يصبح ترتيبه الاخير يعني
انا اريد تشغيل سفن سكمنت رقم 6
بأول راح ارسل هذه البيانات 0xFE اي 11111110 الان ماذا أفعل راح عمل and مع 1 فأذا كان AND يعني النتيجه لاتساوي 0 فهذا يعني ان رقم هو 1 واذا كانت نتيجه 0 فهذا يعني ان بت هو 0
هنا طالما متكامله تعمل بطريقه ان اول يصبح أخير اذن لازم أعكس البيانات ولهذا تجد اني اختبرت البت الاخير اولا فأذا كان نتيجه لاتساوي 0 ارسل 1 واذا نتيجه تساوي 0 ارسل 0 اذن 11111110 يصبح عند ارساله بهذا طريقه 01111111
وبتالي وبتالي 0 سوف يظهر عند Q0 للمتكامله الثانيه

للحديث بقيه ان شالله (( حاليا وقت صلاه ))


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-12-2014, 06:13 PM المشاركة 200   
افتراضي


لاحظو الصوره التاليه التي توضح مقصدي


تلاحظون جيد اني شغلت سفن سكمنت رقم 1 تلاحظون 0 على Q0 للمتكامله الثانيه والتي رقمها U1 وبعد ذلك تلاحظون على متكامله الاولى والتي رمزها U8 حسب رسمه البروتيس حيث لاظهار رقم 1 يجب ارسال هذه بيانات 00000110

سؤال لماذا ارسلت بيانات ENABLE اولا وبعدين ارسلت داتا
لان حسب تصميم متكامله الاولى موصله للبيانات ومن ثم تتصل متكامله الثانيه بأولى وهي موصوله enable وقاعده تقول ارسل البيانات من اخير الى اول لان أخير يظهر اولا
لذا راح ارسل بيانات enable وبعدها داتا وبتالي enable ارسلت اولا وبتالي ستذهب الى اخر متكامله ومن ثم تظهر داتا على اولى اذن بيانات ترسل بشكل معكوس بالنسبه لترتيب متكاملات

الان ضمن متكامله نفسها نلاحظ ان بيانات عندي مثلا رقم 1 والذي قيمته 6 بالنسبه للسفن سكمن كمن كاثود اي 00000110 هذه بيانات اذا ارسلتها مثل ماهي راح تظهر هكذا 00110000 انظرو الصوره


اتمنى وصلت لكم الفكره
طبعا كما تعلمون اذا قمت بعمليه تشفيت داخل متكامله لابد من اظهار بيانات على اطراف متكامله وبتالي تحتاج الى أعطاء نبضه الى طرف store لكل متكامله
كود:
ST1=1; ST1=0;
===============================
ماشرحته هو كيف نشغل قطعه واحده من سفن سكمنت اذن اذا اريد أشغل الثانيه ماذا افعل بنفس الطريقه
أطفئ سفن سكمنت بشكل كامل بعدها يوجد متغير أسمه colomn هذا يمثل رقم سفن سكمنت والذي يتحكم في enable فقط لاني طريقه الوحيده للتحكم بأي سفن سكمنت فقط عن طريق enable اما داتا فهي تظهر على كل
وبعدها قلت له اذا تجاوز عدد سفن سكمنت رقم 6 ارجع من جديد لغرض تشغيل الاولى وهكذا اي
كود:
if(colomn==6)colomn=0;
وبعده نعيد تفعيل الانتربت من جديد
كود:
GIE_bit=1;



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