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 02-06-2011, 01:47 PM   #1
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   #2
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   #3
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   #4
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   #5
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   #6
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   #7
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
Old 18-02-2012, 10:25 PM   #8
chithang00000
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 2
:
#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 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-02-2012, 10:33 PM   #9
chithang00000
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 2
:
Wink 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!!
chithang00000 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2013, 11:23 PM   #10
thuylien115
Nhập môn đệ tử
 
Tham gia ngày: May 2013
Bài gửi: 1
:
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ở
thuylien115 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2013, 01:07 AM   #11
thaihevip
Đệ tử 1 túi
 
Tham gia ngày: May 2012
Bài gửi: 12
:
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
thaihevip vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-01-2023, 02:18 AM   #12
knnhubi
Đệ tử 2 túi
 
Tham gia ngày: Dec 2011
Nơi Cư Ngụ: Usa
Bài gửi: 44
:
Send a message via ICQ to knnhubi Send a message via AIM to knnhubi Send a message via Yahoo to knnhubi
@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 !
__________________
Pretty Girls in your city
knnhubi 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à 03:19 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