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

   

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 381
نشاط [ abnidal ]
قوة السمعة:
قديم 20-03-2010, 11:35 AM المشاركة 9   
افتراضي اخي زكي شاكر



السلام عليكم
مشكور واسف لتاخري بالرد
جزاك الله خيرا (المشكلة هي في نهاية العملية اي بالتعامل مع هذا الكود الناتج) اي اني على دراية بالمراحل التي شرحتها لي جزاك الله خيرا
على كل حال يبدو ان هذا البرنامج لا نفع منه بهذا الخصوص
الشكر للجميع

اعلانات

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 20-03-2010, 10:25 PM المشاركة 10   
افتراضي


وعليكم السلام ..
اخي الكريم .. لا شكر على واجب بارك الله فيك ..
ان شاء الله شرح الطريقة نافع لكل باحث عربي تصل به محركات البحث الى القرية الالكترونية . والبرنامج نافع كذلك ويؤدي مهمته بشكل جيد .. ومهمته هي تحويل المقطع الصوتي الى كود بالميكروسي ..
بعد ذلك اذا كان المبرمج بحاجة الى تخزين ذلك الصوت (الذي تحول الى كود) ، عليه ان يستخدم ذاكرة الميكروكونترولر eeprom او الاستعانة بذاكرة خارجية من نفس النوع مثل 24C16 او بحجم اكبر ..
و تعميما للفائدة فيما يخص الميكروسي فإن الطريقة الاولى موجودة بموضوع الاخ أشرف الخطيب و الطريقة الثانية اظن انها متوفرة بموضوع الاخ م. نافذ ابو كشك ..
http://www.qariya.com/vb/showthread.php?t=49992
تحياتي للجميع

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

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 381
نشاط [ abnidal ]
قوة السمعة:
قديم 21-03-2010, 12:20 PM المشاركة 11   
افتراضي مشكور اخ زكي


جزاك الله خيرا


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 22-03-2010, 11:38 AM المشاركة 12   
افتراضي


ولكن أين الصعوبة هنا
لقد ولد لك البرنامج دالة وسماها sounddata1
ويكفي أن تضيف الدالة الى البرنامج فقط ثم تكتب اسم الدالة فقط حين تريد توليد
الصوت
اذا لم تفهم ذلك خذ البرنامج الذي كنت تريد تفسيره الذي يحتوي على tone
ثم تكتب الدالة

void sound_data1() org (1 * 256)
{
asm retlw 0xAA ; -------0
asm retlw 0xAA ; -------0
asm retlw 0xAA ; -------0
asm retlw 0xAA ; -------0
asm retlw 0xAA ; -------0
asm retlw 0xAA;---------0
..................................
الى اخر الدالة
وضعها مكان دالة tone أي tone من الثلاثة وأنزع الباقي

ثم بعد ذلك أكتب اسم الدالة والذي هو sound_data1 مكان melody
الموجود في دالة main
اذا كان الصوت طويل وقام البرنامج بتوليد عدة دوال مثلا :
sound_data1 و sound_data2 و .........
هنا نكتب دالة نسميها melody مثلا وبدل أن نذكر بداخلها tone1 و tone2 ....
نذكر sound_data1 و soun_data2 و ........
أي هكذا
void melody () {sound_data1();sound_data2();sound_data3();....}-----0
بنفس الترتيب الذي ولده البرنامج
ثم تكتب في الدالة main الدالة الجديدة melody();----0

(كما يمكنك أن تستدعي الدوال soud_data بنفس الترتيب الذي ولده البرنامج
دون أن تستعمل دالة جديدة مثل melody داخل دالة main)

توضيح :
ان كلمة org هي تعليمة نحدد بها المكان الذي نضع فيه البرنامج داخل ال pic
أي نقول لل pic ضع التعليمات التالية بداية من العنوان التالي مثلا هنا من العنوان 1*256 أي السطر 257 على اعتبار أننا نبدأ من السطر 00
أعتقد أنه شيء بسيط أليس كذالك
الصعوبة تكمن في انشاء الدالة وقد قام البرنامج بذلك فلم يبقي الا كتابتها كما كتبها البرنامج في بداية برنامجنا ثم نقوم باستدعائها داخل دالة main


التعديل الأخير تم بواسطة : lahoioui بتاريخ 22-03-2010 الساعة 12:24 PM

crom
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2007
الدولة: بلدى
المشاركات: 130
نشاط [ crom ]
قوة السمعة:
قديم 22-03-2010, 12:21 PM المشاركة 13   
افتراضي


لماذا لايعطى مثال على هذا الشرح


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 22-03-2010, 12:54 PM المشاركة 14   
افتراضي


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

http://www.qariya.com/vb/showthread.php?t=61314

وأنا اعتمدت في الشرح على هذا الموضوع على كل راجع الموضوع ثم حاول فان لم
تفلح أطرح سؤال يجعلني أتيقن أنك فعلا راجعت الموضوع وأنك مهتم فعلا حينها أطلب
مثال لان المثال هنا يعني كتابة البرنامج كاملا لصوت معين


crom
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2007
الدولة: بلدى
المشاركات: 130
نشاط [ crom ]
قوة السمعة:
قديم 22-03-2010, 02:50 PM المشاركة 15   
افتراضي


اخ lahoioui
الموضوع مختلف تماما لان استخدام Sound_Play هو امر لن يقبل الا الوضيفة التى يقوم بها ويكون على هذا الشكل Sound_Play(200, 200) يعنى ماتقدر تغير اى شى فى هذى الامر الا الزمن والنغمة فقط . مثال اذا انت استخدمت شاشة LCD لن تحتاج الا لاستخدام امر lcd_out اما اذا كنت تريد استخدام شاشة خاصة بك مثل LED MATRIX سوف تقوم بتصميم الكود الخاص بك وهكذا سوف تحتاج الى استخادم المصفوفة . ياريت لو تعبناك ووضعت كود حتى نستفيد


abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 381
نشاط [ abnidal ]
قوة السمعة:
قديم 22-03-2010, 06:15 PM المشاركة 16   
افتراضي السلام عليكم


اخي الكريم بالله عليك اكمل معروفك معنا وضع لنا مثال كامل لصوت لفترة قصيرة جدا مثلا 30 ثانية
ولو تتكرم علينا ان تقوم بتحضير ملف صوتي صغير كم ذكرت سابقا ثم تقوم بتحويله بواسطة هذا البرنامج ومن ثم تقوم باستخدام البك 16f 877
وترسم لنا الدارة وتصممها وتكتب الكود كاملاً اعرف انه لم يتبقى لنا شئ لنعمله ولكن تأكد انشاء الله سنتعلم ونستفيد كل الاستفادة من هذا المثال وخاصة بالنسبة الي حيث استيعابي قليل وان لم يكن بشكل مثال اتوقع ان اواجه مشاكل كثيرة ومنها ضياع الكثير من الوقت في التحليل والتجريب ومن المحتمل ان يكون بغير اتجاه ..
ان وافقت :
اكرمنا بمجلد كامل يحوي الملف الصوتي الاصلي وملف بروتوس وملف الكود بالمايركوسي جزاك الله خيرا وانا لك من الداعيين انشاء الله



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