المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المتحكم الدقيق بالوحدات الطرفية Micro-PIC (الدرس الأخير)


Blu Ray
03-08-2006, 11:23 PM
بسم الله الرحمن الرحيم


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


على كل حال اليوم آخر درس سأحاول أن أشرح كيفية عمل (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
04-08-2006, 12:07 AM
على فكرة المشروع هذا في الرابط التالي تطبيق على ما سبق:
http://www.qariya.com/vb/showthread.php?p=60154#post60154

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

aladdin_2005
04-08-2006, 04:17 PM
جزاكم الله بكل الخير علي بذل مافي وسعك وننتظر من كثير من الأعضاء ان يعطوا مما عندهم من العلم .....
فكثيرا مايأخذون وقليل مايعطون ومنهم من لايعطي برغم وجود العلم عنده
اللهم اهدنا واهدي بنا وعافنا واعفوا عنا واغفر لنا وارحمنا ..................اللهم امين

mostapha
07-08-2006, 02:23 PM
السلام عيكم ورحمة الله تعالى وبركاته بارك الله فيك وزادك علما هل لديك معلومات اكثر حول 16f84

السـاحر
07-08-2006, 10:45 PM
يعطيك الف عافيه
لكن لاحظت انك تعتمد الى كتابة اوامر المفروض ان يكون لها مكتبه خاصة
أرجوا أن تبلغني اي برنامج تقوم بالبرمجة عليه


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

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

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


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

Blu Ray
09-08-2006, 07:38 AM
أخي الكريم:

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

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

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

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

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

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

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



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

السـاحر
10-08-2006, 06:22 PM
تشكر عزيزي على شرحك المتعوب عليه
انا اعمل على الـ Pic وفهمت كل ماقلته لكن كلامك أصابني في حيرة
إذا ارسلت لها داتا معينه لكي تقوم بعرضها ثم اتجهت لتنفيذ مهام اخرى هل تذهب من الشاشه ام تبقى لن نتحدث عنr/w بل عن عرضها للمعلومات هل تبقى محافظه عليها الى ان اصفرها أو تذهب حالما تتوقف الداتا عن الارسال وهل اذا ارسلت لها مره اخرى تعرضها بجنبها أو تحذف الأولى وتعرض الجديده
شاكر لك تعاونك للمرة الأخرى

Blu Ray
13-08-2006, 07:53 AM
الأخ الساحر:

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

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

السـاحر
14-08-2006, 05:38 PM
سلمت يمناك ياقلبي
وماقصرت لكن هل لك بأن تقوم برسم داشرة كيفية توصيلها وماهي المواد المطلوبه لتركيبها معها

Blu Ray
18-08-2006, 12:56 PM
طريقة توصيلها تعتمد على برنامج التشغيل الي في الأدابتر أو الميكروكونترولر
وهدي دائرة من دوائر توصيلها بالميكروكونترولر وضعتها في درس سابق:
http://www.electvillage.com/files/up4/11111.bmp

ورابط الدرس هو:
http://www.qariya.com/vb/showthread.php?t=9685

x