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 18-12-2008, 01:02 PM   #46
phủ phước
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 2
:
Truyền ADC 8 KÊNH

Tôi có đoạn code viết trên ccs nhưng khi chạy trên vb thì chỉ có kênh 0 là được .Xin giúp tôi tìm chổ sai:
phủ phước vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-12-2008, 01:21 PM   #47
phủ phước
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 2
:
Truyền ADC 8 KÊNH

Tôi có đoạn code này nhưng nó chỉ truyền lên vb kênh 0 mà thôi ,xin góp ý giúp với .thank
#include <C:\Program Files\PICC\Devices\16F877A.h>
#device *=16 ADC=8
#fuses HS,NOWDT,NOLVP,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
byte adc;
byte buffer;
#INT_TIMER0
void send_data()
{
byte begin = 0xAA;


adc = read_adc();
putc(begin);
putc(adc);

}
void main()
{
int channel;

setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
for (channel=0;channel<=7;channel++)
{
set_adc_channel( channel );

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);//sets the internal clock as source
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0); // ngat timer0 de update screen
send_data();


while(1)
{
buffer=getc();


}
}
}
phủ phước vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-12-2008, 10:33 PM   #48
HUT&I
Nhập môn đệ tử
 
HUT&I's Avatar
 
Tham gia ngày: Dec 2008
Bài gửi: 2
:
Smile

Chào anh Bac!
Thật mừng là PIC việt nam có một thành viên như anh.Càng mừng hơn khi anh lại là sinh viên DHBKHN.Em thấy anh tham gia rất nhiều diễn đàn trên mạng phục anh quá.Anh có phương pháp học nào học hiệu quả chỉ giúp cho em với. Nhất là học lập trình thực sự em rất ngại động vào nó ,mặc dù ngành chúng em rất cần đến nó. Thú thực với anh em học về nó rất nhiều nhưng kết quả thì trái ngược với những j mà em dành cho nó. Rất mong nhận được sự chỉ bảo của anh.Chúc anh học tốt ,Cảm ơn anh
HUT&I vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-12-2008, 08:39 AM   #49
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
chào các bác. em muốn làm một mạch giao tiếp cổng của pc với 2 pic (ví dụ A và B). em muốn khi pc gửi data cho pic A thì chỉ có pic A nhận, B không nhận. khi pc gửi data cho pic B thì B nhận, A không nhận. các bác có cách nào thì xin chỉ mình giúp.
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-12-2008, 01:38 PM   #50
hoangvanhuy
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 1
:
Minh đang hoc visual basic , nen vao day. đã đăng kí rồi nhưng sao ko tải được tài liệu...Bạn nào biết chỉ mình, cảm ơn nhiều.
hoangvanhuy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:30 AM   #51
bacaynet
Nhập môn đệ tử
 
Tham gia ngày: Jan 2009
Bài gửi: 2
:
Anh Hải Bắc ơi! Tại sao em không lôi cái MSComm ra project của em được vậy anh! Em cần gấp để làm đồ án! Mong anh giúp đỡ, cảm ơn nhiều!
bacaynet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 12:53 PM   #52
bacaynet
Nhập môn đệ tử
 
Tham gia ngày: Jan 2009
Bài gửi: 2
:
Mấy anh chị cho em hỏi thêm là:
- Code cho VDK 89 để nó và PC gửi nhận dữ liệu liên tục.
- Còn trong VB, em làm code này, không biết có đúng không:

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
dRec = MSComm1.Input
MSComm1.Output = dSend
End If
End Sub
bacaynet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-02-2009, 11:35 PM   #53
vandungevn
Đệ tử 5 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 116
:
Send a message via Yahoo to vandungevn
Lightbulb

Lâu rùi không vào mà thấy mọi người trao đổi nhiều quá. hiiic.
Bạn nên mã hóa để cho nó gửi không bị sai tín hiệu.
VD: gửi mã hóa => gửi dữ liệu => gửi checksum.

Như vậy nếu c.hỉ gửi không thì bạn sẽ dễ hơn đó.
Còn về ADC các bạn nên dùng ADC 10 bít thì tốt hơn, nó có độ phân giải cao hơn và độ chính sác cao hơn là dùng 8 bít (đương nhiên là 1024 sẽ lớn hơn 256).

ex code: // gửi số có giá trị là 16 byte là "datasend"

void send_to_pc(unsigned int datasend, char set){
unsigned char chksum;
putc(0xAD); // gui ma hoa
putc(0xDA); // gui ma hoa
putc(set); // chon che do gui
putc((datasend>>8)&0xff); // Gui byte cao
putc(datasend & 0xff); // Gui byte thap
chksum = ((datasend>>8)|datasend))%256; // kiem tra loi
putc(chksum); // gui byte kiem tra loi
}

gửi phủ phước
code của bạn sai trong vòng for bạn chưa kết thúc chương trình, nếu bạn để như vậy thì vòng For chỉ chạy lần đầu tiên, không gửi được các kênh adc còn lại là đúng. Nên để chương trình đọc adc là chương trình con và gửi luôn là ok. như trên bạn gửi "set" là các kênh adc khác nhau là ok. như vậy vừa có thể đọc adc theo kênh vừa gửi là ok không sợ bị lỗi và bị nhầm.......

Chúc thành công nhé.
__________________
Hãy chung sức vì nền Điện Tử Viêt Nam...! Sản Phẩm thương hiệu Việt "Made in Viet Nam"
Nguyen Van Dung - Nguyễn Văn Dũng. Mobile : (+84) 97 329 1368
Nick name : VanDungEvn ( Yahoo + Skype )
Tư vấn & thiết kế điện tử + Làm mạch in + Hoàn thiện sản phẩm điện tử. Mạch nạp 89-PIC-AVR.
Email: vandungevn@gmail.com Website: www.dientuphuongdung.com
Xóm Mới - Nguyên Xá - Minh Khai - Từ Liêm - Hà Nôi - Viet Nam.

thay đổi nội dung bởi: vandungevn, 28-02-2009 lúc 11:51 PM. Lý do: Gửi thêm code mã hóa + kiểm tra lỗi.
vandungevn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-03-2009, 10:25 PM   #54
tranvangvn
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 7
:
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!
tranvangvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-03-2009, 10:27 PM   #55
tranvangvn
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 7
:
Gủi theo địa chỉ tranvang8@yahoo.com
tranvangvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-03-2009, 10:32 PM   #56
tranvangvn
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 7
:
Các bác cho em cả các mã lệnh trong C với VDK truyền thông nối tiếp nhé!
tranvangvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-03-2009, 10:39 PM   #57
tranvangvn
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 7
:
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!
Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé
tranvangvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-03-2009, 10:41 PM   #58
tranvangvn
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 7
:
Giao tiếp RS232 trên PC bằng Visual Basic.

Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!
Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé
tranvangvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-03-2009, 08:52 AM   #59
t_duyphuong
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 3
:
giao tiep RS232

Anh Hải Bắc ơi! Cho em hỏi : Em đã dùng đoạn code mà anh post lên về giao tiếp RS232 bằng VC++ nhưng khi biên dịch thì chuơng trình báo lỗi là chưa định nghĩa "COM1" và "COM2". Anh có thể chỉ cho em cách sửa lỗi không ạ?
Em vẫn chưa hiểu là chuơng trình tự nhận ra cổng COM hay là mình phải cấu hình như thế nào cho nó?
Cho em hỏi luôn là trên máy tính nó có ghi cho mình biết cái nào là "COM1" và "COM2" cho mình biết ko?
Em xin cám ơn!!!!!!!!!!!!!!!!!
t_duyphuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-03-2009, 12:52 AM   #60
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Thumbs up i'm beginning

chào mọi người . mình mới nghiên cứu về pic.
chủ đề giao tiếp này mình thấy cực cực hay & thực tế.
mới tìm hiểu nên lùng bùng quá. có gì nhờ mọi người giúp ( dù câu hỏi ngây thơ nhưng đừng cười nha).
mình tự tin là mình làm được.
" impossible is nothing "
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
forms!nhap!vao = x


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
Giao tiếp RS232 trên PC ngohaibac Giao tiếp cổng COM và LPT 193 18-02-2025 09:11 AM
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
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à 12:53 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