Welcome & Happy Holidays!
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    AI giúp em VS2010 đọc tín hiệu từ RS232.

    Các bạn giúp mình với. Vấn đề của mình là giao tiếp PIC với PC qua RS232 dùng phần mềm Visual Studio 2010.
    Phần giao tiếp từ PC gửi lệnh để điều khiển Vi Xử Lý mình làm xong hết rồi, nhưng vấn để của mình là PIC gửi lên PC nó ko nhận được.
    Dưới PIC mình dùng lệnh gửi lên.


    [IMG]http://*************/attachments/61164/[/IMG]



    if(RB0 == 1)
    {
    putc('a');
    }

    Và đây là lệnh nhận trên VS2010

    string dulieu = serialPort.ReadExisting();
    if (dulieu == "a")
    {
    tt1.BackColor = Color.Red;
    }
    else
    {
    tt1.BackColor = Color.White; // thay đổi màu của led trên giao diện VS2010
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đây là code em viết trên PICC
    #include <16f877a.h>
    #include <string.h>
    #include <stdlib.h>
    #fuses nowdt,nolvp,noprotect,xt,put
    #use delay(clock=4000000)
    #use fast_io(b)
    #use fast_io(c)
    #byte PORTB = 0x06
    #byte PORTC = 0x07
    #bit RB3 = 0x06.3
    #bit RB2 = 0x06.2
    #bit RB1 = 0x06.1
    #bit RB0 = 0x06.0

    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

    #int_RDA
    void ngat_RDA()
    {
    char data;
    data=getc();
    switch (data)
    {
    case '1':
    {
    RB0=1;
    break;
    }
    case '2':
    {
    RB1=1;
    break;
    }
    case '3':
    {
    RB2=1;
    break;
    }
    case '4':
    {
    RB3=1;
    break;
    }
    case '5':
    {
    RB0=0;
    break;
    }
    case '6':
    {
    RB1=0;
    break;
    }
    case '7':
    {
    RB2=0;
    break;
    }
    case '8':
    {
    RB3=0;
    break;
    }
    case '9':
    {
    PORTB=0b00001111;;
    break;
    }
    case '0':
    {
    PORTB=0;
    break;
    }
    }
    }
    void main()
    {
    enable_interrupts(int_RDA);
    enable_interrupts(global);
    set_tris_b(0x00);
    set_tris_c(0x80);
    PORTB=0;
    while(1)
    {
    if(RB0 == 1)
    {
    putc('a');
    }
    }
    }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Còn đây là code trên VS2010
    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;
    using System.IO.Ports;

    namespace DieuKhien
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == false)
    {
    serialPort.Open();
    MessageBox.Show("Kết Nối Com1 thành công");
    }
    else
    {

    MessageBox.Show("Cổng Com1 đang mở");
    }
    }

    private void button2_Click(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    serialPort.Close();
    MessageBox.Show("Đã ngắt kết nối với Com1");
    }
    }

    private void chxDevice1_CheckedChanged(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    if (chxDevice1.Checked == true)
    {
    serialPort.Write("1");
    }
    else
    {
    serialPort.Write("5");
    }
    }

    }

    private void chxDevice2_CheckedChanged(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    if (chxDevice2.Checked == true)
    {
    serialPort.Write("2");
    }
    else
    {
    serialPort.Write("6");
    }
    }
    }

    private void chxDevice3_CheckedChanged(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    if (chxDevice3.Checked == true)
    {
    serialPort.Write("3");
    }
    else
    {
    serialPort.Write("7");
    }

    }
    }

    private void chxDevice4_CheckedChanged(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    if (chxDevice4.Checked == true)
    {
    serialPort.Write("4");
    }
    else
    {
    serialPort.Write("8");
    }
    }
    }

    private void chxDeviceon_CheckedChanged(object sender, EventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    if (chxDeviceon.Checked == true)
    {
    serialPort.Write("9");
    }
    else
    {
    serialPort.Write("0");
    }
    }

    }

    private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
    if (serialPort.IsOpen == true)
    {
    // Nhận tín hiệu từ cổng COM thôi để
    string dulieu = serialPort.ReadExisting();
    if (dulieu == "a")
    {
    tt1.BackColor = Color.Red;
    }
    else
    {
    tt1.BackColor = Color.White;
    }
    }
    }
    private void tt1_Click(object sender, EventArgs e)
    {

    }

    private void tt2_Click(object sender, EventArgs e)
    {

    }

    private void tt3_Click(object sender, EventArgs e)
    {

    }

    private void tt4_Click(object sender, EventArgs e)
    {

    }

    }
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 07:06 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2021 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.