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

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

الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 24-09-2009, 12:20 PM المشاركة 1   
Thumbs up شرح كيفية ارسال البيانات من الكمبيوتر لل ميكرو (سى شارب وميكروسى)وبالاكواد Twitter FaceBook Google+



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

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


والان لنبدا


سنبدا بكود السى شارب

فى البداية نستعدى هذة المكتبة

كود:
using System.IO.Ports;
ثم يتم تعريف بورت جديد كالاتى
كود:
SerialPort port = new SerialPort("COM2", 9600);
فى السطر السابق تم الاتصال بالبورت COM2 وال BudRate له 9600

فى ال constractor يتم فتح البورت كما يلى
كود:
port.Open();
بعد ذلك لارسال البيانات مثلا "SHEIMY"

نستخدم الامر

كود:
port.Write("SHEIMY");
ملاحظة
يتم ارسال شيمى حرف حرف
S H E I M Y

من هنا نكون قد انتهينا من كود السى شارب
والان الى كود الميكرو سى

نستقبل الحروف ونضعها فى مصفوفة عدد العناصر لها 6
كود:
char ahmed[6];
وفى ال Main نعمل initilization للبورت بنفس القيم فى السى شارب

كود:
UART1_Init(9600);
والان لنرى كيفية استقبال الاحرف ووضعها فى المصفوفة
كود:
while(1){
      if(UART1_Data_Ready()){
           text[i]=UART1_Read();
          i++;
}
ويمكنك بعد ذلك اختبار قيمة ال i فاذا كانت ب 6 يتم عرض الداتا مثلا على LCD
وهذا هو الكود كاملا وطريقى التوصيل للعرض على شاشة LCD
كود:
unsigned short i, pos;
char text[41];


// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
void main() {
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
UART1_Init(9600);
i=0;
while(1){
      if(UART1_Data_Ready()){
           text[i]=UART1_Read();
      
          i++;
          if(i==6){
           i=0;
        Lcd_Cmd(_LCD_CLEAR);
          Lcd_Cmd(_LCD_RETURN_HOME);
            for(pos=0;pos<40;pos++){
               Lcd_Chr_Cp(text[pos]);
               DELAY_MS(50);
  }
  
  }
  }

}
}
والدائرة هنا


كود السى شارب كاملا

كود:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SerialPort port = new SerialPort("Com2", 9600);
        public Form1()
        {
            InitializeComponent();
            port.Open();

        }
private void buttonX1_Click(object sender, EventArgs e)
        {
            port.Write("SHEIMY");
  
        }
}}
اتمنى ان اكون قد وضحت ولا تنسونا من دعوة فى ظهر الغيب

ولا تنسى تقييم الموضوع

مهندس

احمد عبدالكريم
(شيمى)


التعديل الأخير تم بواسطة : sheimy بتاريخ 24-09-2009 الساعة 11:29 PM
اعلانات

MWWM
:: مهندس جيد ::
تاريخ التسجيل: Aug 2009
المشاركات: 239
نشاط [ MWWM ]
قوة السمعة:0
قديم 24-09-2009, 12:29 PM المشاركة 2   
افتراضي


السلام عليكم
اخي الحبيب هل يوحد فرق بين طريقه الارسال بلغه السي ولغه السي شاب
فلم اجد اي مصدر لسي في النت لا عربي ولا اجنبي هل يعقل هذا


ماهو الفرق بين السي والسي شارب؟


التعديل الأخير تم بواسطة : MWWM بتاريخ 24-09-2009 الساعة 12:36 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 24-09-2009, 12:35 PM المشاركة 3   
افتراضي


اللهم بارك شرح وافى وكافى طيب اذا لم اكن اعرف عدد حروف الكلمة كيف يتم تعديل البرنامج


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 24-09-2009, 12:38 PM المشاركة 4   
افتراضي


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

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


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 24-09-2009, 12:49 PM المشاركة 5   
افتراضي


اللهم بارك شرح وافى وكافى طيب اذا لم اكن اعرف عدد حروف الكلمة كيف يتم تعديل البرنامج
الحل بسيط

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

ثانيا حتى لكى تتوقف اللوب عندما تنتهى الداتا وليس الوصول الى نهاية المصفوفة يتم استخدام الاتى فى جملة ال for

كود:
for(pos=0;text[pos];pos++)
                 {
             Lcd_Chr_Cp(text[pos]);
               DELAY_MS(50)
                 }
اتمنى ان تكون الامور واضحة
مع خالص الامنيات بالتوفيق
مهندس
احمــــــــــــــــــــد الشيــمــــــــــــــــــــــــــــى


hanen1
:: مهندس ::
تاريخ التسجيل: Mar 2009
المشاركات: 22
نشاط [ hanen1 ]
قوة السمعة:0
قديم 24-09-2009, 12:52 PM المشاركة 6   
افتراضي


شكررررررررررررررررااا

وجزاك الله خيرا ان شاء الله


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 24-09-2009, 12:54 PM المشاركة 7   
افتراضي


شكررررررررررررررررااا

وجزاك الله خيرا ان شاء الله
شكرا على مروركم الطيب


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 24-09-2009, 12:57 PM المشاركة 8   
افتراضي


ما كنت استفسر عنه هو الامر الثانى لكنى لم افهم الشرط فى حلقة for

إضافة رد

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

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

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


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

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