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

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

الصورة الرمزية Blu Ray
Blu Ray
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2006
الدولة: Jeddah
المشاركات: 67
نشاط [ Blu Ray ]
قوة السمعة:0
قديم 03-08-2006, 10:23 PM المشاركة 1   
افتراضي المتحكم الدقيق بالوحدات الطرفية Micro-PIC (الدرس الأخير) Twitter FaceBook Google+



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


أنا جداً محرج لأنه كان شرحي غير كامل وربما ليس بتلك الكثافة من حيث المعلومات


على كل حال اليوم آخر درس سأحاول أن أشرح كيفية عمل (Interface) للميكروكونترولر مع أي شاشة (LCD) عادية غير (Graphical) وكيفية استخدام الـ (A/D converter) كل ذلك باستخدام لغة البيسك الخاصة بمترجم برنامج (PIC Simulator IDE)

المتحكم الذي سأتناوله هو متحكم ممتاز جداً يحوي أربع بورتات و (A/D converter) بـ 10 بت أي 1024 مستوى رقمي وهو (PIC 16F877)


1- المحول التمثيلي لرقمي (A/D Converter):
الأمر عمله
Define ADC_CLOCK = 3 يقوم بتعريف عدد نبضات الساعة خلال دورة تشغيلية واحدة و 3 هي أكثر حاجة.
Define ADC_SAMPLEUS = 255 يقوم بتعريف الذاكرة التسلسلية للمحول وأعلى قيمة هي 255
ADCON1 = 0 يقوم بوضع كل المخارج التي تبدأ ب (AN) في الداتا شيت وهي (PORTA) و (PORTE) مداخل تمثيلية، أما عند مساوات الطرف الأيسر ب 1 فسيتعامل معها على إنها رقمية، طبعاً هدي الجملة تكتب بعد تعريف إعدادت البورتات مثل (TRISA = 0xff)

بعد ذلك طبعاً سيقوم المحول بتقسيم الموجة المعطاة لـ 1024 مستوى من 0 فولت إلى 5 فولت.

لأخذ قيمة المستوى أثناء التشغيل بعد ذلك نستخدم الأمر:
Adcin 1, word variable
بحيث أن الـ (word variable) هو متغير من نوع كلمة تعرفه مسبقاً وتخزَّن قيمة المستوى الرقمي فيه كرقم عشري.


2- شاشة الـ (LCD):
أولاً نحتاج أن نعرف مداخل و مخارج الشاشة:
تحوي شاشة الـ (LCD) نوعين من المخارج:
1- (Data Bus) وهي (D0,D1,D2,D3,D4,D5,D6,D7)
2- (Enable input) وهو (E)
3- (Read/Write input) وهو (R/W)
4- (Reset Input) وهو (RS)


ولتعريف الـ (Data Bus) بحيث يأخذ بياناته من (PORTB) مثلاً نكتب:
Define LCD_DREG = PORTB
ثم نكتب Define LCD_DBIT = 0 للشاشات ذات 8 بت
أو Define LCD_DBIT = 4 للشاشات ذات 4 بت


لتعريف (Enable input) ليأخذ بياناته من مثلاً (PORTD) البت رقم 3 نكتب:
Define LCD_EREG = PORTD
Define LCD_EBIT = 3

لتعريف (Read/Write input) ليأخذ بياناته من (PORTD) مثلاً البت رقم 2 نكتب:
Define LCD_RWREG = PORTD
Define LCD_RWBIT = 2

لتعريف (Reset Input) ليأخذ بياناته من (PORTD) مثلاً البت رقم 1 نكتب:
Define LCD_RSREG = PORTD
Define LCD_RSBIT = 1


وتوجد أيضاً هذه الأوامر يجب أن تكتب بعد تعريف المخارج كما يلي:


الأمر عمله
Define LCD_COMMANDUS = 2000 يقوم بتعريف وقت التسويف بعد كتابة أومر المسح
Define LCD_DATAUS = 250 يقوم بتعرف وقت التسويف بعد كتابة أوامر العرض
Define LCD_INITMS = 250 يقوم بتعريف وقت التسويف بعد بدء تشغيل الـ (LCD)

لبدء تشغيل الـ (LCD) بعد ذلك نكتب:
Lcdinit

لمسح الـ(LCD) نكتب:
Lcdcmdout LcdClear

لعرض كلام على الـ (LCD):
"الكلام" Lcdout

لعرض متغير على الـ (LCD):
Lcdout #var_name
للإنتقال إلى سطر آخر:
Lcdcmdout LcdLine2Home


التعديل الأخير تم بواسطة : Blu Ray بتاريخ 03-08-2006 الساعة 10:48 PM
اعلانات

الصورة الرمزية Blu Ray
Blu Ray
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2006
الدولة: Jeddah
المشاركات: 67
نشاط [ Blu Ray ]
قوة السمعة:0
قديم 03-08-2006, 11:07 PM المشاركة 2   
افتراضي


على فكرة المشروع هذا في الرابط التالي تطبيق على ما سبق:
http://www.qariya.com/vb/showthread....0154#post60154

مع خالص تحياتي..

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

الصورة الرمزية aladdin_2005
aladdin_2005
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2004
الدولة: مصر ((الأسكندريه))
المشاركات: 1,246
نشاط [ aladdin_2005 ]
قوة السمعة:116
قديم 04-08-2006, 03:17 PM المشاركة 3   
افتراضي


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


الصورة الرمزية mostapha
mostapha
:: مهندس ::
تاريخ التسجيل: Aug 2006
المشاركات: 48
نشاط [ mostapha ]
قوة السمعة:0
قديم 07-08-2006, 01:23 PM المشاركة 4   
افتراضي


السلام عيكم ورحمة الله تعالى وبركاته بارك الله فيك وزادك علما هل لديك معلومات اكثر حول 16f84


السـاحر
:: مهندس ::
تاريخ التسجيل: May 2006
المشاركات: 15
نشاط [ السـاحر ]
قوة السمعة:0
قديم 07-08-2006, 09:45 PM المشاركة 5   
افتراضي


يعطيك الف عافيه
لكن لاحظت انك تعتمد الى كتابة اوامر المفروض ان يكون لها مكتبه خاصة
أرجوا أن تبلغني اي برنامج تقوم بالبرمجة عليه


تعقيباً على كلامك هنا

ولتعلم أن شاشة الـ (LCD) تحتاج إلى معالج للتفاهم معها و ساعة ذات تردد عالي مع تكرار أومر بسرعة هائلة

فلا يمكنك أن تعرض أي شيئ عليها إلا بوجود معالج دقيق أو ميكروكونترولر أو (LCD Kit) تشتريها معها منأي مركز إلكترونيات


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


الصورة الرمزية Blu Ray
Blu Ray
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2006
الدولة: Jeddah
المشاركات: 67
نشاط [ Blu Ray ]
قوة السمعة:0
قديم 09-08-2006, 06:38 AM المشاركة 6   
افتراضي


أخي الكريم:

بالنسبة للساعة ذات التردد العالي فهي موجودة داخل الميكروكونترولر والتي يصل ترددها إلى 4 ميجا هيرتز

أما بالنسبة لسؤالك حول طريقة عملها فهي معقدة تعتمد على تكرار الأوامر بواسطة الميكروكونترولر أو أي أدابتر من كل منفذ من منافذ الداتا باس بتزامن مع منافذ التحكم والتي هي (R/W) أي إقرأ/إكتب و (RS) أي صفِّر و (E) يعني فعِّل

وسبب الحاجة لتكرار الأوامر أن الشاشة الكريستالية تشبه الـ (Dynamic RAM or DRAM) حيث يجب أن تحدث البيانات عليها لأنها تعتمد على الشحنة المؤقتة على أشباه الموصلات المكونة لها

كما أن أي شاشة حتى الـ(CRT) لا يمكن أن تعرض البيانات من داتا باس ثابت بل تحتاج لأن تحدث وذلك لكي تقدر على قراءة عدد كبير من البيكسل في آن واحد فمثلاً شاشة الكمبيوتر تطفيء وتشعل 70 مرة في الثانية ولكن لا نلاحظ ذلك بسبب السرعة العالية لها..

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

فقط استفيد من هذه التقنية بالبرامج التي أعدَّت لها

ومنها البرنامج الذي تكلمت عنه وهو (PIC Simulator IDE) والذي أضفته في أحد دروسي السابقة وبإمكانك أن تجده في أي موقع آخر لأنه متوفر على الويب.



لك خالص تحياتي..


التعديل الأخير تم بواسطة : Blu Ray بتاريخ 09-08-2006 الساعة 06:52 AM

السـاحر
:: مهندس ::
تاريخ التسجيل: May 2006
المشاركات: 15
نشاط [ السـاحر ]
قوة السمعة:0
قديم 10-08-2006, 05:22 PM المشاركة 7   
افتراضي


تشكر عزيزي على شرحك المتعوب عليه
انا اعمل على الـ Pic وفهمت كل ماقلته لكن كلامك أصابني في حيرة
إذا ارسلت لها داتا معينه لكي تقوم بعرضها ثم اتجهت لتنفيذ مهام اخرى هل تذهب من الشاشه ام تبقى لن نتحدث عنr/w بل عن عرضها للمعلومات هل تبقى محافظه عليها الى ان اصفرها أو تذهب حالما تتوقف الداتا عن الارسال وهل اذا ارسلت لها مره اخرى تعرضها بجنبها أو تحذف الأولى وتعرض الجديده
شاكر لك تعاونك للمرة الأخرى


الصورة الرمزية Blu Ray
Blu Ray
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2006
الدولة: Jeddah
المشاركات: 67
نشاط [ Blu Ray ]
قوة السمعة:0
قديم 13-08-2006, 06:53 AM المشاركة 8   
افتراضي


الأخ الساحر:

بالنسبة لسؤالك الأول البيانات تبقى على الشاشة أثناء تنفيذك لمهام أخرى بسبب الـ (Buffer) الموجود في الشاشة والذي يحمل خاصية الـ(RAM) بحيث يحفظ البيانات التي على الشاشة طالما أن منفذ (E) في وضع (0).

وطبعاً تبقى محافظة عليها إلى أن تصفرها وإذا كتبت بيانات عليها دون تصفيرها فستكتب بجنبها إلى أن ينتهي السطر ثم تقف إلى أن تنتقل لسطر جديد، لذلك إذا أردت تحديث بيانات موجودة على الشاشة فعليك مسحها ثم كتابة الشيء الجديد وتكرار السطور الثابتة.

إضافة رد

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

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

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


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

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