 |
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
|
|
نشاط [ sheimy ]
قوة السمعة:98
|
|
06-09-2009, 12:52 PM
المشاركة 1
|
|
الحمد لله رب العالمين
بعد عرض الاخ الفاضل المهندس احمد سمير لموضوع زيادة مخارج الميكرو
وباتفاق معه تم تصميم هذا البرنامج بواسطتى
فبهذا البرنامج يمكنك التحكم فى اكثر من 80 جهاز(ريليه) فى نفس الوقت
بمعنى انك يمكنك التحكم فى بيتك بالكامل من هذا البرنامج
وهذة هى صور البرنامج
قريبا باذن الله شرح للبرنامج وكود الميكرو سى وكود السى شارب
شرح فديو للدائرة ومشاهدة البرنامج يعمل ويتحكم بها
http://www.teradepot.com/d3xxkedl7m8...oller.rar.html
مهندس احمد عبدالكريم
كود الميكروسى
كود:
char text[80];
char x,i;
void main()
{
trisb=0;
portb=0;
UART1_Init(9600);
i=0;
while(1){
if(UART1_Data_Ready()){
text[i]= UART1_Read();
i++;
if(i==80){
i=0;
for(x=0;x<80;x++)
{
portb.f0=text[x];
portb.f1=0;portb.f1=1;
}
portb.f2=0;portb.f2=1;}
}
}
}
كود السى شارب
كود:
using NationalInstruments;
using NationalInstruments.UI;
using NationalInstruments.UI.WindowsForms;
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 WindowsApplication6
{
public partial class Form1 : DevComponents.DotNetBar.Office2007Form
{
System.IO.StreamWriter ob;
System.IO.StreamReader rd;
delegate void SetTextCallback(string text);
string InputData = String.Empty;
SerialPort port;
public Form1()
{
InitializeComponent();
Switche.Enabled = false;
string[] ports = SerialPort.GetPortNames();
foreach (string port1 in ports)
{
coms.Items.Add(port1);
}
}
//==========================================================================
//Convert bool To String
//==========================================================================
public String convBoolToString(bool[] a ,bool[] b,bool [] c,bool[] d,bool[] e)
{
string s = null;
foreach (bool l in a)
{
if (l == true) { s = 1+s; }
else s = 0+s;
}
foreach (bool m in b)
{
if (m == true) { s = 1+s; }
else s = 0+s;
}
foreach (bool n in c)
{
if (n == true) { s = 1+s; }
else s = 0+s;
}
foreach (bool o in d)
{
if (o == true) { s = 1+s; }
else s = 0+s;
}
foreach (bool p in e)
{
if (p == true) { s = 1+s; }
else s = 0+s;
}
return s;
}
//============================================================================
//Convert String to Bool
//============================================================================
public bool[] convStringToBool(string k)
{
char[] f = k.ToCharArray();
bool[] p=new bool[8];
int a=0;
foreach (char l in f)
{
if (l == '0')
{
p[a] =false;
}
else
{
p[a] = true;
}
a++;
}
return p;
}
/*//==============================================================================
//Convert byte to Array of bits
//==============================================================================
public string convByteToBits(byte b)
{
int t;
string g=String.Empty;
for (t = 128; t > 0; t = t / 2)
{
if ((b & t) != 0) g += "1";
if ((b & t) == 0) g += "0";
}
return g;
}*/
/*//==============================================================================
//Recive Data From Serial
//==============================================================================
private void SetText(string text)
{
rvalue.Clear();
// InvokeRequired required compares the thread ID of the
// calling thread to the thread ID of the creating thread.
// If these threads are different, it returns true.
if (this.rvalue.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
try
{
//int r = int.Parse(text);
byte o = byte.Parse(text);
this.rvalue.Text = text;
}
catch (System.Exception ex)
{
Reaceiv();
}
}
private void Reaceiv()
{
InputData = "";
InputData = port.ReadExisting();
if (InputData != String.Empty)
{
SetText(InputData);
}
}
//==================================================================================================*/
private void s_ValuesChanged(object sender, EventArgs e)
{
//Console.Write("" + convStringToBool(convBoolToString(s.GetValues())));
port.Write(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues()));
// Console.WriteLine(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues(), s5.GetValues()));
// port.Write("111111111111111111111111");
}
private void timer1_Tick(object sender, EventArgs e)
{
//port.Write(convBoolToString(s.GetValues()));
}
private void buttonX1_Click(object sender, EventArgs e)
{
port = new SerialPort(coms.Text, 9600, Parity.None, 8, StopBits.One);
if (port.IsOpen) port.Close();
try
{
//open serial port
port.Open();
}
catch (System.Exception ex)
{
if (port.IsOpen) port.Close();
}
Switche.Enabled = true;
timer1.Start();
}
private void buttonItem1_Click(object sender, EventArgs e)
{
port = new SerialPort(coms.Text, 9600, Parity.None, 8, StopBits.One);
if (port.IsOpen) port.Close();
try
{
//open serial port
port.Open();
}
catch (System.Exception ex)
{
if (port.IsOpen) port.Close();
}
Switche.Enabled = true;
timer1.Start();
}
private void s1_ValuesChanged(object sender, EventArgs e)
{
port.Write(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues()));
}
private void s2_ValuesChanged(object sender, EventArgs e)
{
port.Write(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues()));
}
private void s3_ValuesChanged(object sender, EventArgs e)
{
port.Write(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues()));
}
private void s4_ValuesChanged(object sender, EventArgs e)
{
port.Write(convBoolToString(s.GetValues(), s1.GetValues(), s2.GetValues(), s3.GetValues(), s4.GetValues()));
}
private void s5_ValuesChanged(object sender, EventArgs e)
{
}
}
}
التعديل الأخير تم بواسطة : sheimy بتاريخ 07-09-2009 الساعة 05:25 PM
|