 |
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
|
|
نشاط [ sheimy ]
قوة السمعة:99
|
|
24-09-2009, 12:20 PM
المشاركة 1
|
|
بسم الله الرحمن الرحيم
بداية
اننى لا امانع بنشر هذا الشرح فى اى منتدى ولا امانع بان يشرح شخص اخر ويعدل عليه ولكن
لابد من حفظ الحقوق بان يذكر اسم كاتب الموضوع لان بعض الناس استفاد من شرحى ولكن عندما بدا يشرح ويضيف الجديد لم يذكرنى باى شئ واظن ان ذكر اسمى شيئ من حقى
والان لنبدا
سنبدا بكود السى شارب
فى البداية نستعدى هذة المكتبة
كود:
using System.IO.Ports;
ثم يتم تعريف بورت جديد كالاتى
كود:
SerialPort port = new SerialPort("COM2", 9600);
فى السطر السابق تم الاتصال بالبورت COM2 وال BudRate له 9600
فى ال constractor يتم فتح البورت كما يلى
بعد ذلك لارسال البيانات مثلا "SHEIMY"
نستخدم الامر
كود:
port.Write("SHEIMY");
ملاحظة
يتم ارسال شيمى حرف حرف
S H E I M Y
من هنا نكون قد انتهينا من كود السى شارب
والان الى كود الميكرو سى
نستقبل الحروف ونضعها فى مصفوفة عدد العناصر لها 6
وفى ال Main نعمل initilization للبورت بنفس القيم فى السى شارب
والان لنرى كيفية استقبال الاحرف ووضعها فى المصفوفة
كود:
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
|