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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 22-10-2008, 08:51 PM   #9
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
mình truyền giá trị 0<X<1000 cho bạn xem như sau
khi truyền và nhận tất cả phải ở dạng chuỗi
code vb:
rstr = txttruyen.Text 'dữ liệu cần truyền
If (Val(rstr) < 1000) And (Val(rstr) > 0) Then
l = Len(rstr) ‘gan l cho do dai c
If (l = 1) Then
rstr = "000" + rstr
End If
If (l = 2) Then
rstr = "00" + rstr
End If
If (l = 3) Then
rstr = "0" + rstr
End If
End If
If rstr = "" Then
' do anything if u want
Else
Call MoPort_Click 'goi hàm mở port khai báo thông số cần truyền
MSComm1.Output = rstr 'truyền dữ liệu xuống
End If
code c
#include<16f877a.h>
#device PIC16F877a*=16 ADC=10
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
//hàm nhận dữ liệu
void getvalue()
{
int16 x;
int i;
char s[1]; //khai báo số lượng chuỗi truyền
for(i=0;i<4;i++) //số ký tự truyền xuống
s[i]=getc(); //nhan s vao tu tu dang chuoi
x=atol(s); //chuyen chuoi sang so
y=x; //số bạn cần truyền đây
printf("%lu",x); “xuat gia tri x ra pc so ko dau
}
//hàm main
void main()
{
while(1)
{
if (y==0)
getvalue();
}

}
hi vọng giúp được bạn
nguyenquoctoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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


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


Đượ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