تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مثال] الميكروكنترولر 8051 عن طريق السيريال بورت
#1
بسم الله الرحمن الرحيم

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


" Optimized 8 bit CPU for control applications.
" Extensive Boolean processing capabilities.
" 64K Program Memory address space.
" 64K Data Memory address space.
" 128 bytes of onchip Data Memory.
" 32 Bi-directional and individually addressable I/O lines.
" Two 16 bit timer/counters.
" Full Duplex UART.
" 6-source / 5-vector interrupt structure with priority levels.
" Onchip clock oscillator.



ويمكن استخدامه في تطبيقات عديدة للتحكم

وهذه صورة لمداخل ومخارج هذا المعالج



وهذا المعالج يعمل بلغة برمجة خاصة به وتكون بلغة الاسمبلي

ولكي نتمكن من التعامل مع هذا المعالج من خلال الكمبيوتر pc فنحن بحاجة الى دائرة الكترونية لتقوم بالربط بين المعالج وجهاز الكمبيوتر وتكون الدائرة على هذا النحو






عند تجهيز الدائرة وربطها بالمنفذ التسلسلي com لجهاز الكمبيوتر نقوم بعمل برنامجنا الاول بلغة الفيجوال بيسيل للتعامل مع هذا المعالج والبرنامج عبارة عن برنامج بسيط لاضائة led من خلال هذا المعالج حيث نتبع الخطوات التالية

نقوم بفتح بروجكت جديد standard exe ثم فقوم باضافة comm control 6.0 من الcomponents

حيث تظر لنا صورة هاتف صغير كما في الصورة ادناه 







ثم نقوم باضافة option buttons عدد 2 و command button عدد 1 ليصبح الفورم كالتالي









نحن الان جاهزين لتكملية البرنامج وتزويده بالكود المناسب حيث نقوم بكتابة الكود التالي


رمز برمجي:
Private Sub Form_Load()
On Error Resume Next
'use comm port 1
MSComm1.CommPort = 1

' 9600 baud, no parity, 8 data bits, 1 stop bit
MSComm1.Settings = "9600,N,8,1"


' Disable DTR
MSComm1.DTREnable = False


'open the port
MSComm1.PortOpen = True
End Sub

Private Sub cmdsend_Click()
Dim LED As Long


' Get LED State
If opton.Value = True Then
LED = 0
Else
LED = 1
End If


' Send Out Data
MSComm1.Output = Chr$(255) & Chr$(LED)


End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'Close the COMM port
End Sub

اما برنامج الميكرو كنترولر فهو مكتوب بلغة الاسمبلي ويكون كالتالي:

رمز برمجي:
Program the MIcrocontroller with the following code

ORG 00H ; Reset
MOV TMOD,#20H ;enable timer1, mode 2 (auto reload)
MOV TH1,#0FDH ;9600 Baud rate
MOV SCON,#50H ;8 bit, 1 stop bit, REN enabled
SETB TR1


HERE:JNB RI,HERE ;wait for character to come in
MOV A,SBUF ;get data in A
CJNE A,#0FFH,DOWN ;chk if the char is synch byte ie.offh or 255
;if not jump to clear RI
CLR RI ;get ready to get next byte
WAIT:JNB RI,WAIT ;wait for character to come in
MOV A,SBUF ;get data in A
CJNE A,#00H,NXT ;chk if the char is 0
CLR P2.0 ;switch on LED
SJMP DOWN ;jump to clear RI
NXT:CJNE A,#01H,DOWN ;chk if the char is 1
SETB P2.0 ;switch off LED
DOWN:CLR RI ;get ready to get next byte
SJMP HERE ;keep getting the data

وهذه صورة المبرمجة المستخدمة لبرمجة هذا المعالج









ارجو ان اكون قد قدمت بعض الافادة

يعطيكم العافية
شـــايـفـــك

الرد }}}}
#2
السلام عليكم و رحمة الله و بركاته




ما شاء الله عليك، 


لست سهلا أخي العزيز...




السلام عليكم و رحمة الله و بركاته
 
 
@@@ سامحوني، منقطع نهائياً @@@

 
الرد }}}}
تم الشكر بواسطة: الشاكي لله
#3
بارك الله فيك أستاذ
درس جميل جداً Big Grin

راح احاول اعمل مثال شبيه له بلغة الـ Proton ولكن للـ Pic Shy
يعطيك العافية Blush
الرد }}}}
تم الشكر بواسطة: الشاكي لله
#4
بارك الله فيك يأستاذ
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته .
لقد تغيبت فترة طويلة عن المنتدى .. منذ ان تم اغلاقه ..لكن لا علينا Smile
المنتدى يبدوا افضل بكثير من ذي قبل .. و بالفعل هذا شيئ رائع .
شكرا لكل من ساهم في تحسين المنتدى .
أما بعد : سأعلق على الموضوع الحالي ..
كتابت البرنامج بالاسمبلي صعبة بعض الشيئ خصوصا وان كان البرنامج كبير .
اضف الى ذلك اختلاف اللغة بين الميكروكونترول و ال x86 / x64 .
زائد قلة ال docs الخاصة بتعليمات الأسمبلي للرقاقة ..
كحل أخر .. لما لا تستعمل رقاقة Arduino مفتوحة المصدر وتدعم العديد من لغات البرمجة + Ide مفتوح المصدر مع لغة اردينيو سي ++ .
الدارة تعتمد على لغة مشتقة من ال c++ ..لكن يمكنك البرمجة بالعديد من اللغات الاخرى: باسكال ،سي شارب .
و الاجمل من هذا كله هو وجود المحاكيات .. لست مظطرا لاقتناء الرقاقة .. يمكن ان تجرب وتتعلم اولا باستخدام المحاكيات .
+ تحتوي على مستشعرات للحرارة ، الضغط، الرطوبة ،...
هناك العديد من التطبيقات الت طورت بالرقاقة .. مثل التطبيق الذي ابهرني مقياس الزلازل .
بصراحة اعتقد ان المستقبل في هذه المنصة .
الرد }}}}
تم الشكر بواسطة: abulayth , tariq2812
#6
(06-12-13, 02:35 PM)Safmehdi كتب : السلام عليكم ورحمة الله وبركاته .
لقد تغيبت فترة طويلة عن المنتدى .. منذ ان تم اغلاقه ..لكن لا علينا Smile
المنتدى يبدوا افضل بكثير من ذي قبل .. و بالفعل هذا شيئ رائع .
شكرا لكل من ساهم في تحسين المنتدى .
أما بعد : سأعلق على الموضوع الحالي ..
كتابت البرنامج بالاسمبلي صعبة بعض الشيئ خصوصا وان كان البرنامج كبير .
اضف الى ذلك اختلاف اللغة بين الميكروكونترول و ال x86 / x64 .
زائد قلة ال docs الخاصة بتعليمات الأسمبلي للرقاقة ..
كحل أخر .. لما لا تستعمل رقاقة Arduino مفتوحة المصدر وتدعم العديد من لغات البرمجة + Ide مفتوح المصدر مع لغة اردينيو سي ++ .
الدارة تعتمد على لغة مشتقة من ال c++ ..لكن يمكنك البرمجة بالعديد من اللغات الاخرى: باسكال ،سي شارب .
و الاجمل من هذا كله هو وجود المحاكيات .. لست مظطرا لاقتناء الرقاقة .. يمكن ان تجرب وتتعلم اولا باستخدام المحاكيات .
+ تحتوي على مستشعرات للحرارة ، الضغط، الرطوبة ،...
هناك العديد من التطبيقات الت طورت بالرقاقة .. مثل التطبيق الذي ابهرني مقياس الزلازل .
بصراحة اعتقد ان المستقبل في هذه المنصة .

اهلا وسهلا بك بيننا من جديد

وننتظر منك المزيد حول هذه الرقاقة وتطبيقاتها

يعطيك العافية
شـــايـفـــك

الرد }}}}
تم الشكر بواسطة:
#7
تجربتي للمتحكم





الرد }}}}
تم الشكر بواسطة: ali.alfoly
#8
ياريت يااخ طارق تشرحلنا الموضوع ده تم كيف
وجزاك الله خيرا
الرد }}}}
تم الشكر بواسطة:
#9
اخي واستاذي الفاضل ابو ليث
الله لايحرمنا من شخصك الكريم يارب بصراحة لا اعرف ماذا اعبر كلمة شكرا لاتفي بحقك
لكن ادعو لك بهذا الدعاء الله يبعد عنك شر بني ادم ويسترك في الدنيا والاخرة يارب ويمن عليك بالصحة والعافية يارب
كفيت ووفيت وبارك الله فيك وزادك علما
الرد }}}}
تم الشكر بواسطة: Amir_alzubidy , abulayth
#10
شكرا على الشره
انا مبتدأ فى الالكنترونيات
عندى شريحه atmega328p-pu
اريد برمجتها عن طريق Arduino UNO
ببرامج Arduino IDE
ولاكن المشكله ان البرنامج لا يحتوى على BootLoader مناسب للشريحه !
ارجو المساعده ؟
الرد }}}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم