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...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 03-04-2009, 04:00 PM   #1
sinhthai
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 6
:
Pak hải ơi !cho em hỏi về rs232 cái:em muốn bít về nó mà em thì chưa bít j cả.pak có thể giúp em hỉu đôi chút về nó ko.có tài liệu nào bằng tiếng việt nói về nó ko pak.cám ơn pak nhìu
sinhthai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2009, 04:18 PM   #2
sinhthai
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 6
:
pak nao co tài liệu tiếng việt về cổng com ko.em đang rất cần.thanks các pak nhìu,
sinhthai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-04-2009, 04:37 PM   #3
trinhminhson86
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 2
:
Em đang tìm hiểu cách giao tiếp cổng COM bằng VC++ bằng cách sử dụng thư viện inpout32 qua win 32.Bác nào biết về cái này thì hướng dẫn e với.
trinhminhson86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-04-2009, 10:40 PM   #4
digan
Đệ tử 1 túi
 
digan's Avatar
 
Tham gia ngày: Jan 2006
Bài gửi: 14
:
Xin chào! Mình thử giao tiếp mãi mà ko dc không biết sai sót ở đâu. mình dùng cachs bật các led ở Port b để báo là có truyền thông
#include <16f877a.h>
#include <def_877a.h>
//#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
char buf;
int a;
// Ngat Truyen thong
#INT_RDA
Receive_isr()
{

buf=getc();
putc(buf);
PORTB=0x00;

Các cao thủ KT hộ với. tôi nghi là sai phần khai báo(đánh dấu), nhưng mục này thường copy nên ko rõ bản chất
digan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-04-2009, 04:14 PM   #5
ThaoBinh90
Đệ tử 1 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 19
:
Mình cũng đang làm RS232, đang gặp khó khăn về buffer của RS232. Khi chương trình PIC gởi lên một chuổi nào đó, trình ứng dụng đọc chuỗi này chưa hết thì nó vẫn còn trog bộ đệm làm ảnh hưởng đến lệnh sau đó. Có ai đó chỉ mình xóa bộ đệm của RS232 giúp mình với.
ThaoBinh90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 11:25 AM   #6
tucn87
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 11
:
anh Hải ơi, em làm theo cái TUT của anh nhưng đến đoạn thêm điều khiển AxtiveX Microsoft Communications 6 thì bị lỗi "don't send". Em dùng bản Visual Studio 6 Enterprise Edition.
tucn87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:22 PM   #7
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Bạn cài lại VS
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:32 PM   #8
tucn87
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 11
:
Unhappy

Trích:
Nguyên văn bởi mtuankct View Post
Bạn cài lại VS
em cài lại rồi vẫn không được (
tucn87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:59 PM   #9
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Nếu khôg được thì cài lại win đi haha hoặc có thể thử kiếm cái đĩa cài VS khác xem sao
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2009, 07:20 PM   #10
tucn87
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 11
:
sau bước 1 của TUT, xóa 2 nút OK, CANCEL và dòng văn bản tĩnh TODO thì VC báo lỗi don't send và thoát ra ngoài, vậy là lỗi gì vậy các anh?
tucn87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2009, 02:51 PM   #11
chinh_coc
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
Mình đang làm cái VB để làm giao diện với VXL.
Mình đã thiết kế như các bạn nói ở trên nhưng không hiểu sao khi VXL của mình gửi ra một giá trị kiểu INT (là số 15 chẳng hạn) thì trên giao diện không hiển thị đúng số 15 mà nó hiển thị một kiểu khác. Làm thế nào để hiển thị giá trị thực từ VXL gửi ra.
Mong các bạn giúp đỡ . đây là code VB của mình

Private Sub Command1_Click()
On Error GoTo OpenFalse
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Exit Sub
OpenFalse:
MsgBox Err.Description & vbLf + vbCr + "Loi, khong the mo cong. Hay dong cac ung dung dang su dung cong COM"

End Sub

Private Sub Command2_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End
End Sub

Private Sub Command3_Click()
On Error GoTo sendfalse
MSComm1.Output = Text1.Text
Exit Sub
sendfalse:
MsgBox Err.Description & vbLf + vbCr + "Loi, Cong COM chua duoc mo, nhan Connect"
End Sub

Private Sub Form_Load()
With MSComm1
.Settings = cmbBaudRate.Text + "N,8,1"
.RThreshold = 1
.SThreshold = 0
.InBufferSize = 1024
.OutBufferSize = 1024
.InputMode = comInputModeText
.ParityReplace = ""
.CommPort = Switch(cmbComPort.Text = "COM 1", 1, cmbComPort.Text = "COM 2", 2, cmbComPort.Text = "COM 3", 3, cmbComPort.Text = "COM 4", 4)
End With
End Sub

Private Sub MSComm1_OnComm()
Dim StringIn As String
If MSComm1.CommEvent = comEvReceive Then
StringIn = MSComm1.Input 'Nhan chuoi du lieu to VCOM
Text2.Text = StringIn
End If
End Sub
chinh_coc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2009, 05:53 PM   #12
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
dữ liệu mà VB nhận ở dạng internal number , để hiển thị ra màn hình bạn phải chuyển về dạng text string :
bạn thử thay Text2.Text = Cstr(StringIn)
hoặc Text2.Text = Asc(StringIn) xem
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-04-2009, 12:59 AM   #13
chinh_coc
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
Mình đã xử lý được rồi. thanks các bạn đã giúp đỡ

Chỉ cần tách các kí tự nhận được ra rồi hiển thị lên là OK.
chinh_coc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2009, 12:23 PM   #14
TANDEM
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 40
:
Wink

Vẫn là vấn đề giao tiếp qua RS 232. Hôm trước đệ có làm giao tiếp PC - RS 232 -PIC theo một chiều từ PC - PIC, phần giao tiếp với cổng COM trên máy tình thì dùng C# và đã gửi được tín hiệu qua PIC rồi, tuy nhiên đoạn chương trình ở PIC đệ viết bằng CCS và nó chạy không theo ý đồ của đệ 'ý của đệ là sau khi check được LED nào thì LED đó sẽ sáng cho đến khi nào không check nữa' Vậy nhờ các huynh chỉ giáo!
Đây là đạn code:

Code:
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

#define may1  RD0
#define may2  RD1
#define may3  RD2
#define may4  RD3
#define may5  RD4
#define on    1
#define off   0

char ch;

#INT_RDA
Receive_isr() 
{
   if (kbhit())
   {
      ch = getc();
      
      if (ch=='a') may1 = on;
      if (ch=='b') may2 = on;
      if (ch=='c') may3 = on;
      if (ch=='d') may4 = on;
      if (ch=='e') may5 = on;
      
      if (ch=='f') may1 = 0;
      if (ch=='g') may2 = 0;
      if (ch=='h') may3 = 0;
      if (ch=='i') may4 = 0;
      if (ch=='j') may5 = 0;
      
   }
}
void main()
{
set_tris_d(0);
portd=0b00000000;
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
while (1)
   {
   }
}

và kèm theo C# and protues:
File Kèm Theo
File Type: rar Tam.rar (31.9 KB, 143 lần tải)

thay đổi nội dung bởi: namqn, 26-04-2009 lúc 03:56 PM. Lý do: định dạng code
TANDEM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2009, 03:58 PM   #15
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi TANDEM View Post
Vẫn là vấn đề giao tiếp qua RS 232. Hôm trước đệ có làm giao tiếp PC - RS 232 -PIC theo một chiều từ PC - PIC, phần giao tiếp với cổng COM trên máy tình thì dùng C# và đã gửi được tín hiệu qua PIC rồi, tuy nhiên đoạn chương trình ở PIC đệ viết bằng CCS và nó chạy không theo ý đồ của đệ 'ý của đệ là sau khi check được LED nào thì LED đó sẽ sáng cho đến khi nào không check nữa' Vậy nhờ các huynh chỉ giáo!
Đây là đạn code:
...
Vậy hiện thời thì chương trình của bạn chạy ra sao?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ð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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Cho hỏi về giao tiếp RS232 của PIC16F877A enti Giao tiếp cổng COM và LPT 31 25-03-2016 10:14 PM
Giao tiếp RS232 trên PC qua Matlab ngohaibac Giao tiếp cổng COM và LPT 47 18-11-2015 03:51 PM
giao tiep RS232 voi C dangngoc Giao tiếp cổng COM và LPT 9 26-02-2012 02:25 AM
cần mua bộ thu GPS có giao tiếp RS232 kienvq Tìm mua sản phẩm 15 17-03-2011 11:25 PM
Help! Dùng C để giao tiếp RS232 dandiennang Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 6 15-03-2009 06:41 PM


Múi giờ GMT. Hiện tại là 09:26 PM.


Đượ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