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 Bài Trong Ngày 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 11-06-2010, 01:04 PM   #166
HAI1817
Đệ tử 5 túi
 
HAI1817's Avatar
 
Tham gia ngày: Feb 2010
Bài gửi: 94
:
cần giúp

tại sao cổng usb chuyển sang 232 ma khi truyền từ máy tính xuống pic không nhiễu,khi truyền từ pic lên máy tính giao diện vb thì bị nhiễu.mong các cao thủ chỉ dùm cảm ơn nhiều

* Edit
HAI1817 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-10-2010, 08:23 PM   #167
xuanducdhcn
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 13
:
MONG SỰ GIÚP ĐỠ GẤP CỦA MỌI NGƯỜI VỀ RS232 ( MÌNH ĐANG RẤT CẦN )

Mình đang làm một chương trình kết nối cổng RS232 sử dụng visual c++. không hiểu vì sao khi test chương trình thì thấy không truyền xuống PIC6f877a được.
chương trình của mình :


#include "stdafx.h"
#include <windows.h>

// kiem tra che do mo cong.

TCHAR *pcCommPort = TEXT("COM3");
HANDLE hcom = CreateFile( pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // default security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);

// cài đặt trạng thái ban đầu .
void Setting()
{
if (hcom == INVALID_HANDLE_VALUE)
{
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
return ;
}
else
{
// set timeouts
COMMTIMEOUTS cto = { 1, 100, 1000, 0, 0 };
DCB dcb;
if(!SetCommTimeouts(hcom,&cto))
printf ("E013_SetCommTimeouts failed\n");
// Thiet lap cac che do cong com
memset(&dcb,0,sizeof(dcb));
dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = 9600;
dcb.fBinary = 1;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.ByteSize = 8;
dcb.fDtrControl = DTR_CONTROL_ENABLE;
dcb.fRtsControl = RTS_CONTROL_ENABLE;
if(!SetCommState(hcom,&dcb))
printf ("E013_SetCommTimeouts failed 2\n");
CloseHandle(hcom);
}
}

// Mo cong com

void RS232(CString data)
{
// Chuyen va nhan du lieu
char p;
char data_receive;
DWORD read = 0;
DWORD write=1; // Number of bytes to write to serial port
p = WriteFile(hcom,&data,write,&write,NULL); // write is updated with the number of bytes written
ReadFile(hcom,&data_receive,sizeof(data_receive),& read,NULL); // read is updated with the number of bytes read
DWORD i;
for (i=0; i<read; i++)
printf("%i ", (unsigned char)data_receive);
}

// BAT DAU HAM MAIN GUI MOT KY TU XUONG PIC16F877A.

void main(){

setting();

RS232('R');
}

CẢM ƠN MỌI NGƯỜI RẤT RẤT NHIỀU !!

thay đổi nội dung bởi: xuanducdhcn, 08-11-2010 lúc 04:04 PM.
xuanducdhcn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2010, 04:05 PM   #168
xuanducdhcn
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 13
:
Unhappy

Sao không có ai giúp mình vậy !
xuanducdhcn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2010, 10:29 AM   #169
entredosaguas
Nhập môn đệ tử
 
Tham gia ngày: Sep 2009
Bài gửi: 6
:
Trên VC++bạn làm theo TUT của anh Ngô Hải Bắc đó. Chạy ổn.Còn ở PIC thì viết chương trình ngắt nhận như sau:
Code:
 #INT_RDA
VOID GET_CHAR()
{
   char c;
   c=getc();
}
entredosaguas vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2011, 12:32 AM   #170
tinhhoalong
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 2
:
Chao mọi người. MÌnh đã làm theo TUT của a Bắc và Build được file RS232TUT.exe trên VC++ 6.0 Nhưng khi mình mang chương trình sang máy khác chạy thì không thấy gì cả (cảm giác là chương trình vừa kết thúc ngay khi bắt đầu) Ai rành về VC++ thì giúp mình khắc phục vấn đề này với. XIn chân thành cảm ơn.
File Kèm Theo
File Type: rar RS232TUT.rar (8.2 KB, 97 lần tải)
File Type: rar RSTUT(tinhhoalong).rar (1.80 MB, 273 lần tải)

thay đổi nội dung bởi: tinhhoalong, 19-01-2011 lúc 01:09 PM.
tinhhoalong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2011, 10:09 PM   #171
minhduc_bn
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 3
:
minh đang làm đề tài điều khiển động cơ giao tiếp với máy tinh

Trích:
Nguyên văn bởi hoangtham View Post
Mình có 1 mạch điều khiển động cơ DC sd VDK có giao tiếp với máy tính qua cổng COM.Dữ liệu về tốc độ được đọc về từ encoder. Giờ muốn lưu lại vào 1 file để chuyển thành đồ thị thì làm thế nào? có cao thủ nào giúp mình với.Mình dùng visual C++ để lập trình
bác hoàn thành công trình nghiên cứu về giao tiếp với máy tính chưa. bác có thể giúp em tài liệu cái. mong được trợ giúp. ducvm2512@yahoo.com
minhduc_bn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-04-2011, 12:55 AM   #172
abcbac
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 1
:
các bác ơi bây giờ em muốn lập trình cổng Com bằng VC#.Ai có tài liệu gì thì post lên cho em với
abcbac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-05-2011, 08:20 PM   #173
hoangan2125
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 1
:
Anh em hỏi sao dùng thư Viện MSDN bản full dành cho Visual studio 6 mà ko thể tìn vào thư viện như anh bắc bảo.Vậy em phải làm thế nào :S
hoangan2125 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2011, 01:47 PM   #174
than50ddt
Nhập môn đệ tử
 
Tham gia ngày: May 2011
Bài gửi: 2
:
chao cac anh.gio em dang lam giao dien vb truyen du lieu tu 8051 len pc, ma ko biet lam sao ca.co ai co tai lieu ko cho em voi
than50ddt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2011, 01:47 PM   #175
than50ddt
Nhập môn đệ tử
 
Tham gia ngày: May 2011
Bài gửi: 2
:
giao dien viet bang vb nha
than50ddt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2011, 11:31 PM   #176
manhcddt08b
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 2
:
chương trình mô phỏng cổng COM ảo xài nhu thế nào nhỉ.....????ai bit chỉ cho mình zới ("-")
manhcddt08b vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2011, 11:46 PM   #177
manhcddt08b
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 2
:
pac nao có chương trình giao tiếp PC với 16f877a cho em xin, để chạy thử tham khảo:-??
manhcddt08b vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2011, 12:51 AM   #178
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
Trích:
Nguyên văn bởi manhcddt08b View Post
pac nao có chương trình giao tiếp PC với 16f877a cho em xin, để chạy thử tham khảo:-??
http://www.picvietnam.com/forum/showthread.php?t=9276

Bạn vào luồng này nhé..mình có gửi file hướng dẫn lập trình giao tiếp máy tính với PIC dùng cổng com ảo...
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-10-2011, 09:20 PM   #179
student_dtvt
Nhập môn đệ tử
 
Tham gia ngày: Aug 2011
Bài gửi: 2
:
Mấy bác cho em hỏi cái này. Em truyền nhận dữ liệu giữa 16f877 và VB6 đã nhận đc nhưng chỉ với thạch anh 4000000Hz, khi thay đổi cái này thì lại không nhận được. Em làm với kit thạch anh 24Mhz ko thể nhận dữ liệu được. Mong các bác chỉ giáo giùm em với.

VB:

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




PIC:
#include <16f877a.h>
#FUSES NOWDT, HS, NOPUT,NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#use rs232(baud=9600, parity=N, xmit=pin_C6, rcv=pin_C7)
#include <stdlib.h>
#byte porta = 0x05
#byte portb = 0x06
#byte portc = 0x07
#byte porte = 0x09
int8 y,i,a,b,c,d,e;
int16 x;
char string[5];
BYTE CONST maled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};

void nhan_rs232()
{

for(i=0;i<=4;i++)
{
string[i]=getc();
}
printf("%s",string);
y=0;
x=atol(string);
a=x/10000;
x=x%10000;
b=x/1000;
x=x%1000;
c=x/100;
x=x%100;
d=x/10;
x=x%10;
e=x;

a=maled[a];
b=maled[b];
c=maled[c];
d=maled[d];
e=maled[e];

for(i=0;i<=200;i++)
{
output_A(0b01111);
output_D(a);
delay_ms(1);
output_A(0b11111);

output_A(0b10111);
output_D(b);
delay_ms(1);
output_A(0b11111);

output_A(0b11011);
output_D(c);
delay_ms(1);
output_A(0b11111);

output_A(0b11101);
output_D(d);
delay_ms(1);
output_A(0b11111);

output_A(0b11110);
output_D(e);
delay_ms(1);
output_A(0b11111);
}


}
/*void xoa()
{
for(i=0;i<=4;i++)
{
string[i]=0;
}
}*/
void main()
{
set_tris_b(0);
set_tris_e(0);
while(true)
{
if(y==0)
{
nhan_rs232();
delay_ms(100);

}
}
}


Em làm nhận một số 5 chữ số hiển thị led 7 đoạn

đây là file mô phỏng: http://www.mediafire.com/?d4g26cwn4bx4g8y
student_dtvt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-11-2011, 04:40 PM   #180
duong.dinh54
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 1
:
a NgoHaiBac oi! cho e hỏi e đang phải làm bài tập lớn về " Xây dựng xây dựng moodul vào ra ghép nối với cổng rs232 với 8 đầu ra rơ le,dòng điện nhỏ hơn 500mA,8 đầu vào số cách li quang .xây dựng phần mềm giao điện đơn giản trên máy tính cho phép đọc 8 đầu vào và hiển thị kết quả dưới dạng đồ thị điều khiển bằng các nút ấn!!! phải làm ntn hả a?
duong.dinh54 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 11:38 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