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

   

Thamer1980
:: مهندس ::
تاريخ التسجيل: Apr 2011
المشاركات: 8
نشاط [ Thamer1980 ]
قوة السمعة:
قديم 20-04-2011, 08:02 PM المشاركة 9   
افتراضي



جزاك الله خيرا مهندس عاصم
وزادك الله من علمه
---
بالنسبة للكود
كود:
port.Write(a, 0, 1);
أنا كتبته
كود:
port.Write(textBox1.Text,0,1);
كيف أحول TEXTBOX1.TEXT إلى رقم ومن ثم الرقم أحوله إلى مصفوفه علما بأنني أرسل رقم في هذا التكست
---
كذلك أخي

أريد ان أخزن الفترة الزمنية في البك
بحيث أنه أذا طلب منه العمل مرّه أخرى يقوم بتشغيل اللد بنفس الفترة المخزنه في البك
أنا حاولت أن أتعامل مع الذاكره في البك من خلال هذه المتغيرات
كود:
code 
data 
rx 
sfr 
ldm
و لكن واجهتني أخطاء في التشغيل
هل لها متطلبات لكي أتعامل معها
و لك جزيل الشكر


التعديل الأخير تم بواسطة : Thamer1980 بتاريخ 20-04-2011 الساعة 08:22 PM
اعلانات

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 20-04-2011, 11:52 PM المشاركة 10   
افتراضي


بالنسبة للمشكلة الاولى
هذا الكود يفى بالغرض :
كود:
System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
    Byte[] bytes = encoding.GetBytes(textBox1.Text);
بالنسبة للمشكلة الثانية استخدم ال eeprom

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

Thamer1980
:: مهندس ::
تاريخ التسجيل: Apr 2011
المشاركات: 8
نشاط [ Thamer1980 ]
قوة السمعة:
قديم 21-04-2011, 05:41 PM المشاركة 11   
افتراضي


شكرا م عاصم على المساعده
---
و لكن عندما أضف زمن وقدره 5 ثواني فأن يضيئ ولا يطفي..
---
أخي
أنا أريد أن أرسل للبك أكثر من أمر أريد أن أجعل rs232 ان تستقبل مني أمر بإضائة اللد لمدة 10 ثواني و بعد أستقبال الأمر و أثناء تنفيذه أريد أيضا أن تستقبل مني أمر بإضائة اللد الثاني
هذا هو كود السي شارب
كود:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace ser33
{
    public partial class Form1 : Form

    {
        SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string x;
            x = "a";
            /*int anInteger;
            anInteger = Convert.ToInt32(textBox1.Text);
            anInteger = int.Parse(textBox1.Text);
            char[] ar1 ={ textBox1.Text };*/
            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            Byte[] bytes = encoding.GetBytes(textBox1.Text);


          
            port.Open();
            port.Write(x);
            port.Write(bytes,0,1);
            port.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string z;
            z = "b";

           /* int anInteger2;
            anInteger2 = Convert.ToInt32(textBox2.Text);
            anInteger2 = int.Parse(textBox2.Text);
            char[] ar2 ={ textBox2.Text };*/
            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            Byte[] bytes = encoding.GetBytes(textBox2.Text);

            port.Open();
            port.Write(z);
            port.Write(bytes,0,1);
            
            port.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
و هذا كود الميكروسي
كود:
data p1,p2,p11,p22;

void main()
{
 int i,y;
trisb=0;
portb=0;
uart1_init(9600);
delay_ms(500);

while (1)
{ 
if(uart1_data_ready())
{
                   p1=uart1_read();
                   if (p1 == 'a') {
                   p11=uart1_read();
  for(i=1;i<=p11;i++)
{            portb.b3=1;
   vdelay_ms(1000);
           }
            portb.b3=0;
           }
           if (p1 =='b'){
           p22=uart1_read();
  for(y=1;y<=p22;y++)
{
   portb.b2=1;
   vdelay_ms(1000);
          }
            portb.b2=0;
           
          }}

}}
و لك جزيل الشكر


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 21-04-2011, 07:06 PM المشاركة 12   
افتراضي


المشكلة الاولى قم برفع المشروع كاملا ميكروسى +سى شارب فى ملف rar حتى اعرف المشكلة .
بالنسبة للمشكلة الثانية استخدم المقاطعة intrrupt لل UART .
اذا ارسلت الملف سوف اضيفها لك ان شاء الله.
بالتوفيق


Thamer1980
:: مهندس ::
تاريخ التسجيل: Apr 2011
المشاركات: 8
نشاط [ Thamer1980 ]
قوة السمعة:
قديم 21-04-2011, 07:45 PM المشاركة 13   
افتراضي


جزاك الله خيرا
--
أخ عاصم أرجو فحص الملفات
--
http://www.mediafire.com/?952s1fe2d0rg7sp


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 23-04-2011, 11:02 PM المشاركة 14   
افتراضي


السلام عليكم
اعتذر عن التاخير للانشغال :
هذا كود الميكروسى

كود:
int p2,p11,p22;
char p1;

void main()
{
int i,y;
trisb=0;
portb=0;
uart1_init(9600);
delay_ms(500);

while (1)
{
if(uart1_data_ready())
{
                   p1=uart1_read();
                   if (p1 == 'a') {
                   while(uart1_data_ready()!=1){}
                   p11=uart1_read();
  for(i=1;i<=p11;i++)
{            portb.b3=1;
  delay_ms(1000);
           }
            portb.b3=0;
           }
           if (p1 =='b'){
           while(uart1_data_ready()!=1){}
           p22=uart1_read();
  for(y=1;y<=p22;y++)
{
   portb.b2=1;
   delay_ms(1000);
          }
            portb.b2=0;

          }
          }

}
}
وهذا كود السى شارب :

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

namespace ser33
{
    public partial class Form1 : Form

    {
        Byte[] bytes = new byte[1] { 0 };
        SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string x;
            x = "a";
            /*int anInteger;
            anInteger = Convert.ToInt32(textBox1.Text);
            anInteger = int.Parse(textBox1.Text);
            char[] ar1 ={ textBox1.Text };*/
            //System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            //Byte[] bytes = encoding.GetBytes(textBox1.Text);
            bytes[0] = byte.Parse(textBox1.Text);
            port.Open();
            port.Write(x);
            System.Threading.Thread.Sleep(100);
            port.Write(bytes,0,1);
            port.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string z;
            z = "b";

           /* int anInteger2;
            anInteger2 = Convert.ToInt32(textBox2.Text);
            anInteger2 = int.Parse(textBox2.Text);
            char[] ar2 ={ textBox2.Text };*/
           // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            //Byte[] bytes = encoding.GetBytes(textBox2.Text);
            bytes[0] = byte.Parse(textBox2.Text);
            port.Open();
            port.Write(z);
            System.Threading.Thread.Sleep(100);
            port.Write(bytes,0,1);
            
            port.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
ان شاء الله فيما بعد ساشرح لك التعديلات .
اذا عندك اى استفسار لا تتردد.
بالتوفيق


Thamer1980
:: مهندس ::
تاريخ التسجيل: Apr 2011
المشاركات: 8
نشاط [ Thamer1980 ]
قوة السمعة:
قديم 24-04-2011, 05:41 PM المشاركة 15   
افتراضي


جزاك الله خير
و أنا سوف أقوم بتشغيل الأكواد
و منتظر شرحك
زادك الله علما و خلقا


Thamer1980
:: مهندس ::
تاريخ التسجيل: Apr 2011
المشاركات: 8
نشاط [ Thamer1980 ]
قوة السمعة:
قديم 26-04-2011, 12:17 PM المشاركة 16   
افتراضي


اخي
لدي شاشة مصمم بالسي شارب و بها زرين الأول لتشغيل اللد و الأخر لإطفاء اللد
عندما أقوم بتشغيل اللد فأن اللد يشتغل ولكن عندما أريد الضغط على إطفاء اللد لا يطفي معي
و هذه الصوره توضح ذلك
http://img863.imageshack.us/i/98635577.gif/

و هذا هو الكود (ميكروسي)

كود:
data da,da1;
void main(){
trisb=0;
trisd=0;
portd=0;
portb=0;
portb.b1=1;portb.b5=1;
delay_ms(1000);
portb.b1=0;portb.b5=0;
uart1_init(9600);
delay_ms(100);
while(1)
{
if(uart1_data_ready())
{
da=uart1_read();
if (da='r')

{
portb.b1=1;
portb.b5=1;
portd.b0=1;
}
else if (uart1_data_ready())
{
da=  uart1_read();
if (da='s')


{
portd.B2=1;
portb.B2=1;
    }}                    }


   }
}
و هذا كود السي شارب

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

namespace serialp22
{
    public partial class Form1 : Form
    {



       Byte[] bytes = new byte[1] { 0 };


        SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
           //string n1;
            //n1 = "D";
            //textBox1.Text = "1";

           //int x1 = 1;
          // bytes[0] = byte.Parse(textBox1.Text);

          
           //bytes = BitConverter.GetBytes(x1);


            port.Open();
        port.Write("r");
         System.Threading.Thread.Sleep(100);

            //port.Write(bytes, 0, 1);
            port.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
          //  textBox2.Text = "0";
            //string n2;
            //n2 = "Y";
          // int x2 = 0;
           // bytes[0] = byte.Parse(textBox1.Text);
            //bytes = BitConverter.GetBytes(x2);
            //bytes[0] = byte.Parse(textBox2.Text);
            if (port.IsOpen)
                port.Close();
            port.Open();
            port.Write("s");
         System.Threading.Thread.Sleep(100);

           //port.Write(bytes, 0, 1);
         port.Close();
        }

        
    }
}
اللذي أريده عندما أقوم تشغيل اللدات أريد أن اطفي هذه اللدات
و لك جزيل الشكر


التعديل الأخير تم بواسطة : Thamer1980 بتاريخ 26-04-2011 الساعة 03:33 PM


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