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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 04:57 PM المشاركة 1   
افتراضي الاتصال التسلسلى الغير متزامن مع لغة Basic والمترجم Proton بين PC-PIC و PIC-PIC من 2م Twitter FaceBook Google+



الاتصال التسلسلى الغير متزامن مع لغة Basic والمترجم Proton بين PC-PIC و PIC-PIC من 2متر و حتى 1200 متر :
الاتصال التسلسلى بدون استخدام الدائرة المتكاملة MAX232 :
التدريب الأول : الإرسال عن طريق الدالة Serin :


البرنامج :
كود:
;Serial-communication1-SerOut Include "modedefs.bas" ;including communication modes Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode start: High PORTB.2 ;test LED run DelayMS 1000 Low PORTB.2 DelayMS 500 SerOut PORTB.1, N2400,["HELLO WORLD"] ;24008N1 serially send the characters "HELLO WORLD" GoTo start ;repeating the process End

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 04:59 PM المشاركة 2   
افتراضي


التدريب الثانى : الاستقبال عن طريق الدالة Serin :
البرنامج :

;communications2-without-MAX232-SerIn (Reciever)
Include "modedefs.bas" ;Include communication modes
Device = 16F628A
Xtal=4
All_Digital=true ;all port A switch to digital mode

LCD_DTPin PORTB.4
LCD_RSPin PORTB.2
LCD_ENPin PORTB.3

Dim dat As Byte ;storing variable 255

Print Cls
Print At 1,1,"LCD ready" ;text to verify the connection
Print $FE,$C0 ;Move cursor to beginning of second line

start:
SerIn PORTB.0 , T2400 , [dat] ;expect the data and save it to dat
Print dat
GoTo start ;going to wait for the next character
End

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 05:02 PM المشاركة 3   
افتراضي


الاتصال التسلسلى مع استخدام الدائرة المتكاملة MAX232 :
التدريب الثالث :
الدائرة المتكاملة MAX232 هى الحل للأرسال والاستقبال لمسافات طويلة لأنها تقوم بزيادة مستوة الجهد من 5V إلى +10V وذلك عن طريق مجموعة من المكثفات . تمتلك الدائرة المتكاملة MAX232 مجموعتين من (الارسال و الاستقبال) ، وسوف نكتفى بمجموعة واحدة فقط . الدائرة المتكاملة MAX232 تساعدنا فى تحويل مستوى جهود الميكروكونترولر PIC وهو من النوع TTL إلى مستوى جهود المعيار RS232 ، وهذا يعنى أنه إذا أرسلنا منطق مرتفع (5V) من خرج الميكروكونترولر PIC إلى دخل الإرسال Tin للدائرة المتكاملة MAX232 ، يكون خرج الإرسال المقابل هو (-10V) ، وإذا أرسلنا المنطق المنخفض (0V) من خرج الميكروكونترولر ، نحصل من خرج MAX232 على الجهد (+10V) ، لذلك يجب يجب عكس البيانات من خرج الميكروكونترولر عن طريق استخدام الأمر T2400 كما يلى :

كود:
SEROUT portb.1,T2400,[“D”]
أى الإرسال التسلسلى للبيانات من على الطرف PORTB.1(RB1) بسرعة 2400bits/sec وفى الشكل 8N1 ( 8 بتات – بدون تماثل – وبت إنتهاء واحدة) .
طريقة عمل البرنامج :
· فى بداية البرنامج يتم توصيل الليد ثم فصله للتأكد من أن كل شىء يعمل بشكل صحيح .
· الآن يمكنك من الكومبيوتر إرسال أحر حرف فيما عدا حرف "C" ، ولاحظ أن الليد يومض فى كل مرة ترسل فيها حرف .
· إذا أرسلت الحرف "C"capital ، فإن الليد سوف يتم توصيله بشكل مستمر وعلى الفور يقوم الميكروكونترولر PIC بإرسال أرقام عداد مفصولة بإشارة السالب (-) بدءا من الصفر (0) وحتى (255) . هذا المثال تطبيق على إسلوب الاتصال "نصف-المزدوج" half-duplex ،وفيه يتم نقل البيانات فى كلا الاتجاهين ولكن ليس فى نفس الوقت .





البرنامج :

كود:
;Serial communication3-with MAX232 Include "modedefs.bas" ;icommunication modes include Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode Dim led As PORTB.7 ;led to the port name b.7 Dim dat As Byte ; Variable Storage 255 Dim num As Byte ;Variable to store the counter num=0 ;Variable initial content for num GoSub redLED ;leds go to see if they ripped the PIC start: SerIn PORTB.0,N2400,[dat] ;expect the data and save it to dat If dat = "C" Then count ;if data is a C starts counting GoSub redLED GoTo start ;going to wait for the next character count: High led ;LED on indicates sending data only SerOut PORTB.1,N2400,[#num,"-"] ;send the contents of the variable decimal num ;followed by a minus sign num=num+1 ;Variable increased by 1 DelayMS 1000 ;wait 1 s GoTo count ;go to subroutine count redLED: ;subroutine led High led DelayMS 200 Low led Return End


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 06:02 PM المشاركة 4   
افتراضي


الاتصال التسلسلى بين ميكروكونترولر PIC وميكروكونترولر PIC أخر :
التدريب الرابع :
هذا المشروع يهتم بعمل إسلوب إرسال بسيط simplex بين ميكروكونترولر PIC كجهاز إرسال وميكروكونترولر أخر كجهاز استقبال .
طريقة العمل :
· فى جانب جهاز الإرسال يوجد 3 مفاتيح ضاغطة .
· عند الضغط على المفتاح A يتم إرسال الحرف "A" والذى يكشفه جهاز الاستقبال فيقوم بإضاءة الليد الأحمر لمدة واحد ثانية .
· وعند الضغط على المفتاح B يتم إرسال الحرف "B" والذى يكشفه جهاز الاستقبال فيقوم بإضاءة الليد الأصفر لمدة واحد ثانية .
· وعند الضغط على المفتاح C يتم إرسال الحرف "C" والذى يكشفه جهاز الاستقبال فيقوم بإضاءة الليد الأخضر لمدة واحد ثانية .
هذه الطريقة عمليه وغير معقدة وبدون MAX232 للتوصيل المباشر بين ميكروكونترولر وآخر على مسافة لا تتعدى 2 متر .
فى هذا المشروع يمكن أن نستخدم مصدر واحد أو مصدرين للجهد 5V ، لكن الأفضا استخدام مصدرين للحصول على جودة فى الاتصال ، وسوف نحتاج إلى برنامجين مختلفين أحدهما لجهاز الإرسال والآخر لجهاز الاستقبال .

برنامج جهاز الإرسال :



كود:
;Serial Communication4-PIC-PIC-Transmitter Include "modedefs.bas" ;communication modes include Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode Dim buttonA As PORTB.1 ;b.1 port name Buttona Dim buttonB As PORTB.2 Dim buttonC As PORTB.3 transmit: If buttonA=0 Then send1 ;if the Button A is pressed go send1 If buttonB=0 Then send2 ;If the Button B is pressed go send2 If buttonC=0 Then send3 ;If the Button C is pressed go send3 GoTo transmit send1: SerOut PORTB.0,N2400,["A"] ;send "A" to 24008N1 DelayMS 500 GoTo transmit send2: SerOut PORTB.0,N2400,["B"] ;send "B" To 24008N1 DelayMS 500 GoTo transmit send3: SerOut PORTB.0,N2400,["C"] ;send "C" To 24008N1 DelayMS 500 GoTo transmit End
برنامج جهاز الاستقبال :



كود:
;Serial Communication4-PIC-PIC-Reciever Include "modedefs.bas" ;communication modes include Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode Dim redLED As PORTB.1 ;b.1 name redLED Dim yellowLED As PORTB.2 Dim greenLED As PORTB.3 Dim dat As Byte ;Variable to store the serial data High redLED ;led to see if PIC run DelayMS 500 Low redLED receive: SerIn PORTB.0, N2400, [dat] ;receive serial data and save data If dat="A" Then High redLED :DelayMS 1000 ;if "A" turn redLED and wait 1 sec. If dat="B" Then High yellowLED :DelayMS 1000 If dat="C" Then High greenLED :DelayMS 1000 Low redLED :Low yellowLED : Low greenLED GoTo receive End


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 06:05 PM المشاركة 5   
افتراضي


الاتصال التسلسلى بين PIC و PIC مع واجهة الربط RS485 :
التدريب الخامس :
هذا المشروع يقوم بالاستقبال والإرسال بين PIC و PIC آخر مع واجة الربط RS485 وفى إسلوب الإرسال "المزدوج الكامل" full-duplex والشائع الاستخدام فى أجهزة الإنذار .
طريقة العمل :
· فى بداية التشغيل يضىء كل من الليدين الأحمر لفترة ، وهذا يشير إلى سلامة بداية التشغيل .
· يوجد فى المرسل 2 مفتاح ضاغط وليد أحمر ، ويوجد فى المستقبل 2 ليد ، ليد أحمر وليد أخضر بالإضافة إلى مفتاح ضاغط .
· عند الضغط على المفتاح الضاغط للإرسال "A" يومض الليد الأحمر عند المستقبل ، وعند الضغط على المفتاح الضاغط للإرسال "B" يومض الليد الأخضر عند المستقبل . ومن ثم نكون قد قمنا بتنفيذ الاتصال من جهة واحدة .
· والأن جاء دور إجراء العملية العكسية ، أى جعل المرسل مستقبل وجعل المستقبل مرسل ، لتنفيذ ذلك يتم أولا الضغط على كل من المفتاح الضاغط "A" والمفتاح الضاغط "B" للمرسل فى نفس الوقت لمدة ثانية فيتحول المرسل إلى مستقبل ، ويتحول المستقبل إلى مرسل ،عندئذ يمكن الضغط على المفتاح الضاغط "Z" الموجود عند المستقبل ، ونلاحظ وميض الليد الأحمر الموجود عند المرسل مرتين .
· للرجوع لوضع البداية مرة أخرى يتم فصل وإعادة تشغيل كلا PIC .







برنامج الميكروكونترولر PIC الأول U1 :


كود:
;Serial-communication-RS485-transmitter/Reciever Include "modedefs.bas" ;incluyen los modos de comunicaciَn Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode
Dim control As PORTB.2 ;TX and RX control pin b.2 Dim led As PORTB.3 ;led :name of b.3 pin Dim received As Byte ;variable to store received data
GoSub red ;go to led sub. to test PIC run
sending: ;sending subroutine High control ;transmitter TX control mode If PORTB.4=0 And PORTB.5=0 Then receiver ;If buttons "A" And "B" are pressed go to receiver If PORTB.4=0 Then redLED ;if button "A" is pressed go to redLED If PORTB.5=0 Then greenLED ;if button "B" is pressed go to greenLED GoTo sending
redLED: ;subrutine redLED GoSub red ; LED light SerOut PORTB.0,T2400,["A"] ;send character "A" from b.0 pin DelayMS 500 GoTo sending ;go back to sending
greenLED: GoSub red SerOut PORTB.0,T2400,["B"] ;send character "B" from pin b.0 B DelayMS 500 GoTo sending ;go back To sending
receiver: ;subrutine receiver GoSub red ;red led sub SerOut PORTB.0,T2400,["C"] ;send character "C" from pin b.0 DelayMS 500
receiving: ;subrutine receiving Low control ;switch to receiver RX mode SerIn PORTB.1,T2400,[received] ;wait and save received data If received="Z" Then perfect ;if character "Z" received go to perfect GoTo receiving ;Otherwise,waiting , go to Receiving
red: High led ;red LED lighting DelayMS 200 ;wait 200 ms Low led ;red led off DelayMS 200 Return ;GoSub return to that sent
perfect: ;2 LED lighting sub GoSub red GoSub red GoTo receiving ; go to Receiving End


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 24-07-2013, 06:07 PM المشاركة 6   
افتراضي


برنامج الميكروكونترولر PIC الثانى U2 :

كود:
;Serial-communication-RS485-Reciever Include "modedefs.bas" ;includes transmission modes Device = 16F628A Xtal=4 All_Digital=true ;all port A switch to digital mode
Dim control As PORTB.2 ;control pin Dim redLED As PORTB.3 Dim greenLED As PORTB.4 Dim date As Byte ;variable para almacenar dato serial
GoSub red ;led to to see if PIC run
receive: ;subroutine receive Low control ;receiver control mode SerIn PORTB.0,T2400,[date] ;wait for serial data and store If date="A" Then ok1 ;if data is character "A" go to ok1 If date="B" Then ok2 ;if data is character "B" go to ok2 If date="C" Then transmitter ;if data is character "C" go to transmitter High greenLED : High redLED ;2 LEDs lights when the DelayMS 2000 ;received data is not A,B or C Low greenLED :Low redLED DelayMS 500 GoTo receive ; go to receive
ok1: ;subrutine ok1 GoSub red ;go to red sub GoTo receive ;go To receive
ok2: ;subrutine ok2 High greenLED ;turn on the green LED DelayMS 200 Low greenLED ;go To receive GoTo receive
transmitter: ;subroutine transmitter mode High control ;Control switches to transmitter If PORTB.5=0 Then ;if we press the button "Z" AT PORTB.5 SerOut PORTB.1,T2400,["Z"] ;send character "Z" FROM b.1 pin DelayMS 500 ;wait 0.5 sec. EndIf ;condition end GoTo transmitter ;back to transmitter
red: ;subrutine red High redLED ;red led on DelayMS 200 Low redLED ; red led off DelayMS 200 Return ;Return to GoSub that sent End


Eng/Mohammed ad
:: مهندس ::
تاريخ التسجيل: Mar 2011
المشاركات: 34
نشاط [ Eng/Mohammed ad ]
قوة السمعة:0
قديم 25-07-2013, 12:45 AM المشاركة 7   
افتراضي


فتحتة الcom بتطلع 10 و -10 فولت
والبيك شغال على 0 و 5 فولت
بدون دائرة max232
سوف تقوم بحرق البك
والتوصيلى بين بيك وبيك لا تحتاح الى دائرة ماكس


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 25-07-2013, 12:57 AM المشاركة 8   
افتراضي


فتحتة الcom بتطلع 10 و -10 فولت
والبيك شغال على 0 و 5 فولت
بدون دائرة max232
سوف تقوم بحرق البك
والتوصيلى بين بيك وبيك لا تحتاح الى دائرة ماكس
السلام عليكم ورحمة الله وبركاته
أخى الكريم الفاضل

شكرا جزيلا لك

بارك الله فيك

وكل عام والنت بألف خير

مع تمنياتى بدوام التوفيق

إضافة رد

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

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

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


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

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