13 Ekim 2013 Pazar

c# seri haberleşme

C# ile Seri Port Kontrolü ve PIC18F2550

Çok bilinen ve çok basit bir işlem olan seri port kontrolünü C# kullanarak basit bir uygulama ile göstermeye çalışacağım. Seri haberleşmenin elektronikte ne kadar önemli bir yere sahip olduğunu anlatmama sanıyorum gerek yoktur. Bu uygulama için hangi PIC modelini kullandığınızın bir önemi yok. Ben elimde olan PIC18F2550 mikrodenetleyicisini kullanmayı tercih ettim.


Rx,Tx pinleri bağlantıları yapıldı ve devremiz çalışmaya hazır.
C# uygulamamıza başlayabiliriz. Form üzerindeki elemanları aşağıdaki gibi yerleştirdikten sonra ilk combobox için isim alanına “baudRate”, ikinci combobox için isim alanına “portName” yazıyoruz. İlk combobox için properties penceresinden items alanına 1200, 2400, 4800, 7200, 9600, 14400, 19200, 28800, 38400, 57600, 115200 değerlerini alt alta ekliyoruz. İkinci combobox için properties penceresinden items alanına COM1,COM2,COM3,COM4,COM5,COM6 değerlerini alt alta ekliyoruz.

Daha sonra form üzerine bir textbox ve bir buton daha ekliyoruz. Textbox’ın enabled özelliğini ve Port Aç butonu ile Led Toggle butonunun enabled özelliğini false yapıyoruz. Formun yeni görüntüsü aşağıdaki gibi oluyor.

Uygulama kodları :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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;
using System.IO;
 
namespace SeriPort
{
    public partial class Form1 : Form
    {
        SerialPort SeriPortum;
        public Form1()
        {
            InitializeComponent();
        }
        private void OkumaFonksiyonum(object s, SerialDataReceivedEventArgs e)
        {
            int bytes = SeriPortum.BytesToRead;
            byte[] buffer = new byte[bytes];
            SeriPortum.Read(buffer, 0, bytes);
            if (buffer[0] == 0xBB)
            {
                textBox1.Text = "LED On";
            }
            else if (buffer[0] == 0xCC)
            {
                textBox1.Text = "LED Off";
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            SeriPortum = new SerialPort();
            SeriPortum.DataReceived += new SerialDataReceivedEventHandler(OkumaFonksiyonum);
            baudRate.SelectedItem = "1200";
            portName.SelectedItem = "COM3";
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                SeriPortum.PortName = portName.Text.ToString();
                SeriPortum.BaudRate = Convert.ToInt32(baudRate.Text.ToString());
                SeriPortum.DataBits = 8;
                SeriPortum.Parity = Parity.None;
                button1.Enabled = false;
                button2.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Seri Port", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
 
        int control = 0;
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                if (control == 0)
                {
                    control = 1;
                    if (SeriPortum.IsOpen == false)
                    {
                        SeriPortum.Open();
                        button2.Text = "Port Kapat";
                        button3.Enabled = true;
                        baudRate.Enabled = false;
                        portName.Enabled = false;
                    }
 
                }
                else
                {
                    SeriPortum.Close();
                    control = 0;
                    button2.Text = "Port Aç";
                    button3.Enabled = false;
                    baudRate.Enabled = true;
                    portName.Enabled = true;
                    textBox1.Text = "";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Seri Port", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
 
        private void baudRate_SelectedIndexChanged(object sender, EventArgs e)
        {
            button1.Enabled = true;
            button2.Enabled = false;
        }
 
        private void portName_SelectedIndexChanged(object sender, EventArgs e)
        {
            button1.Enabled = true;
            button2.Enabled = false;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            byte[] data = { 0xAA };
            SeriPortum.Write(data, 0, 1);
        }
 
    }
}
PIC programı kodları:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <18F2550.h>
#fuses HS
#use delay (clock=20000000)
#use rs232 (baud=2400, xmit=pin_c6,rcv=pin_c7, parity=N, stop=1)
 
int data;
int1 control=0;
void main()
{
   while(1)
   {
      data=getch();
      if(data==0xAA)
      {
         control++;
      }
      if(control==1)
      {
         output_high(PIN_B7);
         putc(0xBB);
      }
      else
      {
         output_low(PIN_B7);
         putc(0xCC);
      }
   }
}
 
 
kaynak:http://www.recaisinekli.com/wp/?p=210 

27 Eylül 2013 Cuma

                    HAFIZA GÜÇLENDİRME
Unutuyor musunuz? Hafızayı Güçlendirmelisiniz!
Konsantre olmak, dikkat dağınıklıklarını ve müdahaleleri göz ardı ederek, dikkat etmeyi sürdürmektir. Hafıza yardımcılarınızı daha çok kullanmak, aynı anda birden çok şeye odaklanmamak ve atacağınız adımların hızını belirlemek, dikkat dağınıklığıyla ve müdahaleyle başa çıkma stratejileridir.
27/09/2013 - 10:52

Hafızaya Sahip Çıkmak İçin....
Unutuyor ve hatırlamakta zorluk çekiyorsanız hafızanıza sahip çıkmanız için 10 basit öneri:
1. Hafızanızın araç gereç çantasını doldurun
Örneğin; kendi kendinize konuşmak, sözel hafıza izleri yaratır. Kelimelerin baş harflerinden oluşturulan kelimeler ya da tekerlemeler hafızanızı uyarmaya yardımcı olur. Gruplamak da, hatırlamaya yardım edecek bağlantı izlerini oluşturmak için önemlidir. Tekrarlamak, bilginin kısa süreli hafızanızda kalmasına yardım eder.
2. Motive edicinizi bulun ve girişimde bulunun
Hafızanızın gelişmesi motivasyona dayanır. İnsanlar motive edildiklerinde, yaşadıkları şey kalıcı anılarıyla birleşsin diye dikkat ederler ve konsantre olurlar.
3. Hayattan keyif alın
Hayattan keyif almak için, öncelikle yaşadığınız acılarla başa çıkabilmeniz gerekir. Hayatı anlamaya çalışmak ise, sizi yeni bilgi arayışına ve bu bilgiyi hatırlama isteğine götürür. İlişkiler hayatımızın zenginleşmesine katkıda bulunduğundan, hafıza için önemlidir.
4. Odaklanma gücünüzü artırın
Dikkatinizi odaklamak, bazı şeylerin siz istediğiniz sürece zihninizde kalmasını sağlar.
5. Zihinsel müdahaleleri geçersiz kılın
Konsantre olmak, dikkat dağınıklıklarını ve müdahaleleri göz ardı ederek, dikkat etmeyi sürdürmektir. Hafıza yardımcılarınızı daha çok kullanmak, aynı anda birden çok şeye odaklanmamak ve atacağınız adımların hızını belirlemek, dikkat dağınıklığıyla ve müdahaleyle başa çıkma stratejileridir.
6. Öğrenmenize ve hayatınıza önem verin
Hafızanız zaten düzenlidir. Hafıza izleri halihazırda düzenli olarak depo edilir ve siz olayları, insanları ve bilgiyi düzenli birimler halinde hatırlarsınız. Öğrenmeye düzen vermenin dışında zamanınızı ve çevrenizi de düzenlemek hafızanızı geliştirecektir.
7. Sağlığınıza önem verin

Sağlığı korumak için plan yapmak hafızanın iyi çalışması için esastır. Bu plan dengeli beslenmeyi, egzersiz yapmayı, toksik maddelere maruz kalmayı en aza indirmeyi ve düzenli doktor kontrolünden geçmeyi kapsar.
8. Stres ve depresyonla başa çıkın
Ruhsal durumlar ve duygular, hafızayı olumsuz yönde etkiler. Bunlardan korunma yollarını denemelisiniz.
9. Yaşlanma sürecini anlayın
Yaşla bağlantılı duyusal değişiklikler hafızanız için önemli. Stratejilerle bundan kurtulabilirsiniz.
10. Kendinizin rehberi olun
Tutumunuzda ve hayat tarzınızda hafızanızın daha iyi olmasını sağlayacak olumlu değişiklikleri yapabilirsiniz.