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

   

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 13-09-2009, 08:42 PM المشاركة 25   
افتراضي



أخى الكريم أستاذ حيدر مرحبا بك ونكمل موضوعنا فهناك من أعضاء القرية الكثير ممن نشعر معهم بالألفة والمودة ،

مخططك به توصيل توازى تام وهذا معناه أن أى رقم سيظهر فى القطعتان فى آن واحد !

يمكننا الإستغناء عن إحدى المتكاملات 7447 وعن إحدى مجموعة المقاومات وفى هذه الحالة سنصل طرف المصعد المشترك لكل قطعة من السيفنسيجمنت على طرف مستقل للمتحكم وستنتهى المشكلة بإذن الله

يتتبع

اعلانات

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 13-09-2009, 09:09 PM المشاركة 26   
افتراضي



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

http://www.4shared.com/file/13235924...903/pulse.html

وفى المشاركة القادمة سأضع لحضرتك المخطط والشرح وهو شبيه بمخططك مع الإستغناء عن إحدى المتكاملات 7447 وعن إحدى مجموعة المقاومات الثمانية

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 13-09-2009, 09:34 PM المشاركة 27   
افتراضي


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


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 13-09-2009, 11:38 PM المشاركة 28   
افتراضي


تفضل أخى التعديل على المخطط ولا تعب وأتمنى أن تصلك الفكرة

http://www.4shared.com/file/13238318...ven_seg_B.html

أنا جعلت أطراف الداتا على منفذ A بسبب استغلال المنفذ الأكبر فى أى شئ آخر لأن خرج الرقم سيحتاج أربع أطراف ونحتاج لوضع القيمة على البورت بالكامل ، وعلى أى حال ليس هذا تعديلا هاما لكن التعديل الهام هو باقى الإختلافات فى توزيع باقى العناصر

الشرح

نجعل أطراف portA كأطراف خرج وكذلك الطرفان المستخدمان من portB

نجعل البرنامج يعمل على وضع صفرا على طرفى الخرج الخاص بالمنفذ B حتى تكون القطعتان فى حالة إطفاء تام

نجعل البرنامج يضع قيمة الأحاد على المنفذ A ثم يضع واحد منطقى على الطرف الخاص بخانة الأحاد للمنفذ B

نجعل البرنامج يعمل على وضع صفرا على طرفى الخرج الخاص بالمنفذ B حتى تكون القطعتان فى حالة إطفاء تام

نجعل البرنامج يضع قيمة العشرات على المنفذ A ثم يضع واحد منطقى على الطرف الخاص بخانة العشرات للمنفذ B

تكرر هذه الحلقة باستمرار داخل برنامج فرعى ليتمكن المتحكم من إجراء أى عملية أخرى

------------------

هل تحب أن أضع برنامجا بلغة البيزيك ؟

أم أن الفكرة وصلت







robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 13-09-2009, 11:51 PM المشاركة 29   
افتراضي


تكرر هذه الحلقة باستمرار داخل برنامج فرعى ليتمكن المتحكم من إجراء أى عملية أخرى
اخى العزيز لا اعتقد ان وضع الحلقة فى برنامج فرعى يسمح للمعالج باجراء عمليات اخرى . بل باستخدام الinterrupt و timer هل توافقنى الراى ؟ 


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 13-09-2009, 11:59 PM المشاركة 30   
افتراضي


هذا مخطط آخر باستخدام ترانزستور من أجل ثبات الإضاءة عند اخنلاف عدد الليدات المضاءة للقطعة الواحدة ولرفعالحمال عن المتحكم وإلا سنجد أن طرف واحد للمتحكم يقوم بتشغيل 9 ليدات فى وقت واحد ورغم أن ذلك جائز إلا أن ذلك يضعف المتحكم على المدى البعيد



ونلاحظ عدم استخدام المتكاملة 7447 ولذلك سنلجأ لإستخدام الثمانى أطراف كاملة لكتابة الرقم ونستخدم القناع mask عوضا عن المتكاملة
كود:
program seven_seg_counting
dim i as byte dim j as byte dim v as byte dim por1 as byte dim por2 as byte
' This function returns masks ' for common cathode 7-seg display
sub function mask(dim num as byte) as byte
select case num case 0 result = $3F case 1 result = $06 case 2 result = $5B case 3 result = $4F case 4 result = $66 case 5 result = $6D case 6 result = $7D case 7 result = $07 case 8 result = $7F case 9 result = $6F end select
end sub
sub procedure interrupt
if v = 0 then PORTB = por2 ' Prepare mask for digit PORTA = 1 ' Turn on 1st, turn off 2nd 7seg v = 1 else PORTB = por1 ' Prepare mask for digit PORTA = 2 ' Turn on 2nd, turn off 1st 7seg v = 0 end if TMR0 = 0 INTCON = $20 end sub
main:
OPTION_REG = $80 por2 = $3F j = 0 TMR0 = 0 INTCON = $A0 ' Disable PEIE, INTE, RBIE, T0IE TRISA = 0 TRISB = 0 PORTB = 0 PORTA = 0
do for i = 0 to 99 ' Count from 0 to 99
' Prepare ones digit j = i mod 10 por1 = mask(j)
' Prepare tens digit j = (i div 10) mod 10 por2 = mask(j)
Delay_ms(1000)
next i loop until false
end.

وبالتوفيق


التعديل الأخير تم بواسطة : wleed antar بتاريخ 14-09-2009 الساعة 12:18 AM

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 14-09-2009, 12:11 AM المشاركة 31   
افتراضي


اخى العزيز لا اعتقد ان وضع الحلقة فى برنامج فرعى يسمح للمعالج باجراء عمليات اخرى . بل باستخدام الinterrupt و timer هل توافقنى الراى ؟
ما أقصده بالبرنامج الفرعى هو ما ذكرته أنت تماما بارك الله فيك


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 14-09-2009, 12:23 AM المشاركة 32   
افتراضي


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



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