PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 17-04-2012, 04:30 PM   #37
daretowin
Nhập môn đệ tử
 
Tham gia ngày: Apr 2012
Bài gửi: 3
:
Mình cũng đang làm truyền gửi dữ liệu để điều khiển Robot.

Ở trên máy tính mình viết code gửi xuống như sau: (để điều khiển rẻ trái rẻ phải, tới lùi...)

private void forward_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("0#");
STATUS.Text = "ROBOT FORWARD";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}
private void turnleft_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("1#");
STATUS.Text = "ROBOT TURN LEFT";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}

private void stop_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("2");
STATUS.Text = "ROBOT STOPPING";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}

private void turnright_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("3");
STATUS.Text = "ROBOT TURN RIGHT";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}




Bên vi điều khiển Pic mình viết code nhận như sau(không hiểu nhận như thế này có đúng không), mà kết quả mình nhận được là mạnh đứng chả có hiện tượng chi hết.

#include <16F877A.h>
#include <def_16F877A.h>
#device *=16
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT //khai bao cac thiet dat cho PIC
#use delay(clock=4000000)
#bit rc0 = 0x07.0 //khai bao su dung thach anh 20MHz de su dung ham delay cua chuong trinh
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7)
/************************************************** ***********************************/
signed int8 y=0;
#INT_RDA
VOID RECEVICE()
{
y=getc();

}
void main()
{
rc3=0;
enable_interrupts(global);
enable_interrupts(INT_RDA);
while(true)
{
if(y==0)
{ rephai();
}
if(y==1)
{
retrai();
}
}
}............





Mong các cao thủ giúp mình, mình dùng lệnh gửi serialPort1.Write("2");
Thì lệnh nhận ở vi điều khiển if(y==2) có đúng không? Hay nó sẽ hiểu theo kiểu HEX của kí tự "2" ạ ?
daretowin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:07 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam