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 21-09-2008, 11:32 AM   #1
haku039
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 2
:
Chào mọi người,mình mới bắt đầu học con 8051,mình làm theo TUT của anh ngohaibac,nhưng mình ko có code và sơ đồ mạch để truyền dữ liệu từ 8051 lên PC,bác nào giúp mình với hay mail cho minh theo địa chỉ : nguythachun@gmail.com
...thanks!!!
haku039 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-09-2008, 08:13 PM   #2
nhti
Nhập môn đệ tử
 
Tham gia ngày: Sep 2008
Bài gửi: 1
:
cam on mấy bác, để em về đọc đã có gì thắc mắc hôm sau em sẻ hỏi mấy bác
nhti vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-12-2008, 06:05 AM   #3
ngocvq
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 1
:
Cám ơn

E cảm ơn a Bắc rất nhiều!
ngocvq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-01-2009, 09:00 PM   #4
tcoi001
Nhập môn đệ tử
 
Tham gia ngày: Jan 2009
Bài gửi: 2
:
Mình cũng đang muốn viết một phần mềm truyền thông giữa hai máy tính:có thể gửi các byte đơn (kí tự) hoặc là file text qua cho nhau dùng VB 6.0
Mình cũng mới học VB nên chưa biết nhiều. Tìm kếm trên mạng thì được đoạn code này

code:truyền kí tự
Code:
Private Sub cmdClear_Click()
    Text1.Text = ""
    Text2.Text = ""
End Sub

Private Sub cmdExit_Click()
Unload Me
End Sub

Private Sub cmdSend_Click()
    MSComm1.Output = Text2.Text 
End Sub

Private Sub Form_Load()
    cmdSend.Caption = "&Send"
    Text1.Text = ""
    Text2.Text = ""
    Text1.Enabled = False
    cmdExit.Caption = "&Exit"
    With MSComm1
        .Settings = "9600,N,8,1"
        .CommPort = 1
        .RThreshold = 1
        .SThreshold = 0
        .InputMode = comInputModeText
        .InputLen = 0
        .Handshaking = comNone
        .InBufferSize = 1024
        .OutBufferSize = 1024
        If .PortOpen = False Then
          .PortOpen = True
        End If
         
    End With
End Sub

code: truyền file text

Private Sub Command1_Click()
Cdlg.DialogTitle = "Send file..."
Cdlg.Filter = "Textfile (*.TXT)|*.txt|All Files (*.*)|*.*"
Cdlg.InitDir = App.Path
Cdlg.FileName = ""
Cdlg.ShowOpen

' The Function Call
If Cdlg.FileName <> "" Then SendFile (Cdlg.FileName)

End Sub

Private Sub Form_Load()

' Opens the selected com port
MSComm1.CommPort = 1
MSComm1.PortOpen = True

End Sub


' here is the function
Function SendFile(tmp$)

Dim temp$
Dim hsend, bsize, LF&

' Open file
Open tmp$ For Binary Access Read As #2
' Check size on Mscomm1 OutBuffer
bsize = MSComm1.OutBufferSize
' Check file length
LF& = LOF(2)

' This code makes tiny pieces of data (Buffer sized)
' And send's it

Do Until EOF(2)
    
    If LF& - Loc(2) <= bsize Then
        bsize = LF& - Loc(2) + 1
    End If

    ' Make room for some data
    temp$ = Space$(bsize)
    
    ' Put the data piece in the Temp$ string
    Get #2, , temp$

    MSComm1.Output = temp$

    Do
        ret = DoEvents()
    ' Wait until the buffer is empty
    Loop Until MSComm1.OutBufferCount = 0
Loop

' close file
Close #2

End Function
Nhưng ở hai đoạn code này mình thấy đều chỉ có phần truyền kí tự và file mà chưa có phần nhận.Vậy thì chương trình có thể chạy được ko?
Ai rành về cái này có thể viết tiếp hộ mình được ko?
ah còn 1 yêu cầu nhỏ nữa là phần mềm thì phải có giao diện nữa nhỉ? có thể hướng dẫn mình cách tạo giao diện bằng tiếng việt được ko? kiểu như là một dòng ghi là: gửi file hay ki tự còn dòng dưới ghi là file hay kí tự nhận được.
Cảm ơn mọi người nhiều.
cảm ơn anh Bắc đã mở diễn đàn này cho đàn em học hỏi.
Cảm ơn!

thay đổi nội dung bởi: ngohaibac, 27-01-2009 lúc 09:37 AM. Lý do: thêm tag code
tcoi001 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-01-2009, 10:06 PM   #5
ltt
Nhập môn đệ tử
 
Tham gia ngày: Jan 2009
Bài gửi: 1
:
Smile

tui chỉ có thể giúp bạn phần truyền kí tự thui.bạn có thể tham khảo đoạn chương trình đính kèm theo đây.Có gì không hiểu tui có thể giúp bạn
ltt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-02-2009, 10:09 AM   #6
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
mình muốn giao tiếp PC với 2 hoặc nhiều PIC thông qua 1 cổng COM của PC. nhưng khi PC gửi xuống chỉ có 1 PIC nhận data. giốmg như chuẩn I2C ấy. PC là Master còn các PIC là Slever. Bác nào biết thì chỉ giúp mình hướng giải quyết với. thank you!
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2009, 12:31 AM   #7
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Trích:
Nguyên văn bởi tungtot_vl View Post
mình muốn giao tiếp PC với 2 hoặc nhiều PIC thông qua 1 cổng COM của PC. nhưng khi PC gửi xuống chỉ có 1 PIC nhận data. giốmg như chuẩn I2C ấy. PC là Master còn các PIC là Slever. Bác nào biết thì chỉ giúp mình hướng giải quyết với. thank you!
Theo mình biết thì chuẩn RS232 chỉ cho phép thực hiện liên kết điểm-điểm, nếu bạn muốn tạo liên kết đa điểm thì bạn có thể chuyển nó sang chuẩn RS485
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2009, 10:59 AM   #8
nguyen tien
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 1
:
chào bác Bắc, vừa qua em có thực hiện cái TUT bác viết về RS232 hướng dẫn về lập trình giao tiếp RS232 bằng VC++. (http://www.picvietnam.com/download/T...OHB.100106.pdf). Em làm theo bác chỉ mà nó báo 102 lỗi, toàn lỗi "error C2018: unknown character '0xa0' ". Bác có thể giải thích cho em lỗi này đc không? Và cách khắc phục như thế nào.
Project em tạo đây: http://www.mediafire.com/?zlmntzbeg3m . Cám ơn các bác đã đọc!
nguyen tien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2009, 11:37 AM   #9
tranvankien_bk
Nhập môn đệ tử
 
tranvankien_bk's Avatar
 
Tham gia ngày: Feb 2009
Bài gửi: 4
:
em dang lam ve giao tiep rs232 giua pic 16f877a voi may tinh.em khong biet lap trinh vb6.0 de truyen du lieu .bac nao biet day em voi .thank ,,,,,,,,,,,
tranvankien_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2009, 11:58 AM   #10
xuanhiendk2
Đệ tử 3 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 52
:
Các bạn ơi làm thế nào để viết được tiếng Việt trong CCS thế? Có phải chúng ta tạo một font rồi include font đó vào chương trình sau đó đổi lại mã ASCII mở rộng là được ko ạ?
xuanhiendk2 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-03-2009, 05:24 PM   #11
hoang phuong
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 4
:
Bác Bắc ơi!Sao bác ko dịch luôn ra file.exe cho a e đc nhờ
hoang phuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2009, 03:54 PM   #12
hoang phuong
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 4
:
a Bắc ơi! E ko down dc nó xuống. Chương trình ko còn nữa rồi.
hoang phuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-03-2009, 04:08 AM   #13
tpasterisk
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 5
:
Em chào các bác, em thấy mọi người thảo luận xôn xao về giao tiếp cổng COM, cÓ rất nhìu bài hay luôn, nhưng em chưa thấy bác nào nói về tập lệnh AT.
Chẳng dấu là : em đang tìm hiểu tập lệnh AT, sau khi thiết lập giao tiếp với cổng COM, em muốn gửi, nhận tin nhắn bằng tập lệnh AT qua GSM modem G2403R .
Bác nào đã từng nghiên cứu về tập lệnh AT, cũng như là gửi nhận tin nhắn dùng tập lệnh AT xuất ra cổng COM -> GSM modem G2403R thì giúp em với.
Hiện tại em chưa biết viết câu lệnh như thế nào để xuất những câu lệnh AT ra cổng COM........................
tpasterisk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2009, 11:55 AM   #14
chinh_coc
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
Nếu viết bằng VB thì mình có xử lý được hiển thị giá trị thực không. đầu vời ccomms là int còn hiển thị ra giá trị cstring
chinh_coc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2009, 02:13 PM   #15
nguyennam8888
Đệ tử 3 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 50
:
bài tập truyền nhận cơ bản đầu tiên

các bác giúp em với, nghĩ mãi mà chưa làm được , chương trình của em nó chỉ nhận thôi, nhưng khi nhận xong thì PIC lại không thấy hiển thị, còn truyển ngược lại thì chưa đươc
code trong Pic:
#include <16F877a.h>
#include <DEFS_16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600,parity=n, xmit=PIN_C6, rcv=PIN_C7)
unsigned char dulieu;
#INT_RDA
void data_receive(void)
{
dulieu = getc();
putc(dulieu);
}
void main()
{
set_tris_a(0);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_RDA);
while(true)
{
output_a(dulieu);

delay_ms(2000);
}
}
code trong VB:

Private Sub cmdClear_Click()
Text1.Text = ""

End Sub

Private Sub cmdExit_Click()
Unload Me
End Sub

Private Sub cmdSend_Click()
MSComm1.Output = Text2.Text
End Sub

Private Sub Form_Load()
cmdSend.Caption = "&Send"
Text1.Text = ""
Text2.Text = ""
Text1.Enabled = False
cmdExit.Caption = "&Exit"
With MSComm1
.Settings = "9600,N,8,1"
.CommPort = 4
.RThreshold = 1
.SThreshold = 0
.InputMode = comInputModeText
.InputLen = 0
.Handshaking = comNone
.InBufferSize = 1024
.OutBufferSize = 1024
If .PortOpen = False Then
.PortOpen = True
End If

End With
End Sub

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
Text1.Text = Text1.Text + Asc(MSComm1.Input)
End If
End Sub
(em tìm mãi mà không thấy chỗ nào để viết code.)

thay đổi nội dung bởi: nguyennam8888, 10-04-2009 lúc 09:56 AM.
nguyennam8888 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:43 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