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

أدوات الموضوع

الطالب99
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2005
المشاركات: 73
نشاط [ الطالب99 ]
قوة السمعة:0
قديم 20-07-2012, 08:07 PM المشاركة 1   
ha مشكلتي مع DTMF Twitter FaceBook Google+



بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته احب ان اهنئ اخواني واخواتي في هذا المنتدى واهنئ نفسي والامة الاسلامية بشهر رمضان المبارك داعيا المولى ان يعيده علينا بالخير
اخواني موضوعي هو اني ابحث عن برنامج لبرمجة البك 16f628a مع 8870 ديكودر ال DTMF فكرة البرنامج او المشروع الذي ابحث عنه لي اكثر من سنه والله.
ولكن الذي اريده ان اقوم ببرمجة البك على عدد من الارقام على سبيل المثال 20156 مثلا او اي ارقام ويقوم البك بمجرد الضغط على الرقم الاخير يخرج 1 يعني 5فولت المشكلة انا لا اريد مثال وخلاص انا اريد ان اعرف كيف ابرمج البرنامج حتى استطيع ان اغير الكود يعني لا اريده فقط 420156 او اي رقم ويبقى ثابت لا انا اريد ان
اتعلم كيف اقوم بالبرمج.
واي اخ او اخت لديه اي معلومة بخصوص هذا الموضوع ارجوا ان لا يبخل بها علي انا لا اريد اي معلومة على موجات ال DTMF وكيفية عملها ووووو ...الخ انا اعرف بعض الشئ عنا انا اريد فقط كيف يقوم المايكروكونترولر بفهمها حتى استطيع ان اعمل مشروعي.
ولكم مني جزيل الشكر راجيا من الله ان يفتح عليَّ وعليكم بما يفيد وان يعلمنا من علمه .
وجزاكم الله خير
والسلام عليكم ورحمة الله وبركاته .

اعلانات

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:92
قديم 21-07-2012, 02:17 AM المشاركة 2   
افتراضي


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

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

somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 21-07-2012, 02:54 AM المشاركة 3   
افتراضي


السلام عليكم سبحان الله والحمد لله
القطعة 8870 تعطيك خرج على شكل رقم ثنائي مكون من اربع خانات الرجل 11 تمثل الخانة الدنيا والرجل 14 تمثل الخانة العليا فعندما يأتيها على دخلها نغمة تمثل رقم معين فأنها تخرج ما يقابل هذا الرقم بالنظام الثنائي وتعمل امساك لهذه القيمة حتى تأتي نغمة اخرى او حتى تعمل انت لها ريست وذلك بإرسال نبضة على الرجل 17
كذلك فأنها عندما تأتيها نغمة جديدة وتغير قيمة الخرج فإنها تعطيك تنبيه وذلك بأرسال نبضة على الرجل 15
فإذا اردت ان تقرا من من خلال الميكرو فعليك ان توصل الرجل 15 مع طرف دخل في البيك مثلا ولتكن ال PORTA.F1 وتوصل خرجها بداية من الرجل 11 مع الرجل مثلا RB0 ونهاية بالرجل 14 من القطعة 8870 مع الرجل RB3 من البيك وتبرمج البيك انه اذا اتاه نبضة علر الرجل RA1 ثم انتهت النبضة يقوم بقراءة البورت B ثم يخزن النتيجة في متغير او مصفوفة وبعدها تفعل ما تريد في هذا المتغير وكنت انجزت مشروع
تحكم من خلال الجوال حيث بعد ان تتصل ويفتح الخط تلقائيا من الجوال
حيث تضغط على زر نجمة ثم تضغط ارقام الاجهزة التي تريد تشغيلها وهي من 1 الى 8
او تضغط زر السلم ومن ثم ارقام الاجهزة التي تريد اطفاءها والمشروع نجح
وهذا الكود حيث التوصيل كالتالي على البيك 16f628a :

القطعة 8870 البيك 16f628a
11 RA0
12 RA1
13 RA2
14 RA3
15( الرجل التي RA4
تعلمك بتغير
القيمة )


كود:
char dtmf;
bit a,x;
void main() {
CMCON=0x07;
TRISA=0B11111111;
TRISB=0;
PORTB=0x00;
x=0;
while(1){
if(PORTA.F4==1)
{a=1;}
if(a&&!PORTA.F4==1)
{
a=0;
dtmf=PORTA;

if(dtmf==11)
{x=1;}

if(dtmf==12)
{x=0;}

if(dtmf<=10)
{
if(dtmf==1)
{PORTB.F0=x;}

if(dtmf==2)
{PORTB.F1=x;}

if(dtmf==3)
{PORTB.F2=x;}

if(dtmf==4)
{PORTB.F3=x;}

if(dtmf==5)
{PORTB.F4=x;}

if(dtmf==6)
{PORTB.F5=x;}

if(dtmf==7)
{PORTB.F6=x;}

if(dtmf==8)
{PORTB.F7=x;}



}
}}

}
مع تمنياتي بالتوفيق ورمضان كريم
سبحان الله والحمد لله


الطالب99
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2005
المشاركات: 73
نشاط [ الطالب99 ]
قوة السمعة:0
قديم 21-07-2012, 12:03 PM المشاركة 4   
افتراضي


بسم الله الرحمن الرحيم
اخى
الامر بسيط
انظر لداتا شيت بتاعت الاى سى
هتلاقى كل رقم بيخرج بيات شكلة اية
وتقدر تعمل مصفوفة لتعين الارقام بها
وتقولى فى الاختبارات تعمل اكثر من شرط فى جملة if عن طريق &&
بين الامرين
بالرقم الى انت عايزة ولو تحقق خلاص ينفذ
عموما لو مفهمتش الكلام دة ان شاء الله اعملك الكود وتشوفة عملى واشرحولك وتفهم منة باذن الله
السلام عليكم
جزاك الله خير اخي على ردك وسعت صدرك والله اتمنى لو تعطيني مثال تطبيقي حتى ترسخ المعلومة اكثر وجزاك الله خير .
وجعلنا لالله من عتقاء النار انه مجيب الدعاء


التعديل الأخير تم بواسطة : الطالب99 بتاريخ 21-07-2012 الساعة 01:19 PM

الطالب99
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2005
المشاركات: 73
نشاط [ الطالب99 ]
قوة السمعة:0
قديم 21-07-2012, 01:05 PM المشاركة 5   
افتراضي


السلام عليكم سبحان الله والحمد لله
القطعة 8870 تعطيك خرج على شكل رقم ثنائي مكون من اربع خانات الرجل 11 تمثل الخانة الدنيا والرجل 14 تمثل الخانة العليا فعندما يأتيها على دخلها نغمة تمثل رقم معين فأنها تخرج ما يقابل هذا الرقم بالنظام الثنائي وتعمل امساك لهذه القيمة حتى تأتي نغمة اخرى او حتى تعمل انت لها ريست وذلك بإرسال نبضة على الرجل 17
كذلك فأنها عندما تأتيها نغمة جديدة وتغير قيمة الخرج فإنها تعطيك تنبيه وذلك بأرسال نبضة على الرجل 15
فإذا اردت ان تقرا من من خلال الميكرو فعليك ان توصل الرجل 15 مع طرف دخل في البيك مثلا ولتكن ال PORTA.F1 وتوصل خرجها بداية من الرجل 11 مع الرجل مثلا RB0 ونهاية بالرجل 14 من القطعة 8870 مع الرجل RB3 من البيك وتبرمج البيك انه اذا اتاه نبضة علر الرجل RA1 ثم انتهت النبضة يقوم بقراءة البورت B ثم يخزن النتيجة في متغير او مصفوفة وبعدها تفعل ما تريد في هذا المتغير وكنت انجزت مشروع
تحكم من خلال الجوال حيث بعد ان تتصل ويفتح الخط تلقائيا من الجوال
حيث تضغط على زر نجمة ثم تضغط ارقام الاجهزة التي تريد تشغيلها وهي من 1 الى 8
او تضغط زر السلم ومن ثم ارقام الاجهزة التي تريد اطفاءها والمشروع نجح
وهذا الكود حيث التوصيل كالتالي على البيك 16f628a :

القطعة 8870 البيك 16f628a
11 RA0
12 RA1
13 RA2
14 RA3
15( الرجل التي RA4
تعلمك بتغير
القيمة )


كود:
char dtmf;
bit a,x;
void main() {
CMCON=0x07;
TRISA=0B11111111;
TRISB=0;
PORTB=0x00;
x=0;
while(1){
if(PORTA.F4==1)
{a=1;}
if(a&&!PORTA.F4==1)
{
a=0;
dtmf=PORTA;

if(dtmf==11)
{x=1;}

if(dtmf==12)
{x=0;}

if(dtmf<=10)
{
if(dtmf==1)
{PORTB.F0=x;}

if(dtmf==2)
{PORTB.F1=x;}

if(dtmf==3)
{PORTB.F2=x;}

if(dtmf==4)
{PORTB.F3=x;}

if(dtmf==5)
{PORTB.F4=x;}

if(dtmf==6)
{PORTB.F5=x;}

if(dtmf==7)
{PORTB.F6=x;}

if(dtmf==8)
{PORTB.F7=x;}



}
}}

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


التعديل الأخير تم بواسطة : الطالب99 بتاريخ 21-07-2012 الساعة 01:18 PM

somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 21-07-2012, 01:37 PM المشاركة 6   
افتراضي


المتغير dtmf لنخزن فيه قيمة البورت A حيث تمثل هذه القيمة الرقم المستقبل من ال8870
المتغيران a , x وهما من نوع bit اي اما يكونان صفر او واحد حيث ان a سنستخدمه لمعرفة ان القطعة 8870 حدثت حالتها حيث انها ترسل نبضة بزمن معين على الرجل 15 والذي يكون موصول مع الطرف RA4 ولن يقرا البيك قيمة البورت A الا بعد التاكد من ان النبضة انتهت وذلك باختبار
كود:
if(PORTA.F4==1)
{a=1;}

if(a&&!PORTA.F4==1)
a=0;
ثم يقرا قيمة البورت
كود:
dtmf=PORTA;
ثم سيختبر اذا كانت قيمة dtmf = 11 اي ان الزر المضغوط هو زر النجمة فانه سيجعل x=1 .... واذا كان dtmf =12 اي ان الزر هو سلم سيجعل x=0

كود:
 if(dtmf==11)
{x=1;}

if(dtmf==12)
{x=0;}
ثم يقوم بإختبار اذا كانت قيمة dtmf اقل من 10
كود:
if(dtmf<=10)
{
.. وهي الارقام الموجودة على لوحة الهاتف فإنه سيدخل في حلقة اختبارات جديدة
الاختبار الاول
كود:
if(dtmf==1)
{PORTB.F0=x;}
حيث سيختبر اذا كانت dtmf =1 وهذا يعني ان الرقم المضغوط =1 وعندها سيغير خرج الطرف RB0 والذي يكون موصول بأحد الاجهزة المراد التحكم بها
حيث سيجعل RB0=x وبذلك اذا كنت في البداية ضغطت على زر النجمة فإنك ستجعل قيمة x=1 وبالتالي تشغيل الجهاز الموصول ب RB0 حيث يمكن ان تضط مرو واحدة على النجمة ثم تضغط ارقام جميع الاجهزة المراد تشغيلها وسوف تعمل فور الضغط على الزر المعين .....
وكذلك اذا ضغط على الزر سلم ستجعل قيمة x=0 وبالتالي اطفاء الاجهزة المضغوط على ارقامها


الطالب99
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2005
المشاركات: 73
نشاط [ الطالب99 ]
قوة السمعة:0
قديم 21-07-2012, 04:02 PM المشاركة 7   
افتراضي


اسال الله ان يحفظك ويبلغي واياك واهلينا ليله القدر ويجلعنا من عتقاء النار .


somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 21-07-2012, 04:11 PM المشاركة 8   
افتراضي


انشالله
اشتغل معك اشي

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025