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

   

الصورة الرمزية اكزي
اكزي
:: عضو ذهبي ::
تاريخ التسجيل: May 2009
الدولة: المغرب iguizzi06*hotmail.com // www.facebook.com/iguizzi.abdallah
المشاركات: 2,253
نشاط [ اكزي ]
قوة السمعة:
قديم 20-10-2010, 02:52 AM المشاركة 97   
افتراضي



أحسنت أخي الكريم بارك الله فيك

اعلانات

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 20-10-2010, 08:59 AM المشاركة 98   
افتراضي


السلام عليكم برنامج رائع ماشاء الله جزاكم الله خيرا ...
بس حابة اسال سؤال لو سمحتم ..
هلا القيمة يلي تخزنة بال eeprom بتضلها مخزنة حتى لو عملنا reset للبرنامج
في حالة انو احنا غيرنا قيمة الباسورد ولا دائما القيمة "123456" هي يلي بتكون مخزنة بالeeprom في حالة انفصال الكهرباء
وبعدين وين تخزين "123456" في الكود لاني ما شفتها كيف خزنتوا في eeprom
انا شغاله على مشروع وبدي اخزن القيمة الجديدة من المستخدم بشكل دائم وحتى لو فصلت الكهربا مش يرجع على الباسود ال default فجربت اكتب برنامج صغير نزلته اول مرة على البيك ليخزن الباسود وبعدين نزلت البرنامج الاساسي وكنت دائما في بداية البرنامج بس اقرا من الeeprom واي تعديل من المستخدم بعديت يتم الكتابة على نفس الaddress في الeeprom بس للاسف ما كان يزبط وكان يقراء كانه دائما gar beg data وكانه الكود الاول ما خزن اي اشي بالeeprom
ويعني انو لازم اكتب القيمة لاول مرة في eeprom في نفس الكود يلي بقرا منه بس هيك ما راح استفيد كل ما فصل التيار برجع بعمل كتابة وبترجع الdefualt one
وهل ممكن يكون استخدام eeprom خارجية افضل في هاي الحالة ولا شو رايكم


وشكرا
السلام عليكم الان بالنسبة للبرنامج السابق حسبما اذكره من زمااااااااااااان ..فان القيمة ستبقى مخزنة في ذاكرة EEPROM للبيك حتى بعد عمل rest للبرنامج الرئيسي فهذه الذاكرة ثابته وتحتفظ بالمعلومات التي تحتويها لمدة زمنية طويلة ... بما انك قمت بتغيير الباسورد فان الباسورد سيصبح هي القيمة الجديدة التي ادخلتها انت للبرنامج وليست القديمة الافتراضية.. يتم تخزين الارقام في الذاكرة EEPROM من خلال الامر EEPROM_WRITE () فعليك بالبحث عنها (ستجدها داخل احدى حلقات FOR لاننا نحتاج لحفظ الارقام 6 مرات على ما اذكر ) بالنسبة للبرنامج الذي كتبته انت هل يمكنك ارفاقه حتى يستطيع الجميع افادتك بالنسبة لموقع الخطأ (ان كان هناك خطأ).طبعا في حال كان البرنامج صحيح فتاكد انه سيتم تغيير الباسورد بكل سهولة .. ان استخدام EEPROM خارجية سيحتاج الى اوامر اخرى ويحتاج للتعامل مع انواع من الاتصال التسلسلي مثلا للحصول على نفس النتيجة بينما مع الذاكرة الداخلية نحتاج فقط للتعامل مع امرين فقط واحد للكتابة واخر للقراءة (حسب الميكروسي) هذا اولا ... بالاضافة ان الاقام المطلوب حفظها عددها قليل جدا بالنسبة لذاكرة ال EEPROM الداخلية للبيك فلماذا اضيف قطعا اضافية يمكن الاستغناء عنها (هذا يزيد تكلفة المشروع).. واي استفسار فالجميع لن يقصر معاك ...ربنا يوفقك ... واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم...

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

al_boreny
:: مهندس ::
تاريخ التسجيل: Oct 2010
المشاركات: 2
نشاط [ al_boreny ]
قوة السمعة:
قديم 20-10-2010, 09:08 PM المشاركة 99   
افتراضي


شكرا و جزاك الله الف خير و سوف اقوم ان شاء الله بمحاولة تطويره قدر الإمكان


الصورة الرمزية tata2
tata2
:: عضو متميز ::
تاريخ التسجيل: Jan 2007
الدولة: https://t.me/pump_upp
المشاركات: 233
نشاط [ tata2 ]
قوة السمعة:
قديم 21-10-2010, 03:05 PM المشاركة 100   
افتراضي


مشروع ممتاز وتفكير سليم وتعاون رائع وافكار نافعة جدا فشكرا لك


wishes
:: مهندس ::
تاريخ التسجيل: Jul 2010
الدولة: jordan
المشاركات: 10
نشاط [ wishes ]
قوة السمعة:
قديم 23-10-2010, 07:15 PM المشاركة 101   
افتراضي


السلام عليكم
شكرا جزيلا على الرد
هاد البرنامج الاول نزلته على البيك مشان احفظ القيمة الافتراضية للباسورد على
address from 0x00 to 0x04 5 bit password
**********************************
dim i, j as char
dim password as char[5]
main:
password = "12345"
for i = 0 to 4
Eeprom_Write(i, password[i])
next i

end
.

بعدين ارجعت نزلت الكود الاساسي على البيك وصرت اقراء مباشرة من نفس ال
address


هاي في بداية الكود


for i = 0 to 4
PASSCODE[i] = Eeprom_Read(i)
next i

وبعدين لما الadmin يعدل الباسورد هيك كنت اخزنها


for i = 0 to 4
Eeprom_Write(i,PASSCODE[i])
next i

وعلى كل حال ارفقت الكود يلي معي لحد هلا ولسى ان شاء الله حابين نعدل عليه كتير اشياء وارفقة معه ملف البروتس

ياريت اذا حدا بقدر يساعدني او يقترح علي اي اشي يفيد المشروع وشكرا ...

اللينك
http://www.mediafire.com/?n4zcj5ejldjh12h


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 25-10-2010, 02:43 PM المشاركة 102   
افتراضي


السلام عليكم
شكرا جزيلا على الرد
هاد البرنامج الاول نزلته على البيك مشان احفظ القيمة الافتراضية للباسورد على
address from 0x00 to 0x04 5 bit password
**********************************
dim i, j as char
dim password as char[5]
main:
password = "12345"
for i = 0 to 4
Eeprom_Write(i, password[i])
next i


end
.

بعدين ارجعت نزلت الكود الاساسي على البيك وصرت اقراء مباشرة من نفس ال
address


هاي في بداية الكود


for i = 0 to 4
PASSCODE[i] = Eeprom_Read(i)
next i

وبعدين لما الadmin يعدل الباسورد هيك كنت اخزنها


for i = 0 to 4
Eeprom_Write(i,PASSCODE[i])
next i

وعلى كل حال ارفقت الكود يلي معي لحد هلا ولسى ان شاء الله حابين نعدل عليه كتير اشياء وارفقة معه ملف البروتس

ياريت اذا حدا بقدر يساعدني او يقترح علي اي اشي يفيد المشروع وشكرا ...

اللينك
http://www.mediafire.com/?n4zcj5ejldjh12h
السلام عليكم

كيف الحال ان شاء الله تكون بخير وعافية ؟؟ .. لدي ملاحظة واستفسار (انا اتعامل بلغة الميكروسي ولكن هناك تشابه مع الميكروبيسك على ما اعتقد ) ..

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

اريد ان اسال عن الحلقة التالية التي استخدمتها :

while (kp = 0 )
kp = Keypad_Read
Lcd_Out(1,1,"1- Reset PASSCODE")
Lcd_Out(2,1,"2- Reset Timer")
Wend
ما افهمه من هذه الحلقة انه ما دام kp=0 أي ان الزر غير مضغوط فانه تقوم بالتالي:
تقرا القيمة المضغوطة (طبعا كما قلت قبل سطر واحد ان الازرار غير مضغوطة فما الفائدة من قراءة القيمة وهي اصلا صفر ؟؟؟ وبالنسبة لتكرار اخراج الرسالتين السابقتين فما الداعي ..يكفي ان تخرج الرسالة مرة واحدة وستبقى كذلك ما لم تمسحها انت او تفصل عنها التغذية ؟؟؟


لقد حاول تتبع الكود ولكن هناك تداخل كبير ..حتى البروتوس كانه يحتوي برنامجين ...

اليس من الافضل ان تعيد تنظيم الامور والرسم وتحدد البرنامج ووظيفة كل قسم ؟؟؟ وان شاء الله تجد مساعدة وتجاوبا اكثر .. ارجو لك التوفيق..

واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..



اسامه المرعب
:: مهندس ::
تاريخ التسجيل: Oct 2008
المشاركات: 1
نشاط [ اسامه المرعب ]
قوة السمعة:
قديم 25-10-2010, 04:04 PM المشاركة 103   
افتراضي


2- البرامج الفرعية subroutines

تم استخدام خمسة برامج فرعية : أربعة منها خاصة بإصدار صوت من الميكروكنترولر عن طريق السماعة speaker + برنامج خاص للتعديل على الباسورد

بالنسبة للنغمة الصادرة فلها تلك الأوامر



أما للتعديل على الباسورد أو وضع باسورد جديدة فذلك عن طريق الأوامر التالية



____________________________________

3- الدالة الرئيسية main

عبارة عن أوامر لضبط البورتات و الشاشة lcd والكيباد والسماعة speaker + حلقة while لا نهائية

أما أوامر ضبط البورتات والشاشة والكيباد والسماعة فعن طريق الأوامر التالية

كود:
 trisb = 0 ; portb = 0 ;
     trisd = 0 ; portd = 0 ;
     trisc.f0 = trisc.f1 = 0 ; portc = 0 ;
     trisc.f2 = trisc.f3 = trisc.f4 = 1 ;


                      // lcd initialization
     lcd_init(&portb) ;
     lcd_cmd(lcd_cursor_off) ;

                        // keypad initialization
     keypad_init(&portd) ;

                         // sound play initialization
     sound_init(&portc,0) ;
أما حلقة while اللانهائية










__________________________________________________ __________________

شرح مختصر للبرنامج ككل
  • فى البداية شغلت الدائرة لأول مرة سيطلب منك البيك أن تدخل باسورد جديدة له لك يحفظها فى الايبروم
  • ( فى البداية تكون القيم الموجودة فى الايبروم تساوى 255 )
  • وذلك بأن يطبع لك الشاشة جملة ENTER NEW PASS

  • ويبدأ أخذ الأرقام منك عن طريق الكيباد رقم رقم ... ويحفظه فى مصفوفة مؤقتة temp بنفس ترتيب إدخالك الأرقام
( طبعا أثناء إخال الأرقام إن أردت التراجع عن رقم أدخلته يمكنك الضغط على المفتاح CANCEL وإخاله مرة أخرى من الكيباد )

  • ثم ينتظر من البيك أن تضغط على المفتاح OK عندها سيقوم بحفظ الأرقام التى فى المصفوفة temp إلى الايبروم

وهكذا نكون قد حفظنا الباسورد فى الايبروم

طبعا نفس الخطوات السابقة تتكرر عندما يريد المستخدم تغيير الباسورد الموجود فى الايبروم

أى أن تلك الخطوات تحدث فى حالتين :

1- عند إدخال باسورد لأول مرة فى الايبروم وذلك عند تشغيل الدائرة لأول مرة
2- عندما نريد أن نعدل فى الباسورد الموجود فى الايبروم وذلك بالضغط على المفتاحCHANGE
  • ثم يقوم البيك بعرض جملة ENTER PASS على الشاشة حتى يقوم المستخدم بإدخال باسورد عن طريق الكيباد

وكل رقم يدخله المستخدم يقوم البيك بمقارنته بالموجود أصلا فى الايبروم


فإن كان متساويا معه وضع البيك القيمة صفر فى المتغير error

وإن لم يكن متساويا معه يضع القيمة واحد فى المتغير error


أى أنه جعلنا المتغير error علما flag ليعبر عن وجود خطأ فى الباسورد
  • وبعد إدخال الباسورد كاملا فإن البيك ينتظر التأكيد من المستخدم بالضغط على المفتاح OK

عندها لكى يعرف البيك ماإذا كان تم إدخال الباسورد صحيح أم لا ... فإنه فقط يقرأ العلم أو المتغير error


فإن وجدت قيمته تساوى صفر ( أى أن الباسورد تم إدخاله بشكل صحيح ) فسوف يضىء الليد

وإن وجد قيمته تساوى واحد ( أى أن الباسورد تم إدخاله بشكل خاطىء ) فلن يضىء الليد

__________________________________________________ _________________________________


وبذلك أكون قد وصلت إلى نهاية الشرح ... أتمنى أن أكون قد وفقت


سبحانك اللهم وبحمدك أشهد ألا إله إلا أنت أستغفرك وأتوب إليك

والسلام عليكم ورحمة الله وبركاته
شكرااااااااا على المجهود الرائع اخوك اسامه


ta9esse
:: مهندس ::
تاريخ التسجيل: Nov 2010
المشاركات: 4
نشاط [ ta9esse ]
قوة السمعة:
قديم 09-11-2010, 03:35 AM المشاركة 104   
افتراضي


بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
والله
انا افتخر بكم وبمعلوماتكم القييمة
اخواني
انا في ورطة
لدي صندوق حديدي يفتح بلوحة اكترونية
شغال تمام
المشكل ان كل العمال يعرفون code master
انا اريد تغيير الكود ماستر للجهاز جربت جميع الحلول الموجودة في المنتدى
عند الضغط على* لا يستجيب الجهاز
عند الضغط على# يكتب في الواجهة full
البك المستعمل في الجهاز 12ec519
طلبي منك اخوان هو
ان اغير الكود ماستر والبرامج الازمة لتغييره



هل استطيع قراءة البك والتغيير في المعطيات

وشكرا اخواني



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