PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp cổng COM và LPT (http://www.picvietnam.com/forum/forumdisplay.php?f=44)
-   -   Giao tiếp RS232 trên PC (http://www.picvietnam.com/forum/showthread.php?t=274)

nmhai 08-10-2009 12:29 PM

Trích:

Nguyên văn bởi linhnc308 (Post 1627)
Về cái giao tiếp này tôi cũng đã làm khá nhiều mạch, ,phần mềm thì viết bằng VB thôi. Nói chưng khá hay. Nhân đây, có bác nào đã làm mạch đo nhiệt độ dùng PIC và gửi dữ liệu lên máy tính chưa. Và dữ liệu đó sẽ được đưa vào một đồ thị, vẽ thanh dạng biểu đồ theo thời gian. Ở nhà tôi đã làm cái mạch đo rồi, nhưng còn khoản ghi dạng đồ thị thì chưa,ở nhà cũng có cái code mẫu họ dùng VB trông khá đơn giản,đồ thị chạy đẹp,khá ổn. Tôi thấy cái này khá hay. ta có thể lưu đồ thị đó lại,sau có thể xem lại tiến trình biến đổi nhiệt..v.v...

Thu thập dữ liệu và đưa lên máy tính, vẽ đồ thị thì mình cũng làm khá nhiều rồi, nhưng toàn viết bằng Visual C#.

hoangxudi 23-10-2009 08:06 AM

Xin chào các bác! Em mới lên diễn đàn thấy các bác nhìu tài liệu hay quá em mới down về một ít. Sau này mong các bác chỉ bảo thêm.
Em đang làm mạch giao tiếp dùng RS232 mà tìm khắp không thấy tài liệu nào hay. Có bác nào có Tài liệu nào hay xin gửi cho em với.Mail của em là:
hoangxudi@gmail.com
Em xin Cảm ơn Và Hậu Tạ!

dktd5_pro 23-04-2010 09:07 PM

ah oi giup e ve do an mon dieu khien dong co buoc su dung RS232 noi tiep voi may tinh .dktd5mta@gmail.com. cam on anh nhe

thanhsonhugoa4 04-06-2010 12:09 AM

bạn ơi cho mình hỏi cách giao tiếp cân điện tử thông qua cổng RS232 như thế nào vậy? bạn có thể chỉ chi tiết cho mình ko? cam on nhieu nha

chuot_bac 07-06-2010 09:28 PM

giup em bác ơi!
 
Em sử dụng cáp USB-to COM để truyền dữ liệu cho PIc6F877A. Em sử dụng Terminal để truyền dữ liệu nhưng sao khi truyền bất cứ kí tự nào xuống thì dữ liệu truyền về bất kể khi em truyền vào chân nào của PIC, kẻ cả khi chưa cấp nguồn cho PIC.
Mong bác chỉ giáo!

HAI1817 11-06-2010 01:04 PM

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

xuanducdhcn 28-10-2010 08:23 PM

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

xuanducdhcn 08-11-2010 04:05 PM

Sao không có ai giúp mình vậy !

entredosaguas 10-11-2010 10:29 AM

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();
}


tinhhoalong 18-01-2011 12:32 AM

2 Attachment(s)
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.

minhduc_bn 18-01-2011 10:09 PM

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 (Post 8248)
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

abcbac 21-04-2011 12:55 AM

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

hoangan2125 03-05-2011 08:20 PM

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

than50ddt 02-06-2011 01:47 PM

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 02-06-2011 01:47 PM

giao dien viet bang vb nha

manhcddt08b 04-06-2011 11:31 PM

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 04-06-2011 11:46 PM

pac nao có chương trình giao tiếp PC với 16f877a cho em xin, để chạy thử tham khảo:-??

stupid11 05-06-2011 12:51 AM

Trích:

Nguyên văn bởi manhcddt08b (Post 45865)
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...

student_dtvt 12-10-2011 09:20 PM

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

duong.dinh54 20-11-2011 04:40 PM

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?

lenam_vl 24-11-2011 12:13 PM

Anh Bắc cho em hỏi là VC++ của em ko add được Microsoft Communications Control, version 6.0 anh ah. Laptop của em thì ko có cổng COM nhưng em đã mua 1 dây USB - RS232 DB9 rồi và đã lắp vào khi tạo project. Đến phần insert Microsoft Communications Control thì nó báo là No such interface supported!
Xin cảm ơn anh!

chithang00000 18-02-2012 10:25 PM

#include <C:\Program Files (x86)\PICC\Devices\16F877A.h>
#use delay(clock=8000000)
#fuses HS, NOWDT, NOPROTECT, NOLVP
#include "D:\chuongtrinh\kt giaotiepmaytinh\sv-09-cd\tai-lieu-dua-sv\LCD\TRUYEN-RS232-LCD\code\LCD_LIB.c"
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=MYPC)

int8 temp;
char buffRev[16];
int8 idx = 0, i = 0;
void displayOnLCD(void);

void main(void)
{
lcd_init();
while(1)
{
if(0 != kbhit())
{
temp = fgetc(MYPC);
if(temp=='$')
{
for(i=0; i<sizeof(buffRev); i++) buffRev[i]= ' ';
continue;
}
else if(temp=='#')
{
for(i=0; i<idx; i++)
{
putc(buffRev[i]);
}
idx = 0;
displayOnLCD();
continue;
}
if(idx<16)
{
buffRev[idx++] = temp;
}
}
}
}

void displayOnLCD()
{
lcd_init(); // Init LCD.
lcd_gotoxy(1,1);
printf(lcd_putc, "%s", buffRev);
lcd_init(); // Init LCD.
lcd_gotoxy(1,2);
printf(lcd_putc, "%s", buffRev);
}

Bài trên là code của màn hình LCD điều khiển qua cổng Com nhưng mới được 1 hàng 16 cột ah, Bác nào giúp e sữa đoạn chương trình trên thành 2 hàng 16!!!, E thanks 1000 cái trước. Gà con.

chithang00000 18-02-2012 10:33 PM

dùng vb giao tiếp rs232
 
Dim RecvMsg As String
Option Explicit

Private Sub Form_Load()
With MSComm1
.CommPort = 2 ' Using Com2
.Settings = "9600,N,8,1"
.InBufferSize = 1024 'bo dem nhan 1024K
.OutBufferSize = 1024 'do dem xuat 1024K.
.SThreshold = 1 ' cho phep ngat khi nhan.
.RThreshold = 1 '
.InputLen = 0 ' doc toan bo bo dem...
.InputMode = comInputModeText
If .PortOpen = False Then
.PortOpen = True
End If
End With
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
RecvMsg = RecvMsg + MSComm1.Input ' doc ve du lieu nhan tu cong COM...
End Select
txtRecvMsg.Text = RecvMsg ' hien thi len textbox chuoi nhan..
End Sub

Private Sub CmdSendMsg_Click()
Dim SendMsg As String
RecvMsg = ""
SendMsg = "$" + txtSendMsg.Text + "#"
MSComm1.Output = SendMsg
End Sub

Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Else
MSComm1.PortOpen = False
End If
End
End Sub



Trên đây là đoạn chương trình từ VB qua cổng Com điều khiển xuống pic, nhưng mới chỉ được có 1 hàng 16 cột ah! bác nào bik gửi 2 hàng 16 cột giúp e sữa đoạn chương trình trên cái. Cám ơn các huynh trước nhoa!!

thuylien115 17-05-2013 11:23 PM

bắc cho em hỏi sao em load về mà em không mở được vậy .lỗi tùm lum hết ,em là mem mới bắt đầu từ số o về c++ .em dùng vs2010 để mở

thaihevip 02-07-2013 01:07 AM

học vi điều khiển
 
Hiện nay tôi đang mở lớp đào tạo khóa học vi điều khiển 8051,pic và avr
Khóa học bao gồm các nội dung sau.Nội dung khóa học bao gồm 4 phần như sau:
*Phần 1
-Làm quen với ngôn ngữ lập trình C
-Làm quen với vi điều khiển pic,8051 và avr
*Phần 2
-Lập trình điều khiển led đơn,mở rộng port cho chip để điều khiển hàng trăm led đơn với đầy đủ các hiệu ứng.
-Lập trình điều khiển led 7 đoạn
-Lập trình điều khiển led ma trận
-Lập trình điều khiển LCD
-Lập trình ngắt
-Lập trình giao tiếp I2C
-Lập trình giao tiếp SPI
-Lập trình giao tiếp UART
*Phần 3
-Lập trình mã hóa và giải mã tín hiệu điều khiển từ xa tivi sony
-Lập trình mã hóa giải mã tín hiệu hồng ngoại
-Lập trình mã hóa giải mã tín hiệu RF
-Lập trình đồng hồ hẹn giờ
-Lập trình đồng hồ vạn niên
-Lập trình đặt mật khẩu bảo vệ thiết bị
-Lập trình hiển thị giá trị thực
-Lập trình điều khiển hệ thống đèn giao thông có phím đặt thời gian
-Lập trình điều khiển led ma trận giao tiếp máy tính 8x32 và 16x64,…,
-Lập trình giao tiếp máy tính
-Lập trình đo điện áp ADC
-Lập trình đếm sản phẩm
-Lập trình bàn phím điện thoại
-Lập trình phần mềm tra mã led matrix
*Phần 4
-Hướng dẫn vẽ mạch mô phỏng trên protues
-Hướng dẫn vẽ mạch in trên protues và trên altium
-Hướng dẫn làm 1 số mạch ứng dụng
-Thiết kế mạch điều khiển từ xa chống nhiễu
*Đối tượng tham gia khóa học bao gồm
-Những người đam mê lĩnh vực điện-điện tử
-Những người muốn tìm hiểu để biết
-Sinh viên,kỹ sư,…
Tất cả mọi người đều có thể tham gia khóa học này
*Học phí:
Học phí áp dụng cho tất cả các học viên đều như nhau 2.000.000 đồng/khóa.
-Tôi cam kết sẽ dạy đầy đủ các nội dung nói trên chỉ trong 1 khóa học 2 triệu.
-Sau khi hoàn thành khóa học nếu các học viên vẫn được hỗ trợ nếu chưa hiểu rõ các nội dung mình đã học.
*Hình thức học
-Đối với các học viên tại nội thành Hà Nội có thể đến học tại nơi,học trực tiếp.
-Đối với các học viên ở xa có thể học trực tuyến thông qua teamview,yahoo,skype
-Học viên có thể chọn học pic,avr hoặc 8051
*Địa chỉ liên hệ
Mail: thaihetoday@zing.vn
Yahaoo: thaihe_vip
Điện thoại: 0166.495.1093

supperchon 24-06-2021 02:31 PM

Viagra online"Buy viagra online
 
levitra 10 mg 6 comprimidos precio
cialis 2.5 mg precio
comprar kamagra en espana contrareembolso
comprar cialis generico en andorra
la viagra se compra con receta medica
marcas de cialis generico en espana
levitra precio 10 mg
compra cialis original
tadalafilo normon precio
sildenafilo peru precio
vardenafilo qualigen precio
donde comprar cialis de forma segura
precios genericos de viagra
comprar levitra en santa coloma de gramanet
hace falta receta para comprar cialis

supperchon 20-07-2021 07:03 AM

Viagra online"Buy viagra online
 
precio en farmacias de viagra 50 mg
comprar viagra en negro en barcelona
cialis se pueen tomar dos pastillas para una mejor ereccion
cialis 5 mg generico en paginas de espana
comprar viagra en benalmadena
comprar viagra por internet espana contrareembolso
tadalafilo 5 mg precio
levitra 5 mg generico
comprar cialis generico 20 mg contrareembolso
levitra generico vardenafil
como tomar cenforce
nuevo precio cialis
en las farmacias se puede comprar cialis
garantias levitra generico
precio de viagra femenino en peru inkafarma
foro cenforce extra opiniones
cialis generico precio argentina
comprar viagra online mexico
como comprar cialis cntra rembolso
se puede comprar viagra en las farmacias sin receta medica
compra viagra por internet 100 fiable
donde comprar cialis en internet
como comprar cialis generico en espana
female viagra precio
precio levitra 20 mg 4 comprimidos
fildena 150 online
cialis generico blister
se puede comprar viagra en las farmacias en cataluna
mejor precio para cialis 20 mg generico
como comprar viagra generico en alicante espana
levitra generico precio en farmacias espana con reveta
compra de viagra online
comprar cialis en farmacia andorra
comprar remedio de viagra em espanhol
super cialis espana

supperchon 24-07-2021 12:55 PM

Viagra online
 
fractura cabeza del radio cialis espana envio 24h
fisioterapeutas en granada comprar viagra espana
magnesoterapia bajar escaleras con muletas
protectomia fractura de cabeza de radio
comprar viagra online contrareembolso accidente en granada
comprar viagra fractura cabeza de radio
clases para embarazadas cenforce 100 opiniones
gimnasia para embarazadas articulos interesantes
fisioterapia granada precios rotura codo
masajes granada higiene postural en el colegio

knnhubi 23-01-2023 02:18 AM

@pump_upp - best crypto pumps on telegram !
 
https://t.me/pump_upp - best crypto pumps on telegram
Make 1000% and more within 1 day, join channel @pump_upp !


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam